Weiss jemand wie Programmierer Kollisionsabfragen (Wände, Boden, Kisten, etc.) in älteren DOS-Games machen?
Ich mache zwar kein DOS-Game, aber was ähnliches in LabVIEW.
thx
Weiss jemand wie Programmierer Kollisionsabfragen (Wände, Boden, Kisten, etc.) in älteren DOS-Games machen?
Ich mache zwar kein DOS-Game, aber was ähnliches in LabVIEW.
thx
in QBasic hab ich mal vor langem sowas programmiert, allerdings nur in 2D
ZitatOriginal von Chrigu666
in QBasic hab ich mal vor langem sowas programmiert, allerdings nur in 2D
Ja, und wie? Klar in 2D (Pixelgrafik)
Also ich meine nicht "wie" von der Umsetzung her, sondern vom Ansatz her
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?
Ah du kennst LabVIEW?
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?
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
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
ZitatOriginal 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
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...