Games: Kollisionsabfrage

  • in QBasic hab ich mal vor langem sowas programmiert, allerdings nur in 2D

    Intel E6700
    ASUS P5B Del.
    eVGA 8800GTX
    2048MB (1 x 1024) Muskin 6400
    240 GB (2 x 120) S-ATA Seagate Barracuda ST3120026AS (Raid 0)
    Eizo S2110W-K, 21.1" TFT

  • Naja, die Hindernisse halt irgendwie auf Pixel- oder Feldebene (je nach Einsatzgebiet) definieren und dann bei jedem Schleifendurchlauf abchecken, ob man beim nächsten Durchlauf mit einem Hindernis kollidiert. Oft ists sinnvoll dafür gerade ein zweidimensionales Array zu definieren und da jeweils bei Hindernissen eine 1 reinzuschreiben, bei freien Feldern eine 0. Ist etwas primitiv aber schnell und einfach.


    PS: Und wieso zum Geier will man denn Labview zu sowas vergewaltigen? :D

    "It really is as useful as a snooze button on a smoke alarm" Jeremy Clarkson


    "Wennsd den Baum siehst, in den du rein fährst, hast untersteuern. Wennsd ihn nur hörst, hast übersteuern" Walter Röhrl

    Einmal editiert, zuletzt von tornado ()

  • Ah du kennst LabVIEW? :D


    Wir müssen in der Schule in Dreiergruppen was modellieren, Thema frei wählbar. Ich mache eine Burgschlacht, also links ne Burg und rechts ne Burg ... Wenn jetzt die Kugel den Boden berührt oder den Berg, dann soll das Programm stoppen. Die Landschaft ist ein einziges Pic.


    Ich habe es am Weekend so gemacht, dass ich für das Gelände charakteristische Geradengleichungen aufgestellt habe (11 in der Zahl). Ich frage jetzt ab:


    y_kugel -- Steigung * x_kugel > Offset_der_geraden


    Diese Gleichung kommt von: y = mx + q


    Zuvor prüfe ich natürlich, ob die Kugel im entsprechenden Abschnitt ist, wo sich die entpsrechende Geradengleichung befindet die gelten soll.


    Aber irgendwie funzt das noch nicht so ganz

  • Das ist natürlich dann schon etwas fortgeschrittener als mein beispiel. Aber vom Prinzip her müsste das wohl schon gehen. Wären denn für Hügel nicht Parabeln ziemlich praktisch?

    "It really is as useful as a snooze button on a smoke alarm" Jeremy Clarkson


    "Wennsd den Baum siehst, in den du rein fährst, hast untersteuern. Wennsd ihn nur hörst, hast übersteuern" Walter Röhrl

  • Hatte nen Landschaft in Illustrator gezeichnet und den verwende ich jetzt.


    Ich kann natürlich die Landschaft auch an Polynomen n-ten Grades anpassen, die Landschaft sähe dann aber sehr "mathematisch" aus :D


    Ich hatte sogar probiert charakteristische Datenpunkte der Landschaft zu nehmen und diese Daten dann in Matlab dem Befehl Polyfit zu füttern, damit ich Koeffizienten für ein Polynom bekomme. Leider schlugen Versuche fehl.


    Man könnte es auch über Farben machen und sagen, wenn die Kugel nicht mehr in BLAU, also im Himmel, ist, dann ist Kollision, aber leider weiss ich nicht, wie man die aktuelle Farbe kriegen kann. Evtl. aus dem Pixmap-Array

  • Zitat

    Original von br@insc@n
    Man könnte es auch über Farben machen und sagen, wenn die Kugel nicht mehr in BLAU, also im Himmel, ist, dann ist Kollision, aber leider weiss ich nicht, wie man die aktuelle Farbe kriegen kann. Evtl. aus dem Pixmap-Array


    Das wäre dann im Prinzip etwas ähnliches, wie ich mit dem zweidimensionalen Array vorgeschlagen habe. Nur ist bei dir das "Array" der Bildschirminhalt :D
    Aber dann musst du das Feld wohl ein wenig unterteilen, weil wenn der bei jedem Pixel die Farbe afragen muss, wird das wohl ein wenig aufwändig. Labview ist ja AFAIK auch nicht gerade alzu schnell...

    "It really is as useful as a snooze button on a smoke alarm" Jeremy Clarkson


    "Wennsd den Baum siehst, in den du rein fährst, hast untersteuern. Wennsd ihn nur hörst, hast übersteuern" Walter Röhrl