kollisionsfehler bei tetris-klon

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
50-Pfennig
Beiträge: 75
Registriert: 22.01.2007 22:24
Wohnort: 40764 Langenfeld
Kontaktdaten:

kollisionsfehler bei tetris-klon

Beitrag 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?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hmmmm......

Bild
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag 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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
inti
Beiträge: 90
Registriert: 01.02.2006 17:25

Beitrag 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).
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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).

:mrgreen: yo.. und was berechnet man dann, an dessen bestimmer wertübereschreitung man das nächste feld prüft?
genau. die koordinate. ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten