Code mal anschauen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Jul3s

Betreff: Code mal anschauen

BeitragMi, Apr 06, 2005 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute, ich hab mal ne frage wegen dieser functions,
schaut euch mal den code, wo liegt da der fehler.
Muss ich für die game function nochmal eine neue spielschleife erstellen oder wie. Ich raffs irgendwie nicht:

Code: [AUSKLAPPEN]

Graphics 800, 600,0,1
SetBuffer BackBuffer()

Global bg_a = 200
Global bg_b = 200
Global pl_x = 300
Global pl_y = 300


Global game_bg =  LoadImage("bg.bmp")
Global game_bg1 = LoadImage("bg1.bmp")
Global menu_bg = LoadImage("menu_bg.bmp")
Global maus_c = LoadImage("maus_c.bmp")
Global button_1 = LoadImage("button_1.bmp")
Global button_2 = LoadImage("button_2.bmp")
Global button_o = LoadImage("button_o.bmp")
Global button_eg = LoadImage("button_eg.bmp")
Global pl_ship = LoadImage("pl_ship.bmp")

MaskImage game_bg1,0,0,0
MaskImage maus_c,255,0,0

Repeat
Cls

menu()

Flip
Until KeyDown(1)

Function menu()

maus_x = MouseX()
maus_y = MouseY()

DrawImage menu_bg,-110,-170
DrawImage button_1,150,100
DrawImage button_2,150,200
DrawImage button_o,150,300
DrawImage button_eg,150,400
DrawImage maus_c,maus_x,maus_y

If ImagesOverlap(button_1,150,100,maus_c,maus_x,maus_y) And MouseDown(1) Then
game()
EndIf

End Function

Function game()

Repeat
Cls

bg_a = bg_a - 1
If bg_a = 0 Then bg_a = 200
TileBlock game_bg,bg_a,0

bg_b = bg_b - 2
If bg_b = 0 Then bg_b = 200
DrawImage game_bg1,bg_b,0

If KeyDown(32) Then pl_x = pl_x + 1
If KeyDown(30) Then pl_x = pl_x - 1
If KeyDown(31) Then pl_y = pl_y + 1
If KeyDown(17) Then pl_y = pl_y - 1

DrawImage pl_ship,pl_x,pl_y

Until KeyDown(1)

End Function

Ornos

BeitragMi, Apr 06, 2005 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
definiere mal genau was nicht geht
 

Jul3s

BeitragMi, Apr 06, 2005 14:07
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn die funtion game() aufgerufen wird (also wenn ich mit der maus auf den einen button klicke) dann bleibt die maus hängen und das bild ändert sich nicht dabei soll der in die function game() springen

simi

BeitragMi, Apr 06, 2005 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich mache das immer so:
Code: [AUSKLAPPEN]

....

While Not(keyHit(1))
  cls
  select status
    case 0
      menu()
    case 1
      game()
     ;..........
  end select

  flip
wend


So brauchst du keine Schleife in der Funktion Game mehr....
 

Jul3s

BeitragMi, Apr 06, 2005 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ahhh ok ich werds mal probieren danke

Surat

BeitragMi, Apr 06, 2005 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
If ImagesOverlap(button_1,150,100,maus_c,maus_x,maus_y) And MouseDown(1) Then
game()
EndIf
Das funzt nicht?

BlitzBasic: [AUSKLAPPEN]

For i=1 To 100
If ImagesOverlap(button_1,150,100,0,maus_c,maus_x,maus_y,0) And
MouseDown(1) Then Gosub game
[syntax:7eaf3cfc7c=\"bb\"]

Vorher muss natürlich alles in eine Repeat-Until Schleife gepackt werden
und statt Function game() dann .game geschrieben werden.
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)
 

Jul3s

BeitragMi, Apr 06, 2005 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke schon mal habs jetzt mal nach simis vorschlag gemacht
klappt auch bis auf eine stelle aber das dürfte glaub'ch kein problem sein:

Code: [AUSKLAPPEN]

Graphics 800, 600,0,1
SetBuffer BackBuffer()

bg_a = 200
bg_b = 200
pl_x = 300
pl_y = 300
mode = 1

game_bg =  LoadImage("bg.bmp")
game_bg1 = LoadImage("bg1.bmp")
menu_bg = LoadImage("menu_bg.bmp")
maus_c = LoadImage("maus_c.bmp")
button_1 = LoadImage("button_1.bmp")
button_2 = LoadImage("button_2.bmp")
button_o = LoadImage("button_o.bmp")
button_eg = LoadImage("button_eg.bmp")
pl_ship = LoadImage("pl_ship.bmp")

MaskImage game_bg1,0,0,0
MaskImage maus_c,255,0,0

Repeat
Cls

Select mode
Case 1

maus_x = MouseX()
maus_y = MouseY()

DrawImage menu_bg,-110,-170
DrawImage button_1,150,100
DrawImage button_2,150,200
DrawImage button_o,150,300
DrawImage button_eg,150,400
DrawImage maus_c,maus_x,maus_y

If ImagesOverlap(button_1,150,100,maus_c,maus_x,maus_y) And MouseDown(1) Then mode = 2

Case 2

bg_a = bg_a - 1
If bg_a = 0 Then bg_a = 200
TileBlock game_bg,bg_a,0

bg_b = bg_b - 2
If bg_b = 0 Then bg_b = 200
DrawImage game_bg1,bg_b,0

If KeyDown(32) Then pl_x = pl_x + 1
If KeyDown(30) Then pl_x = pl_x - 1
If KeyDown(31) Then pl_y = pl_y + 1
If KeyDown(17) Then pl_y = pl_y - 1

DrawImage pl_ship,pl_x,pl_y

If KeyDown(1) Then mode = 1  ; <----- der springt nicht zurück ins menu              warum ??

End Select



Flip
Until KeyDown(1)
 

hitokiri

BeitragMi, Apr 06, 2005 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
mode = 1 muss in die nächste zeile, darf nicht hinter dem then stehen Smile

simi

BeitragMi, Apr 06, 2005 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

If KeyDown(1) Then mode = 1  ; <-----
End Select



Flip
Until KeyDown(1) ;<---------------


du hast 2 mal KeyDown, dann beendet sich das Programm gerade, und kann nicht in das menü zurückspringen.....


@hitokiri:
Mir kommt nur etwas in den Sinn: MIST!!! Wink
 

Michi

BeitragMi, Apr 06, 2005 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
im ersten Programm fehlt in der function game() das Flip 8)

(Kann jedem mal passieren)
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968
Code: [AUSKLAPPEN]

   __
<_/__\_> <--- die Wayne-Zeichnung
 

Jul3s

BeitragMi, Apr 06, 2005 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke du hast recht jetzt hab ichs verbessert
danke an alle die geholfen haben Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group