Kollisionen bei 2D RPG
Übersicht

![]() |
JackBetreff: Kollisionen bei 2D RPG |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, ich habe gestern angefangen, ein 2D RPG zu proggen. Da aber die Kollisionsbefehle zu langsam laufen, wollte ich fragen, ob jemand eine gute Funktion für mich hat. Ich habe nämlich folgendes Problem:
Mein RPG fängt in einem Irrgarten an. Wie frage ich ab, wenn meine Figur aus Norden kommt und nach Süden geht das sie gegen keinen Baum stößt? Und das Gleiche mit Westen und so weiter... Muss ich eher etwas wie... BlitzBasic: [AUSKLAPPEN] If ImageRectOverlap(...) And Position = 2 Then ... ...oder eher etwas wie... BlitzBasic: [AUSKLAPPEN] If ImageRectOverlap(...) Then ...machen. Oder keins von beiden? Danke schon mal im Voraus |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
![]() |
Xalon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sry,aber mit dem wissen kommst bei nem RPG net recht weit ![]() Lass dir doch selber was einfallen,es gibt so viele wege das zu lösen... Xalon |
||
>>Besucht doch mal meine Seite,mit NEUEN Tutorials<<
User posted image |
blackspace |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In der tat soltest du dich vielleicht mal an etwas einfachem versuchen.
Im übrigen könntest du zum beispiel erst die kollision testen, und danach die coordinaten vergleichen um zu ermitteln, aus welcher richtung man kommt. |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke ein Grafik-Kollisionsbefehl ist hier falsch am platz. Du hast die Map doch bestimmt in einem Array. Prüfe doch vor jedem Bewegungsschritt, ob das nächste Feld auf der Map frei ist... | ||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Jack, ich habe mal so ein Thrust-Clon gepprogt. Man kann mit einem Rausschiff über eine fliessend bewegende Tilemap fliegen. Das Raumschiff bleibt dabei immer in der Bildschirmmitte. Da die Tilemap auch transparente Felder beeinhaltete, musste ich eine Pixelgenaue Kollisionsabfrage machen. Da diese sehr langsam ist, habe ich nur die max. 4 Tiles auf welchen sich das Raumschiff gleichzeitig befinden kann auf Kollision geprüft. Somit hat die Routine enorm an Geschwindigkeit zugelegt. Die Abfrage war so ähnlich wie dein erstes Beispiel... Erst die Positionen der Tiles, wenn innerhalb eines 'Radius', dann auf Pixelgeneue Kollision prüfen. | ||
![]() |
Surat |
![]() Antworten mit Zitat ![]() |
---|---|---|
Äh, also ich verwende verschiedene Layer
Bäume oder Sträucher sind sowieso Felder, auf denen der Spieler nichts zu suchen hat! Für Npc's nehme ich halt nen anderen layer und prüfe das mit True und False |
||
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)
AZUON-Beyond the dark life (2%) SOULS OF DESTINY (23%) |
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, aber Spikespine wie soll ich das bei jedem Bewegungsschritt machen? Dazu müsste ich doch so etwas wie...
BlitzBasic: [AUSKLAPPEN] If Schritt = 1 Then ...machen, oder? Aber was kommt dann nach If? |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
![]() |
Eclipse |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuch's doch mal so:
Die ZUKÜNFTIGE Positiion wird auf Kollision überprüft und wenn keine statt findet dann wird die figur bewegt |
||
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
~GESCHLOSSEN~ Das Thema ist so alt wie dieses Forum. Wir haben etliche Threads mit diesem Thema. Und sogar Tutorials gibt es in "FAQ & Tutorials" zu bewundern, die genau dieses Problem behandeln. Such bitte dort und mit der Forumsuche hier rum. |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group