Seite 1 von 1
kollisionsfehler bei tetris-klon
Verfasst: 20.02.2007 21:31
von 50-Pfennig
also ich programmier gerade einen tetris klon, und hab das problem, dass wenn 2 steine kollidieren, und ich dabei auf die Pfeil-unten taste (das heißt der stein bewegt sich schneller) drücke, überlappt dieser mit dem darunterliegenden. Es sieht so aus, dass ich nach der kollisionsabfrage eine prozedur aufrufe, die zum einen die geschwindigkeit dieses steines auf 0 setzt und gleichzeitig dafür sorgt, dass der stein immer an der position bleibt wo er ist. hat jemand ne ahnung was ich falsch mache?
Verfasst: 20.02.2007 21:58
von Kaeru Gaman
hmmmm......

Verfasst: 20.02.2007 22:18
von a14xerus
wenn sich der stein pro frame 10 pixel bewegt, und beim ausgangsframe 1px vor dem kollidieren steht, überlappt er bei der nächsten prüfung schon um 9px
Verfasst: 20.02.2007 22:21
von Kaeru Gaman
yo.
und deshalb und überhaupt ist eine kollisionsprüfung unfug für sowas.
grad tetris ist ein game, das komplett über koordinatenberechnung lösbar ist.
eine kollision findet erst statt, wenn sprites überlappen, und wenn es nur um ein pixel ist.
aber eigentlich sollen die steine ja aufeinander liegen, nicht ineinander.
Verfasst: 20.02.2007 22:57
von inti
@50-Pfennig:
klingt als ob du ein problem mir der reihenfolge hast:
du (scheinbar) jetzt:
1. abfragen und bewegen
2. darstellung (wenn du durch schnelleres bewegen eien größeren weg zurückgelegt hast stellst du das hier schon falsch dar!!!)
3. kollisonsabfrage
besser:
1. abfragen und bewegen
2. kollisonsabfrage (wenn ja: dann setze den stein auf die y-höhe dass es keine üerlappung hast)
3. darstellen
generell ist aber eine kollsionsabfrage für tetris überdimensioniert. es geht zwar auch wie Kaeru Gaman erwähnt hat über koordinatenberechnung aber das einfachste wäre über ein array (meine meinung).
Verfasst: 20.02.2007 23:08
von Kaeru Gaman
> es geht zwar auch wie Kaeru Gaman erwähnt hat über koordinatenberechnung aber das einfachste wäre über ein array (meine meinung).

yo.. und was berechnet man dann, an dessen bestimmer wertübereschreitung man das nächste feld prüft?
genau. die koordinate.
