Kollision per Tilemap ungenau?
Übersicht

PousupBetreff: Kollision per Tilemap ungenau? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Huhu.
Ich arbeite gerade ein einem Remake des Spiels "Bomber" für den ZX Spectrum. Dabei habe ich die Häuser in Tiles gespeichert, die in einem Array liegen - soweit so gut. Das Problem ist bei mir nur, dass wenn ich die Bombe abgeworfen hab, und sie das Haus am rechten Rand berührt, keine Kollision erkannt wird. Ich schätze mal das liegt daran, dass ich für die Y-Koordinaten der Bombe eine Kommazahl verwende, damit die Bombe nicht von Tile zu Tile hoppelt. Bei der Kollision benutze ich den Befehl Int(bombe_y), was mein Problem allerdings nur Teilweise löst, da BB bei Integerzahlen rundet, und so eben diese ungenauigkeiten bei der Kollisionsabfrage entstehen. Was ich nun suche ist eine Funktion (oder ein Befehl) der bei einer Kommazahl die Nachkommastellen ignoriert. Gibt es da vielleicht sogar eine BB-Interne Funktion, die ich übersehen habe? Code: [AUSKLAPPEN] Select map(bombe_x/64,bombe_y/64) Case 0 Case 1 map(Int(bombe_x/65),Int(bombe_y/64)) = 0 map(Int(bombe_x/65),Int((bombe_y/64))+1) = 0 buildings = buildings - 1 abwurf = False Case 2 map(Int(bombe_x/65),Int(bombe_y/64)) = 0 map(Int(bombe_x/65),Int((bombe_y/64))+1) = 4 buildings = buildings - 1 abwurf = False Case 3 map(Int(bombe_x/65),Int(bombe_y/64)) = 0 map(Int(bombe_x/65),Int((bombe_y/64))+1) = 4 buildings = buildings - 1 abwurf = False Case 4 If abwurf = True Then map(Int(bombe_x/65),Int(bombe_y/64)) = 0 map(Int(bombe_x/65),Int((bombe_y/64))+1) = 4 buildings = buildings - 1 abwurf = False EndIf End Select (Die Variable buildings ist dazu da, um zu überprüfen, wann keine Gebäude mehr auf der Map stehen - und ich weiß, dass die Kollisionsabfrage noch einige Probleme aufwirft, aber daran wird noch gebastelt ![]() Im Voraus schon mal Vielen Dank für die Hilfe! |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kennst du Floor![]() ![]() Das sollte die Funktion sein, die du suchst. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Pousup |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich glaube in der Beginners-Corner bin ich ganz richtig.... ![]() Danke für die schnelle Hilfe, jetzt klappts. Edit: Ich seh gerade, jetzt funktionierts am rechten Rand, am linken bleibt das Problem. |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuche mal eine Fallunterscheidung: Rechts Floor![]() ![]() MFG |
||
![]() |
orpheus_2003 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh Mann.
An diesem Problem hing ich bei meinem Jump&Run auch. Ungenauigkeit der Tilesabfrage. Habs auch mit Floor und Ceil geschafft... Ist ein Schlauch...... Viel Glück |
||
GazerStar - the beginning
http://gazerstar.lexigame.de/ Wizard (Worktitel) http://wizard.lexigame.de |
Pousup |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok vielen Dank für die Antworten ![]() Ich werd's nacher mal ausprobieren. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group