Bleibende Folge nach Kollision?
Übersicht

NoName23Betreff: Bleibende Folge nach Kollision? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gibt es eine Möglichkeit das eine Folge auf eine Kollision dauerhaft bestehen bleibt obwohl die Kollision schon fertig ist?
Ein Beispiel: Code: [AUSKLAPPEN] If ImagesCollide (kugel1 ,x,y,0,kugel2 ,c,d,0) Then DrawImage Beispielbild ,a,b Ich will das das Beispielbild bestehen bleibt,also noch angezeigt wird obwohl die Kollision der Kugeln schon vorbei ist. Was könnte ich denn in dem Fall machen? |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If ImagesCollide (kugel1 ,x,y,0,kugel2 ,c,d,0) Then coll=True If coll Then DrawImage Beispielbild ,a,b Einfach eine Zwischenvariable einführen. Willst du das Bild dann wiedermal weg haben, kannst du zB über die Zeit arbeiten oder über sonstige Ereignisse (Wenn die Kugel woanders anstößt,...) |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
gigi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mach das doch einfach mit einer Variable:
Code: [AUSKLAPPEN] If ImagesCollide (kugel1 ,x,y,0,kugel2 ,c,d,0) Then a=1 Endif If a=1 Then Drawimage Beispielbild,a,b Endif Zum entfernen des Bildes ändert man einfach bei irgendeinem Ereignis die Variable auf null. MFG gigi |
||
NoName23 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, bin noch nicht lange dabei ![]() |
||
NoName23 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ach ja, gleich noch eine Frage. Wie kann ich eigentlich Bilder löschen? Cls geht nicht und Delete kann nur für Objekte verwendet werden oder? | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
-nicht mehr anzeigen: Einfach nicht mehr zeichnen in deinem nächsten Schleifendurchlauf. Das Prinzip ist das gleiche wie bei dieser Frage, Du setzt die Variable wieder auf null und das bild verschwindet...
-aus dem Speicher entfernen: ql:freeimage. Danach darf das Bild nicht wieder benutzt werden, da es komplett entfernt wurde. Das Programm stürzt ansonsten ab. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
NoName23 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Noch eine kleine Frage.
Code: [AUSKLAPPEN] If ImagesCollide (spieler ,x,y,0,kugel,g,h,0) And KeyDown (57) Then Variable = 1 Das die Variable 1 wird, lässt ein Ereigniss eintreten. Jetzt tritt dieses Ereigniss nur auf wenn der Spieler mit der Kugel kollidiert und man die Leertaste (57) gedrückt hält. Ich möchte aber das die Kollision und nur ein Tastendruck die Variable dauerhaft ändert und man mit einem weiteren Tastendruck die Variable wieder auf Null setzt. Wie stelle ich das am besten an? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If Keyhit(15) Then Variable = Variable XOR 1 ;TAB schaltet um Solange es sich um eine Schaltervariable mit den Zuständen 1 oder 0 handelt, bietet sich ein XOR 1 an, da dies die Variable immer in den anderen Zustand versetzt.
|
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If Keyhit(15) Then Variable = Variable XOR 1 ;TAB schaltet um
Ich benutze in diesem Fall immer Code: [AUSKLAPPEN] If Keyhit(15) Then Variable = Not Variable ;TAB schaltet um
ist aber geschmackssache und irrelevant. @gigi: Was hast du geschrieben, was ich nicht geschrieben hab? ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
gigi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dein false und true ist ein bisschen umständlich, finde ich. ![]() P.S.: Jetzt hab ich deins auch kapiert!!! ![]() |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und ich benutze immer eine dritte Variante:
Code: [AUSKLAPPEN] If Keyhit(15) Then Variable = 1-Variable ;TAB schaltet um
![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group