Kollision per Tilemap ungenau?
Übersicht BlitzBasic Beginners-Corner
PousupBetreff: Kollision per Tilemap ungenau? |
Di, Nov 24, 2009 21:53 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 |
Di, Nov 24, 2009 22:08 Antworten mit Zitat |
|
---|---|---|
Kennst du Floor?
Das sollte die Funktion sein, die du suchst. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Pousup |
Di, Nov 24, 2009 22:13 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 |
Di, Nov 24, 2009 22:17 Antworten mit Zitat |
|
---|---|---|
Versuche mal eine Fallunterscheidung: Rechts Floor links Ceil
MFG |
||
orpheus_2003 |
Mi, Nov 25, 2009 8:18 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 |
Mi, Nov 25, 2009 10:45 Antworten mit Zitat |
|
---|---|---|
Ok vielen Dank für die Antworten
Ich werd's nacher mal ausprobieren. |
||
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group