move = 1 nach COllision zurücksetzen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

mavi

Betreff: move = 1 nach COllision zurücksetzen

BeitragSa, März 22, 2008 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 22, 2008 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 22, 2008 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 22, 2008 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 22, 2008 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 22, 2008 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
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)
Shocked

Eingeproggt

BeitragSa, März 22, 2008 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich helf dir nch schnell, bevor der Thread wegen Tripple-Posting geschlossen wird Rolling Eyes

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 Wink

Derzeit setzt du move auf 2 und fragst ab, ob es 1 ist...

mfG, Christoph.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group