Kollisions-Problem
Übersicht

![]() |
RaketeBetreff: Kollisions-Problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du speicherst in einer Variable, ob auch schon beim letzten Schleifendurchlauf eine Kollision stattfand. Wenn nein: punkte -1! | ||
![]() |
Rakete |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe dich nicht ganz verstanden... Was genau ist dein Problem? | ||
![]() |
Rakete |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, Frage beantwortet! Danke an alle!
Rakete |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group