Kollisionserkennung bei Tilemap (GTA-Steuerung)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

maximilian

Betreff: Kollisionserkennung bei Tilemap (GTA-Steuerung)

BeitragMo, Jul 05, 2004 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leutz.

nachdem ich mich mit Rallimen's GTA-Steuerung rumgeschlagen habe, habe ich jetzt ein anderes Problem: die Kollisionserkennung.
Hierzu muss ich die Position meines kleinen Automobils in den Tile-Maßstab (50x50 Felder) umrechnen.
Ich schätze, dass hierzu so eine verkorkste Formel mit lauter Divisionen und Modulo-Operationen nötig ist (etwas, was ich überhaupt nicht kann)

Falls mir jemand helfen kann, wäre ich sehr dankbar. Am besten währe natürlich so eine schöne Formel, wenn jemand sowas schonmal gemacht hat, aber ein Denkanstoß wäre auch ganz hilfreich.

Grüße,
LordChaos
 

Kekskiller

BeitragMo, Jul 05, 2004 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Prinzip ist das ganz einfach. Schließlich werden Bilder ja gedreht
und haben dadurch eine Pixel-Oberfläche, welche mit Bild-Kollisions-
Befehlen abgefragt werden können. Also musst du sowas wie ImageRectCollide
oder so nehmen, um die nicht befahrbaren Tiles mit dem Bild des Spielers
zu prüfen. Im Code müsste man eine Schleifenabfrage (oder wie
auch immer die Tile-Engine aufgebaut ist) machen und bei jedem
Tile diese Pixel-Bild-Rechteck-Kollisions-Prüfung einsetzen.[/code]

maximilian

BeitragMo, Jul 05, 2004 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Klingt gut, aber ist dass nicht wahnsinnig geschwindigkeitsfressend?
Sonst ist es wohl die einzige Möglichkeit (wenigstens bewahrt es mich vor diesen schrecklichen mathematischen Operationen) Very Happy

Grüße,
LordChaos
 

Kekskiller

BeitragMo, Jul 05, 2004 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt natürlich verschiedene Möglichkeiten. Man kann auch nur
if RectOverlap oder sowas nehmen, wobei die Kollision aber nicht
so schön abgerundet wirkt. Ansonsten ist ImageRectCollide schneller
als ImagesCollide. Hier mal eine Speedlist (schnellste ist oben):

RectOverlap
ImageRectOverlap
ImageRectCollide
ImagesCollide

Am besten mal in Online-Hilfe nach dem dir angemessensten Befehl
suchen. Aber im Prinzip ist das die beste und schnellste Möglichkeit.
Achja, RectOverlap ist dann eher wie eine mehr als normale TileMap.

TheShadow

Moderator

BeitragMo, Jul 05, 2004 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm also sowas ist im meiner Tiile-Engine schon eingebaut. Zuerst wird ein Tile-Bereich ermittelt das ein Bild überlappt und auf diese Tiles werden dann Pixelgenaue Kollisionen angewendet - ist sehr schnell und mit den Funktionen recht simpel. Es werden sogar animierte Tiles überprüft usw Smile

Dem Map-Editor liegt source bei...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Kekskiller

BeitragMo, Jul 05, 2004 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Muss ber ehrlich sagen, dass du das zu kompliziert gestaltet hast.
Aber wenn LordChaos deine Engine verwendet, dann muss er die
wohl nehmen.

TheShadow

Moderator

BeitragDi, Jul 06, 2004 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist da kompliziert? Es ist doch nur 1 zeile Code um Objekt auf Kollision mit Layer zu prüfen. Die Funktionen kannst du als Blackbox sehen - du musst du Parameter wissen und fertig
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Kekskiller

BeitragDi, Jul 06, 2004 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meine ja den Quelltext der Funktion, nicht das simple Aufrufen Smile .

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Jul 06, 2004 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
nachdem ich mich mit Rallimen's GTA-Steuerung rumgeschlagen habe

Na Ja so kompliziert ist es doch gar nicht mit der Steuerung!

mit der Kollisionsabfrage kann mann doch ausrechnen welche tiles übehaupt abgefragt werden müssen
grob gesehen nur die die angezeigt werden auf dem Monitor

ich denke mal das es max 9 sein werden allerhöchstens 16 pro Kolli-layer , kommt natürlich darauf an wie gross Dein Schlitten ist !
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group