Kollisionserkennung bei Tilemap (GTA-Steuerung)
Übersicht

![]() |
maximilianBetreff: Kollisionserkennung bei Tilemap (GTA-Steuerung) |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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) ![]() Grüße, LordChaos |
||
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() Dem Map-Editor liegt source bei... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Muss ber ehrlich sagen, dass du das zu kompliziert gestaltet hast.
Aber wenn LordChaos deine Engine verwendet, dann muss er die wohl nehmen. |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich meine ja den Quelltext der Funktion, nicht das simple Aufrufen ![]() |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
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+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group