CPU
Lieutenant
- Registriert
- Jan. 2006
- Beiträge
- 704
Hallo,
ich baue mir gerade meinen einfachen Raycasting-Algorithmus zusammen. Undzwar arbeite ich dabei nach dem Tutorial von Permadi [1] und diesem hier [2]. Unten ist mein teils selbstständig erarbeiteter, teils (zusammen-)kopierter Quellcode.
Nun habe ich zwei Fragen:
1. Ich habe folgende Tatsache noch nicht so verstanden: der Spieler hat eine (ganzzahlige) Position auf dem Spielfeld in einer Zelle, die durchaus die Ausmaße von 64x64 Pixeln haben kann. Nun das Raycasting wird ja nun wieder Pixelgenau berechnet. Müsste man dann nicht immer von der Mitte einer solchen Zelle ausgehen und die Strahlen aussenden?
2. Mein Algorithmus funktioniert nicht korrekt: obwohl ich es aus [2] nur kopiert habe und die Datentypen angepasst habe, wird in der horizontalen Erkennung manchmal ein vollkommen anderes Kästchen erkannt (orange hinterlegt, dazu z.B. 11 mal die Links taste drücken). Woran könnte das liegen?
Viele Grüße,
CPU
Der Code ist im Anhang. Achtung: dieser Code ist aus den Tutorials [1] und [2] zusammenkopiert und weder schön noch funktionsfähig. Weiter unten ist selbst geschriebener Code der sogar funktioniert. Hura.
ich baue mir gerade meinen einfachen Raycasting-Algorithmus zusammen. Undzwar arbeite ich dabei nach dem Tutorial von Permadi [1] und diesem hier [2]. Unten ist mein teils selbstständig erarbeiteter, teils (zusammen-)kopierter Quellcode.
Nun habe ich zwei Fragen:
1. Ich habe folgende Tatsache noch nicht so verstanden: der Spieler hat eine (ganzzahlige) Position auf dem Spielfeld in einer Zelle, die durchaus die Ausmaße von 64x64 Pixeln haben kann. Nun das Raycasting wird ja nun wieder Pixelgenau berechnet. Müsste man dann nicht immer von der Mitte einer solchen Zelle ausgehen und die Strahlen aussenden?
2. Mein Algorithmus funktioniert nicht korrekt: obwohl ich es aus [2] nur kopiert habe und die Datentypen angepasst habe, wird in der horizontalen Erkennung manchmal ein vollkommen anderes Kästchen erkannt (orange hinterlegt, dazu z.B. 11 mal die Links taste drücken). Woran könnte das liegen?
Viele Grüße,
CPU
Der Code ist im Anhang. Achtung: dieser Code ist aus den Tutorials [1] und [2] zusammenkopiert und weder schön noch funktionsfähig. Weiter unten ist selbst geschriebener Code der sogar funktioniert. Hura.
Anhänge
Zuletzt bearbeitet:
(Ich habe mal den Code in den Anhang verschoben, weil der so viel Platz weggenommen hat ...)