Kollisions-Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Rakete

Betreff: Kollisions-Problem

BeitragMo, Feb 21, 2005 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich habe folgende Kollision:

Code: [AUSKLAPPEN]
If ImagesCollide(spieler, x, y, 0, kugel, x2, y2, 0) Then
punkte = punkte - 1
EndIf


Jedesmal wenn die Kugel den Spieler trifft, soll man einen Punkt weniger bekommen. Nun hat die Kugel eine gewisse Geschwindigkeit drauf und geht durch den Spieler durch.

Jedesmal wenn die Kugel durch den Spieler durchgeht, zählen die Punkte solange minus, bis die Kugel den Spieler nicht mehr berührt. Statt einen Punkt sind dann 10 Punkte weg, weil die Kugel erstmal durch den Spieler geht.

Welche Möglicheit gibt es, damit man nur einen Punkt abzog bekommt, obwohl die Kugel durch geht?

Rakete

Lumne

BeitragMo, Feb 21, 2005 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Du speicherst in einer Variable, ob auch schon beim letzten Schleifendurchlauf eine Kollision stattfand. Wenn nein: punkte -1!

Rakete

BeitragMo, Feb 21, 2005 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Lumne hat Folgendes geschrieben:
Du speicherst in einer Variable, ob auch schon beim letzten Schleifendurchlauf eine Kollision stattfand. Wenn nein: punkte -1!

Ja, aber diese Kugel kommt irgendwann wieder!

Ich habe 20 Kugeln 'gemacht'. Wenn alle abgeschossen wurden, beginnt das wieder von vorne.

Rakete

Lumne

BeitragMo, Feb 21, 2005 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe dich nicht ganz verstanden... Was genau ist dein Problem?

Rakete

BeitragMo, Feb 21, 2005 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, ich habe 20 Kugeln:

Code: [AUSKLAPPEN]
Dim kugel(20)


Wenn mich z.B. die dritte Kugel trifft, speicher ich die dritte Kugel in einer Variable, ok. Nun folgen die anderen 17 Kugeln. Keine trifft mich, glück gehabt!

Wenn jetzt geschossen wird, wird die erste Kugel abgeschossen. Zwei Kugeln später wird die dritte Kugel abgeschossen. Die trifft mich! Nun habe ich aber in eine Variable gespeichert, dass diese Kugel mich schonmal getroffen hat und ich somit 'geimpft' bin.
Kapiert?

Rakete

Spikespine

BeitragMo, Feb 21, 2005 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann setze den Wert für die dritte Kugel nach der Kollision einfach wieder auf 0, oder habe ich da was falsch verstanden?

Spike

Lumne

BeitragMo, Feb 21, 2005 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst die Variable wieder auf 0 setzen, wenn keine Kollision mehr stattfindet! Sorry, ich dachte, das könnte man sich nach meiner (zugegeben recht kurzen) Erklärung denken...

Mez_K

BeitragMo, Feb 21, 2005 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
vielleicht so:

Code: [AUSKLAPPEN]

colja = 1

repeat

;dann cls flippen malen und so witer rin machen... (davor und dahinter)

If ImagesCollide(spieler, x, y, 0, kugel, x2, y2, 0) and colja = 1 Then
    punkte = punkte - 1
    colja = 2
EndIf

If not ImagesCollide(spieler, x, y, 0, kugel, x2, y2, 0) Then
    colja = 1
endif

until keydown(1)

Rakete

BeitragMo, Feb 21, 2005 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, Frage beantwortet! Danke an alle!

Rakete

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group