Wände nicht überfahrbar?? wie z.B. bei Pacman
Wände nicht überfahrbar?? wie z.B. bei Pacman
wie kann ich es anstellen, dass die wände z.b. bei einem labyrinth nicht "überfahrbar" sind sprich, dass man nicht einfach durch die wand hindurch fahren kann??
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Dies ist eine automatische Nachricht des Forenbots:
Bitte benutzen sie die Forensuche.
Zum Thema Kollision wurde schon reichlich gepostet.
Bitte benutzen sie die Forensuche.
Zum Thema Kollision wurde schon reichlich gepostet.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Postition der Wände mit der der Spielfigur vergleichen, bei Kollision die Spielfigur anhalten, fertig.
Eine ausführlichere Antwort kannst du mit so wenigen Infos, was genau das für ein Spiel ist usw. hier nicht erwarten. Eigentlich müsstest du wohl selbst darauf kommen können, logisch nachgedacht, zumindest.
Denn im Grunde genommen ist es tatsächlich so, dass man Position der Mauer und Position des Spielers vergleichen muss. Dann gibt es gewisse Bereiche (z.B. Wände) die der Spieler nicht einnehmen darf. Befindet er sich in diesem Bereich, wird er zurückgesetzt bis er draußen ist. Das sorgt dafür, dass der Spieler nicht durch Wände geht.
Eine ausführlichere Antwort kannst du mit so wenigen Infos, was genau das für ein Spiel ist usw. hier nicht erwarten. Eigentlich müsstest du wohl selbst darauf kommen können, logisch nachgedacht, zumindest.
Denn im Grunde genommen ist es tatsächlich so, dass man Position der Mauer und Position des Spielers vergleichen muss. Dann gibt es gewisse Bereiche (z.B. Wände) die der Spieler nicht einnehmen darf. Befindet er sich in diesem Bereich, wird er zurückgesetzt bis er draußen ist. Das sorgt dafür, dass der Spieler nicht durch Wände geht.
- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
kannst aber auch alles mit if abfragen machen Laughing
Code: Alles auswählen
if spritepixelcollision(...- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
nene, mit if meinte ich etwa folgendes:
ich meinte damit, das man JEDE mauer position abfragen müsste, die ein spieler blocken kann.
so hab ichs mal mit vb gemacht, man kann sich ja vorstellen, das man da "relativ" viel zeit braucht
Code: Alles auswählen
if Playerx < 500 and playery > 200 or playerx < 20 and BLABLABLA
so hab ichs mal mit vb gemacht, man kann sich ja vorstellen, das man da "relativ" viel zeit braucht
-.-"
- unix
- Beiträge: 361
- Registriert: 15.02.2005 19:25
- Wohnort: Zwischen Coburg und Bamberg :-)
- Kontaktdaten:
Am besten du erstellst ein Raster z.B. 5x5 und Gibst jeden Rasterfelt einen 'Layer'.
und dan fragst du ab ob der Layer wohin du wilst 0 ist wen nicht dann soll er stehenbleiben.
Ich hoffe deine Fragen sind damit geklärt
und dan fragst du ab ob der Layer wohin du wilst 0 ist wen nicht dann soll er stehenbleiben.
Code: Alles auswählen
Dim Feld(5,5) ;x, y
Restore Layers
for y = 1 to 5
for x = 1 to 5
Layer = read
Feld(x,y) = Layer
next
next
repeat
if keyboarrdpush.... ; alle 4 Richtungen
if Feld(PlayerX-1,PlayerY) and Richtung = "Links"
Player-X Bewegung = 0
...
und so weiter
datasection
Layers:
Data.l 0, 0, 0, 0, 0
Data.l 0, 1, 1, 1, 0
Data.l 0, 1, 0, 0, 0
Data.l 0, 1, 0, 1, 1
Data.l 0, 1, 0, 0, 0
enddatasectionIch hoffe deine Fragen sind damit geklärt
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
die hat aber Urlaub.
MfG : Unix