Seite 1 von 1

Bestimmte Stellen blockieren

Verfasst: 17.04.2005 15:55
von Rubiko
nehmen wir mal als Beispiel ein gutes RPG, D2 zum Beispiel, bei dem kann man ja auch nicht IN Bäume oder so laufen... schon klar ist blockiert... aber der char kann ja nicht von links drauf... ebenso nicht von rechts usw.
muss ich denn dann wenn ich ein game mach für jeden einzelenden Baum de n Code schreiben das er nicht von oben, links usw drauf kann? geht das nicht mit 'ner schleife oder so für alle Bäume?

Danke
Rubiko

Verfasst: 17.04.2005 16:04
von DarkDragon
Du könntest doch alle Bäume in eine Linked List speichern ;) oder in einen Array oder so.

Verfasst: 17.04.2005 16:06
von Ynnus
Ich habe eine Art Bouncebox um die Spielfigur bei meinen Projekten. Also eine Sicherheitsbereich von x * y Pixeln der zur Kollisionsprüfung verwendet wird.
Dann prüfe ich, ob die Bouncebox im Objekt ist (meine Objekte haben dann auch eine Bouncebox von x * y Pixel um das Objekt herum) und verschiebe den Spieler dann immer um einen Pixel entgegen der letzten Laufrichtung wenn die Box innerhalb der verbotenen Zone ist = Kollision vorliegt. Erst wenn er wieder außerhalb steht, wende ich den Buffer. Das hat den Effekt, dass er Pixelgenau neben dem Objekt stehen bleibt.
Das kann man dann natürlich in eine Funktion packen und der Funktion die Koordinaten des Objekts und des Spielers mitteilen. Dann ist es allgemein für alle Objekte und Bäume. Lass also pro Schleifendurchlauf jeden Baum mit dem Spieler mittels dieser Funktion prüfen (oder jeden Baum der in ungefährer Nähe des Spielers ist) und schon wird deine Kollision vorgenommen. Das ist dann übertragbar auf jede beliebige Position des Bildschirms wenn du einfach diese Koordinaten übergibst.

Verfasst: 17.04.2005 16:24
von DarkDragon
Sunny hat geschrieben:...Bouncebox...
Wenn Fachbegriffe, dann doch richtig: Bounding-Box.

Bouncebox wäre eine Box die bei bouncen(abprallen) würde. :P

Verfasst: 17.04.2005 16:32
von Rubiko
hört sich schonmal gut an... wird auch gut sein :D
aber kann jemand noch einen beispielcode oder so posten? bitte?

Rubiko