Spielfigur Bewegungseingrenzung

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

blitzgamer2000

Betreff: Spielfigur Bewegungseingrenzung

BeitragSa, Apr 08, 2006 23:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe eine Spielfigur mit 20*20 Pixel und eine Map mit verschieden große Objekte wie Steine Häuser alle in unterschiedlicher Größe.
von 10*10 bis 100*100.


Wie kann ich es am einfachsten lösen das die Spielfigur nicht über diese Objekte läuft?
Online Space Shooter V.1 90%
RPG Game V.1 40%
RPG Map Editor V.3 100%

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Apr 09, 2006 10:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne ins Detail zu gehen....
Eine Kollisionsprüfung Figur/Objekten und wenn eine Kollision stattfindet die Figur wieder zurücksetzten!
[BB2D | BB3D | BB+]
 

icestorm

BeitragSo, Apr 09, 2006 10:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst einfach prüfen, ob die Bilder kollidieren, mit IMAGERECTCOLLIDE oder IMAGECOLLIDE.

Die Online-Hilfe kann dir dabei sicher nützlich sein Wink
 

ke^kx

BeitragSo, Apr 09, 2006 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Und Suche mal nach Tileengine oder Tilemap. Den durch Tiles wird dir das Leben bei sowas um einiges erleichtert Wink

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

x-pressive

BeitragMo, Apr 10, 2006 7:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Langsamen Kollisionsabfragen sollten immer die allerletzte Notlösung sein -immerhin gehört es zum guten Programmierstil, möglichst Ressourcen zu schonen, nur so lassen sich auch grössere Projekte realisieren.

Wenn deine Objekte eine feste Grösse haben, wirst du wahrscheinlich eh eine Karte deiner Landschaft als Array gespeichert haben (Tilemap).

Du brauchst also nur das jeweilige Feld in deiner Tilemap, also im Array, abfragen. Ist das Feld mit einem Objekt (Haus etc.) "besetzt", kann deine Figur nicht auf dieses Feld laufen. Die "Kollisionsabfrage" findet also quasi im Array selbst statt -das ist hundertmal schneller, als alle Grafiken einzeln auf Kollision zu prüfen.

Du musst natürlich die Position des Spielers auf deiner Tilemap kennen (z.B. Zeile 5, Spalte 3). Dann kannst du immer nur das Feld der Tilemap prüfen, auf das der Spieler sich hinbewegt, also wäre der Aufwand (und die Rechenleistung) minimal, egal wie gross die Landschaft ist.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

blitzgamer2000

BeitragDi, Apr 11, 2006 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
meine figur ist aber 3x3 felder der tilemap groß
objekte 1x1 bis 10 x 10.....
Online Space Shooter V.1 90%
RPG Game V.1 40%
RPG Map Editor V.3 100%

x-pressive

BeitragMi, Apr 12, 2006 5:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wo ist das Problem? Das Prinzip ist doch genau das selbe. Die Objektgrösse spielt gar keine Rolle -wenn ein Haus 10x10 Felder gross ist, dann sind eben hundert Felder in der Map mit dem selben Wert belegt.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group