Eigenartige frage..:P
Übersicht

FlameskullBetreff: Eigenartige frage..:P |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also... ich möchte, dass das programm, wenn es kollidiert, nach dem endif weitermacht.. ich weiß aber nicht wie. kann mir wer helfen?
Code: [AUSKLAPPEN] Graphics 800, 600 SetBuffer BackBuffer() bg = LoadImage("bg.bmp") a = LoadImage("smiley.bmp") b = LoadImage("balkenlang.bmp") c = LoadImage("balkenquer.bmp") d = LoadImage("balkenlang.bmp") e = LoadImage("balkenlang.bmp") f = LoadImage("balkenlang.bmp") g = LoadImage("balkenquer.bmp") lseite1 = LoadImage("balkenlangseiten.bmp") lseite2 = LoadImage("balkenlangseiten.bmp") qseite1 = LoadImage("balkenquerseiten.bmp") qseite2 = LoadImage("balkenquerseiten.bmp") finish = LoadImage("finish.bmp") MaskImage a, 255, 255, 255 MaskImage finish, 255,255,255 ClsColor 70,70,70 x=50 y=40 bx = 300 by = 0 cx = 30 cy= 180 dx = 250 dy = 215 ex = 400 ey = 215 fx = 250 fy = 422 gx = 440 gy = 450 lseite1x = 0 lseite1y = 0 lseite2x = 765 lseite2y = 0 qseite1x = 0 qseite1y = 0 qseite2x = 0 qseite2y = 571 finishx = 693 finishy = 30 dirbx = -1 dircy = -1 dirdx = -1 direx = -1 dirfx = -1 dirgx = -1 dirgy = -1 Repeat Cls TileImage bg, 0, 0 DrawImage a, x, y DrawImage b, bx,by DrawImage c, cx,cy DrawImage d, dx,dy DrawImage e, ex,dy DrawImage f, fx, fy DrawImage g, gx, gy DrawImage lseite1, lseite1x, lseite1y DrawImage lseite2, lseite2x, lseite2y DrawImage qseite1, qseite1x, qseite1y DrawImage qseite2, qseite2x, qseite2y DrawImage finish, finishx, finishy bx =bx +dirbx cy =cy+dircy dx =dx+dirdx ex =ex+direx fx = fx+dirfx gy = gy+dirgy ; Bewegungsbedingungen für die Balken If bx < 290 Then dirbx = 1 If cy < 100 Then dircy =1 If bx > 450 Then dirbx = -1 If cy > 180 Then dircy = -1 If dx < 200 Then dirdx = 1 If dx > 250 Then dirdx = -1 If ex < 350 Then direx = 1 If ex > 400 Then direx = -1 If fx < 200 Then dirfx = 1 If fx > 250 Then dirfx = -1 If gy < 300 Then dirgy =10 If gy > 500 Then dirgy =-1 If ImagesCollide(a, x, y, frame1, b, bx, by, frame2) ; Kollisionsabfrage Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, c, cx, cy, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, d, dx, dy, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, e, ex, ey, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, f, fx, fy, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, g, gx, gy, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, lseite1, lseite1x, lseite1y, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, lseite2, lseite2x, lseite2y, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, qseite1, qseite1x, qseite1y, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, qseite2, qseite2x, qseite2y, frame2) Text 280, 240, "GAME OVER" WaitMouse End ElseIf ImagesCollide(a, x, y, frame1, finish, finishx, finishy, frame2) Text 650, 100, "LEVEL PASSED!" ElseIf KeyDown(17) And KeyDown(30) ; Ab hier: W A S D y=y-2 x=x-2 ElseIf KeyDown(17) And KeyDown(32) y=y-2 x=x+2 ElseIf KeyDown(31) And KeyDown(30) y=y+2 x=x-2 ElseIf KeyDown(31) And KeyDown(32) y=y+2 x=x+2 ElseIf KeyDown(17) y=y-2 ElseIf KeyDown(31) y=y+2 ElseIf KeyDown(30) x=x-2 ElseIf KeyDown(32) x=x+2 EndIf Flip Cls Forever |
||
- Zuletzt bearbeitet von Flameskull am Fr, Mai 02, 2008 18:54, insgesamt einmal bearbeitet
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einfach alle "End's" raus ![]() |
||
Flameskull |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nee... das klappt nicht.. weil das programm dann nicht nach dem endif weiter macht, sondern immer noch die elseifs ausführt.. die ends sind sozusagen eine temporäre notlösung^^ | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hä? Also nur mal rein von der Logik her.. Vlt lern cih auch ncoh mal was neues...
Wenn man das hat: Code: [AUSKLAPPEN] a=True b=True If a Then Debuglog "A" Elseif b Then Debuglog "B" Endif WaitKey() Dann wird nur "A" angezeigt. Das programm hüpft nicht in "B". Es macht nach Endif weiter. Oder was meinst du? mfG, Christoph. |
||
Flameskull |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habs jetzt selber verstanden.. ich dachte das programm führt nur dieses if zeug aus und zwar solange, biss es bis zum endif kommt. alles was dadrunter ist wird nicht ausgeführt.. (hab ich zumindest gedacht).
hab grad rausbekommen dass es nicht so ist^^.. glaub ich ![]() jetzt stellt sich noch ne frage.. wenn ich WaitKey End mit Cls ersetze, dann wird zwar der bildschirm gelöscht, aber im "unsichtbaren" laufen die figuren in meinem programm trotzdem weiter. und wenn die nicht mehr kollidieren, ist das bild nicht mehr gelöscht.. wie kann ich das bild komplett löschen?= |
||
![]() |
ProggerOrk |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] ;Hier werden Grafiken geladen und alles was halt so gebraucht wird
SetBuffer BackBuffer() Repeat cls ;Hier kommt alles rein was gezeichnet werden soll und was bewegt werden soll flip until keyhit(1) end ![]() |
||
Aktuelles Spiel: Treasure Miner
Mehr Informationen unter: http://www.pucupo-games.de |
Flameskull |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich glaub du has das faslch verstanden...
waitkey und end, ich meine damit das, was bei Code: [AUSKLAPPEN] ElseIf ImagesCollide(a, x, y, frame1, c, cx, cy, frame2) Text 280, 240, "GAME OVER" WaitKey End ElseIf ImagesCollide(a, x, y, frame1, d, dx, dy, frame2) Text 280, 240, "GAME OVER" steht |
||
![]() |
ProggerOrk |
![]() Antworten mit Zitat ![]() |
---|---|---|
er löscht den bildschirm doch nur , wenn eine IF Anweisung zutrifft.. oder sehe ich das falsch= Und warum so oft "cls"? | ||
Aktuelles Spiel: Treasure Miner
Mehr Informationen unter: http://www.pucupo-games.de |
- Zuletzt bearbeitet von ProggerOrk am Fr, Mai 02, 2008 19:35, insgesamt einmal bearbeitet
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum willst due WaitKey und End durch Cls ersetzen? ProggerOrk hat dir ein Schema gezeigt, wie man sein Programm aufbauen sollte. Und das Cls ist dort genau an der richtigen Stelle. Wonanders wirst du es kaum brauchen ![]() |
||
Flameskull |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich möchte halt, dass wenn die kollision eintrifft, dass der bildschirm komplett schwarz wird.. also dass alle images und so verschwinden.. ich dachte das geht mit cls | ||
![]() |
ProggerOrk |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber nimm doch dafür extra eine Variable... und zwar in etwa so :
Code: [AUSKLAPPEN] global kollision = 0
SetBuffer BackBuffer() Repeat cls ;Hier kommt alles rein was gezeichnet werden soll und was bewegt werden soll ;Hier überprüft er ob Kollisionen vorhanden sind if imagescollide(....) then kollision = 1 end if ;In den Bereich zeichnet er deine Grafiken oder was auch immer if kollision = 0 then ;Zeichne alles was gezeichnet werden soll end if flip kollision = 0 until keyhit(1) end Also dadurch das irgendetwas kollidiert , springt die Variable "kollision " auf 1 und unten wird nur gezeichnet , solange "Kollision" auf 0 steht, ansonsten bleibt der Bildschirm leer... Sieht doch so wesentlich schöner aus oder nicht? EDIT: Wichtig ist dann aber auch das die Variable ganz unten, wie im Code bestehnd auf "0" gesetzt wird.. |
||
Aktuelles Spiel: Treasure Miner
Mehr Informationen unter: http://www.pucupo-games.de |
Flameskull |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
super idee danke!
bin halt neu in blitz basic (2 tage).. bin ned drauf gekommen ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group