Seite 1 von 1
Kollision!?!??
Verfasst: 20.12.2004 23:47
von Lukaso
Hallo,
ich versuche mich gerade an meinem ersten Spiel in PureBasic ... es ist ein 2D Jump&Run Game. Naja, nun habe ich erste probleme mit der Kollision ..... Ich habe jetzt eine Box aus der Tilesammlung geladen .... nur habe ich die box im Raum 40 Mal plaziert .... also 40x DisplayTransparentSprite(5, ....) so, jetzt überprüfe ich wären eines Tastendrucks ob Kollidiert ist wenn nicht, bewege das mänchen ....
Ich kann jetzt aber schlecht
Code: Alles auswählen
If DisplayTransparentSprite(5, ....) AND DisplayTransparentSprite(5, ....) AND DisplayTransparentSprite(5, ....) AND .....
das ganze 40x machen .....
Wie könnte ich das am besten lösen??
Danke Lukaso
MFG Lukaso

Verfasst: 21.12.2004 00:28
von Epyx
Das einfachste wäre eine Schleife, packe die Positionen in eine LinkedList und überprüfe die Kollision in einer While/Wend schleife.
Oder schreibe dir ein eigenes Map Format und und check anhand der Position deiner Spielfigur die Position in deinen MapDaten dann müsstest du nicht ständig die SPrite Kollisions Prüfung abfragen.
Oder nimm meinen
MapEditor da habe ich auch eine Display Routine sowie die Prüfung ob ein Sprite kontakt mit der Karte hat oder nicht schon drin. Wenns dir ausreicht ist gut wenn nicht gibts hier auch schon ein paar komplexere Editoren

Verfasst: 21.12.2004 23:13
von Lukaso
@Epyx
Danke für deine Antwort! Ich habe mir deinen MapEditor mal angesehen ... nicht schlecht

Aber leider kann ich nicht viel damit anfangen, da meine bedürfnisse nicht alle gedeckt werden.
Deshalb habe ich gerade begonnen einen eigenen MapEditor zu basteln

Ist nur schade, dass ich nicht mehrere OpenWindowScreen() verwenden kann ....
MFG Lukaso

Verfasst: 21.12.2004 23:23
von orange-blue
Deshalb habe ich gerade begonnen einen eigenen MapEditor zu basteln Ist nur schade, dass ich nicht mehrere OpenWindowScreen() verwenden kann ....
Das hab ich mir auch schon gedacht(als ich mich an auch einen eigenen Mapeditor versuchte)

Verfasst: 29.12.2004 20:17
von Lukaso
Hilfe, ich komm nicht weiter
Ich erkläre mal kurz, ich habe nen Tileset mit 32x32 Pixel Tiles. Und einen Bildschirm mit 640x480 Pixeln Auflösung.
Im Tileset habe ich Tiles, die nur als verschönerung der Map gedacht sind, welche die Komplette Kollision haben sollen, und welche auf denen man nur stehen kann.
Nur ist mein Problem, wie ich die Tiles auseinanderhalten soll ....
Danke für eure Hilfe.
MFG Lukaso
PS: Das Game soll ein "Super Mario War" Clone/Weiterentwicklung sein.

Verfasst: 29.12.2004 23:18
von bluejoke
In irgendeinem Tut. hab ich gelesen, dass man wohl dazu Tabellen schreibt, in denen die verschiedenen Typen angegeben sind.
Dann wohl noch eine, in der die Typen den Tiles zugewiesen werden.
Am besten, du liest dir so ein Tutorial mal durch. Ich hab aber leider keine Adresse und noch weniger irgendwelches zusätzlihes Wissen, weil ich mich damit (noch?) nicht beschäftige.
Simon
Verfasst: 30.12.2004 00:28
von Kaeru Gaman
ich löse sowas durch den aufbau des tilesets:
so aufbauen, dass die bits der tile-nr aussagekräftig sind...
also z.b.
tile 0-63 passierbar
tile 64-127 nicht passierbar
=> (tileNr AND 64) ist passierbar-flag...
das kann man für jede eigenschaft, die ein tile haben soll, so machen.
in der map steht dann nur die tile-nr.
du kannst damit auch der selben grafik unterschiedliche eigenschaften zuweisen.
indem du dann z.b. nur (tileNr. AND 127) darstellst, dann kann bit 128 eine zusätzliche eigenschaft sein, die man nur spürt aber nicht sieht...
ist übrigens die übliche vorgehensweise, bei vielen spielen hat man longs als array, da hast du 32bits insgesamt,
meistens reichen 256-1024 verschiedene grafiken, da bleiben etliche bits für flags...