move = 1 nach COllision zurücksetzen
Übersicht

maviBetreff: move = 1 nach COllision zurücksetzen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So das ist mein Quelltext ich sitze und überlege...wie bekomme ich hin das ich move nach er "Collision" auf 1 bekomme...
Also falls ihr mien problem nich versteht.... Wenn...Kollision dann move = +1 Und wenn die Bedinung move = 1 erfüllt ist dann kann sich der held bewegen...aber wie setz ich move auf 1 zurück nach der kollision? danke im vorraus =) Code: [AUSKLAPPEN] AppTitle "blubb"
Graphics 800,600,1 links = LoadImage ("links.bmp") unten = LoadImage ("unten.bmp") hero = LoadImage ("hero1.bmp") posx = 200 posy = 200 move = 1 ;=============ANZEIGE=============== .anzeige Flip Cls SetBuffer BackBuffer() MaskImage hero, 255,255,255 DrawImage links, 0,0 DrawImage links, 770,0 DrawImage unten, 30,0 DrawImage unten, 30,570 DrawImage hero, posx, posy ;============Spielbegrenzung==============0 If ImagesCollide(unten, 30,0,0, hero, posx,posy,0) Then move = move + 1 EndIf ;=============Steuerung============= Repeat If KeyDown(200) Then;oben If move = 1 Then posy = posy - 5 Goto anzeige EndIf EndIf If KeyDown(208) Then;unten If move = 1 Then posy = posy + 5 Goto anzeige EndIf EndIf If KeyDown(203) Then;links If move = 1 Then posx = posx - 5 Goto anzeige EndIf EndIf If KeyDown(205) Then;rechts If move = 1 Then posx = posx + 5 Goto anzeige EndIf EndIf Until KeyDown(1) |
||
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Pack die "Spielbegrenzung" in die darauf folgende Repeat-Schleife, dann müsstes eigentlich klappen.
Ach ja: Setz move bei einer Kollision gleich 1, nicht gleich 1+move. Außerdem solltest Du hinter die Kollisionsabfrage ein Else schreiben, in dem move auf 0 gesetzt wird. |
||
- Zuletzt bearbeitet von Tritium am Sa, März 22, 2008 15:25, insgesamt einmal bearbeitet
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Deine Strukturierung is ein Chaos.
Mach doch eine Hauptschleife. Nicht eie zum Steuern und dann mit Goto zum Zeichnen springen. Was das Zurücksetzen angeht.. meinst du es so? : Code: [AUSKLAPPEN] If move = 1 Then
move=0 ;Bewegung Goto anzeige EndIf EDIT: So wie es Tritium nacheditiert hat, gehts auch. Hauptsache ist aber, dass du mal eine brauchbare Strukturierung ohne Goto machst. mfG, Christoph. |
||
- Zuletzt bearbeitet von Eingeproggt am Sa, März 22, 2008 15:29, insgesamt einmal bearbeitet
mavi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für eure hilfe...
ich finde...ein quelltext kann kein chaos sein, denn du weißt doch im richtigen leben kann einer mit einem unordentlichen zimmer besser leben als einer der immer aufräumt und umgedreht ich finde...quelltext sollte man so schreiben, dass jeder für sich selber die beste übersicht hat =D noch mal danke für die hilfe |
||
mavi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
move = 1 laufen
move = 0 nichtlaufen move = 2 nicht laufen! nicht vergessen wenn mir da move auf 0 setzt dann läuft der typ dann nich =D |
||
mavi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab das jetzt mal so gemacht...das bewegen in eine hauptschleife...mit der anzeige....
aber wenn ich jetzt...meine figur bewege...hängt sie am kollidierten Image fest :O was mach ich das sie sich bewegen kann? aber halt nicht drüber hinaus :O Code: [AUSKLAPPEN] AppTitle "blubb"
Graphics 800,600,1 links = LoadImage ("links.bmp") unten = LoadImage ("unten.bmp") hero = LoadImage ("hero1.bmp") posx = 200 posy = 200 move = 1 Flip Cls SetBuffer BackBuffer() MaskImage hero, 255,255,255 DrawImage links, 0,0 DrawImage links, 770,0 DrawImage unten, 30,0 DrawImage unten, 30,570 DrawImage hero, posx, posy ;=============HAUPTSCHLEIFE================= Repeat Flip Cls SetBuffer BackBuffer() MaskImage hero, 255,255,255 DrawImage links, 0,0 DrawImage links, 770,0 DrawImage unten, 30,0 DrawImage unten, 30,570 DrawImage hero, posx, posy If KeyDown(200) Then;oben If move = 1 Then posy = posy - 5 EndIf EndIf If KeyDown(208) Then;unten If move = 1 Then posy = posy + 5 EndIf EndIf If KeyDown(203) Then;links If move = 1 Then posx = posx - 5 EndIf EndIf If KeyDown(205) Then;rechts If move = 1 Then posx = posx + 5 EndIf EndIf If ImagesCollide(unten, 30,0,0, hero, posx,posy,0) Then move = 2 EndIf Until KeyDown(1) ![]() |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich helf dir nch schnell, bevor der Thread wegen Tripple-Posting geschlossen wird ![]() Was ist das für ne Logik? Zitat: move = 1 laufen
move = 0 nichtlaufen move = 2 nicht laufen! Machs so, wie wir vorgeschlagen haben. Das geht ![]() Derzeit setzt du move auf 2 und fragst ab, ob es 1 ist... mfG, Christoph. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group