Verschiebe Puzzle Bilder einfügen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

mauritius2107

Betreff: Verschiebe Puzzle Bilder einfügen

BeitragSo, Jun 27, 2010 22:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Ich habe ein Verschiebe Puzzle programmiert die Felder haben Zahlen diese möchte ich nun durch ein zerstückeltes Bild ersetzen weiß aber nicht wie wer kann mir helfen hier mein Code.
Hier noch mal weil ich den code nicht als code markiert hatte. Danke schonmal für eure hilfe

Code: [AUSKLAPPEN]
AppTitle "Verschiebe Puzzle"

Graphics 1280,1024,32,2
SetBuffer BackBuffer()


;Hintergrundmusik starten
kanal1 = PlayMusic ("Data\musik1.mp3")


;Variblen Zuweisung
V# = 1
musik = 1


;Menü*************************************************
.Menü

;Grafiken laden
buttonan2 = LoadImage ("Data\buttonan2.bmp")
buttonaus2 = LoadImage ("Data\buttonaus2.bmp")
buttonan = LoadImage ("Data\buttonan.bmp")
buttonaus = LoadImage ("Data\buttonaus.bmp")
button12 = LoadImage ("Data\button12.bmp")
button1 = LoadImage ("Data\button1.bmp")
button2 = LoadImage ("Data\button2.bmp")
button22 = LoadImage ("Data\button22.bmp")
button3 = LoadImage ("Data\button3.bmp")
button32 = LoadImage ("Data\button32.bmp")
sterne = LoadImage ("Data\sterne.bmp")
maus = LoadImage ("Data\maus.bmp")


;Tasten,Maus löschen
FlushKeys
FlushMouse

;Bildschirm löschen
Cls

Repeat

   ;Hintergrundmusik
   If ChannelPlaying(kanal1) = 0 And musik = 1 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik2.mp3")
   musik = 2
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 2 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik3.mp3")
   musik = 3
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 3 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik4.mp3")
   musik = 4
   Delay 999
   EndIf

   If ChannelPlaying(kanal1) = 0 And musik = 4 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik5.mp3")
   musik = 5
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 5 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik6.mp3")
   musik = 6
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 6 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik7.mp3")
   musik = 7
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 7 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik8.mp3")
   musik = 8
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 8 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik1.mp3")
   musik = 1
   Delay 999
   EndIf

   
   
   ;Hintergrund
   I = I+1
   If I=10000000 Then I=0
   TileBlock sterne,I,I

   ;Button zeichnen
   DrawImage button1,400,170   
   DrawImage button2,400,400
   DrawImage button3,400,600
   DrawImage buttonaus,1110,50
   DrawImage buttonan,1110,90

   
   ;Maus zeichnen
   X=MouseX()
   Y=MouseY()
   DrawImage maus,X,Y
   
   
      ;Button verfärbung
      If ImagesCollide (maus,X,Y,0, button1,400,170,0) Then
      DrawImage button12,400,170
      EndIf
      
      If ImagesCollide (maus,X,Y,0, button2,400,400,0) Then
      DrawImage button22,400,400
      EndIf

      If ImagesCollide (maus,X,Y,0, button3,400,600,0) Then
      DrawImage button32,400,600
      EndIf
   
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) Then
      DrawImage buttonaus2,1110,50
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) Then
      DrawImage buttonan2,1110,90
      EndIf
         

      ;Button anklicken
      If ImagesCollide (maus,X,Y,0, button1,400,170,0) And MouseDown(1) Then
      Delay 100
      Goto Spiel1
      EndIf
      
      If ImagesCollide (maus,X,Y,0, button2,400,400,0) And MouseDown(1) Then
      Delay 100
      Goto Levelladen
      EndIf

      If ImagesCollide (maus,X,Y,0, button3,400,600,0) And MouseDown(1) Then
      End   
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) And MouseDown(1) Then
      V = 0
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) And MouseDown(1) Then
      V = 1
      EndIf
      
      ;Ton an/aus abfragen
      ChannelVolume(kanal1,V)
      
   
      
Flip
Until KeyDown (1)
End



;Levelladen************************************
.Levelladen

;Grafiken laden
sterne = LoadImage ("Data\sterne.bmp")
buttonan2 = LoadImage ("Data\buttonan2.bmp")
buttonaus2 = LoadImage ("Data\buttonaus2.bmp")
buttonan = LoadImage ("Data\buttonan.bmp")
buttonaus = LoadImage ("Data\buttonaus.bmp")
Text5 = LoadImage ("Data\Text5.bmp")
hauptmenue2 = LoadImage ("Data\hauptmenue2.bmp")
hauptmenue = LoadImage ("Data\hauptmenue.bmp")

;Tasten,Maus löschen
FlushMouse
FlushKeys

Repeat
   
   ;Hintergrundmusik
   If ChannelPlaying(kanal1) = 0 And musik = 1 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik2.mp3")
   musik = 2
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 2 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik3.mp3")
   musik = 3
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 3 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik4.mp3")
   musik = 4
   Delay 999
   EndIf

   If ChannelPlaying(kanal1) = 0 And musik = 4 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik5.mp3")
   musik = 5
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 5 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik6.mp3")
   musik = 6
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 6 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik7.mp3")
   musik = 7
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 7 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik8.mp3")
   musik = 8
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 8 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik1.mp3")
   musik = 1
   Delay 999
   EndIf


   
   ;Hintergrund
   I = I+1
   If I=10000000 Then I=0
   TileBlock sterne,I,I
   
   ;Button zeichnen
   DrawImage Text5,100,250
   DrawImage hauptmenue, 200,100
   DrawImage buttonaus,1110,50
   DrawImage buttonan,1110,90

   
   ;Maus zeichnen
   X=MouseX()
   Y=MouseY()
   DrawImage maus,X,Y
   
   
      ;Button verfärben
      If ImagesCollide (maus,X,Y,0, hauptmenue,200,100,0) Then
      DrawImage hauptmenue2,200,100
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) Then
      DrawImage buttonaus2,1110,50
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) Then
      DrawImage buttonan2,1110,90
      EndIf
      
      
      ;Button anklicken
      If ImagesCollide (maus,X,Y,0, hauptmenue,200,100,0) And MouseDown(1) Then
      Delay 100
      Goto Menü
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) And MouseDown(1) Then
      V = 0
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) And MouseDown(1) Then
      V = 1
      EndIf
      
      ;Ton an/aus abfragen
      ChannelVolume(kanal1,V)


   
      
Flip
Forever
End



;Spiel1******************************************************
.Spiel1

;Grafiken laden
block = LoadImage("Data\blocks1.bmp")
buttonan2 = LoadImage ("Data\buttonan2.bmp")
buttonaus2 = LoadImage ("Data\buttonaus2.bmp")
buttonan = LoadImage ("Data\buttonan.bmp")
buttonaus = LoadImage ("Data\buttonaus.bmp")
sterne = LoadImage ("Data\sterne.bmp")
maus = LoadImage ("Data\maus.bmp")
Pause = LoadImage ("Data\Pause.bmp")
buttonneustarten2 = LoadImage ("Data\buttonneustarten2.bmp")
buttonabbrechen2 = LoadImage ("Data\buttonabbrechen2.bmp")
buttonneustarten = LoadImage ("Data\buttonneustarten.bmp")
buttonabbrechen = LoadImage ("Data\buttonabbrechen.bmp")



;Tasten,Maus löschen
FlushKeys
FlushMouse

;Bildschirm löschen
Cls




Dim Feld(5,5)
Dim Mischen(24)


;später löschen
font = LoadFont("Times New Roman",40,1,0,0)
SetFont font
;löschen ende


;Stein erstellen
stein = CreateImage(32,32)
SetBuffer ImageBuffer(stein)
DrawImageRect block,0,0,444,308,32,32
ScaleImage stein,4,4

;Stein verfärben
aktivstein = CreateImage(32,32)
SetBuffer ImageBuffer(aktivstein)
DrawImageRect block,0,0,2,342,32,32
ScaleImage aktivstein,4,4

SetBuffer BackBuffer()


;Spielsteine verteilen
SeedRnd MilliSecs()
For I=1 To 5
   For J=1 To 5
      Repeat
      A = Rand(0,24)
      Until Mischen(A) = 0
      
      Mischen(A) = 1
      Feld(i,J) = A
   Next
Next

Zeitanfang = MilliSecs()

Repeat

   ;Hintergrundmusik
   If ChannelPlaying(kanal1) = 0 And musik = 1 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik2.mp3")
   musik = 2
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 2 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik3.mp3")
   musik = 3
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 3 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik4.mp3")
   musik = 4
   Delay 999
   EndIf

   If ChannelPlaying(kanal1) = 0 And musik = 4 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik5.mp3")
   musik = 5
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 5 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik6.mp3")
   musik = 6
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 6 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik7.mp3")
   musik = 7
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 7 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik8.mp3")
   musik = 8
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 8 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik1.mp3")
   musik = 1
   Delay 999
   EndIf



   ;Hintergrund
   I = I+1
   If I=10000000 Then I=0
   TileBlock sterne,I,I


   ;Button zeichnen
   DrawImage buttonaus,1110,50
   DrawImage buttonan,1110,90


      ;Button verfärbung
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) Then
      DrawImage buttonaus2,1110,50
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) Then
      DrawImage buttonan2,1110,90
      EndIf
      
      
      ;Button anklicken
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) And MouseDown(1) Then
      V = 0
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) And MouseDown(1) Then
      V = 1
      EndIf
      
      ;Ton an/aus abfragen
      ChannelVolume(kanal1,V)

   

   ;Spielfeld zeichnen
   For I=1 To 5
      For J=1 To 5
         If Feld(I,J) <> 0 Then DrawImage stein, 180 + I*128,60 + J*128
         If (I = X1) And (J = Y1) Then DrawImage aktivstein,180 + I*128,60 + J*128
         
         ;später löschen
         If Feld(I,J) > 9 Then Text 180 + 17 +I*128,60 + 12 + J*128, Feld(I,J)
         If (Feld(I,J) < 10) And (Feld(I,J) > 0) Then  Text 180 + 25 +I*128,60 +12 + J*128, Feld(I,J)
         ;löschenende
         
      Next
   Next
   
   ;Mausposition auswerten
   X1 = 0
   Y1 = 0
   X = MouseX()
   Y = MouseY()
   
   For I=1 To 6
      If X > 180 + I*128 Then X1 = X1+1
   Next
   
   For J=1 To 6
      If Y > 60 + J*128 Then Y1 = Y1+1
   Next
   
   If X1 = 6 Then X1 = 0
   If Y1 = 6 Then Y1 = 0
   If Y1 = 0 Then Y1 = 0
   If X1 = 0 Then X1 = 0
   
   If Feld(X1,Y1) = 0 Then X1=0 : Y1 = 0
   DrawImage maus,X,Y
   
   ;Mausklicks auswerten
   If MouseDown(1) And Feld(X1,Y1) <> 0  Then
   X2 = 0
   Y2 = 0
   If X1 > 1 Then If Feld(x1-1,Y1) = 0 Then X2 = X1-1 : Y2 = Y1
   If X1 < 5 Then If Feld(x1+1,Y1) = 0 Then X2 = X1+1 : Y2 = Y1
   If Y1 > 1 Then If Feld(x1,Y1-1) = 0 Then Y2 = Y1-1 : X2 = X1
   If Y1 < 5 Then If Feld(x1,Y1+1) = 0 Then Y2 = Y1+1 : X2 = X1
   
   ;Stein verschieben
   If X2 <> O Then
      Feld(X2,Y2) = Feld(X1,Y1)
      Feld(X1,Y1) = 0
      
      ;Wie viele Steine sind am richtigen Platz
      Fertig = 0
      For I=1 To 5
         For J=0 To 4
            If Feld(I,J+1)= I + (J * 5) Then Fertig = Fertig + 1
         Next
      Next
      If Fertig = 24 Then
      Zeitende = MilliSecs()
      Zeit = Zeitende - Zeitanfang
      Time# = Zeit / 1000
      Minuten# = Time# / 60
      Delay 100
      Goto Auswertung
      End If
   EndIf
EndIf

;Cheatcode
If KeyDown(87) And KeyDown(88) Then
   For I=1 To 5
      For J=0 To 4
         feld(I, J+1) = I + (J*5)
      Next
   Next
   Feld(4,5) = 0
   Feld(5,5) = 24
EndIf

Flip

;Pause Funktion
      If KeyDown(197) Or KeyDown(25) Then
      DrawImage Pause,450,400
      Flip
      FlushKeys
      V=0
      ChannelVolume(kanal1,V)
      WaitKey
      V=1
      ChannelVolume(kanal1,V)
      Delay 100
      EndIf
      
      
;ESC Funktion
      If KeyDown (1)  Then
      Delay 100
      Goto ESC
      EndIf
      
               
Forever
End







;ESC FUNKTION ************************************
.ESC

;Tasten,Maus löschen
FlushKeys
FlushMouse

Repeat
   
   ;Bildschirm löschen
   Cls

   ;Hintergrund
   I = I+1
   If I=10000000 Then I=0
   TileBlock sterne,I,I

   
   ;Hintergrundmusik
   If ChannelPlaying(kanal1) = 0 And musik = 1 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik2.mp3")
   musik = 2
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 2 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik3.mp3")
   musik = 3
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 3 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik4.mp3")
   musik = 4
   Delay 999
   EndIf

   If ChannelPlaying(kanal1) = 0 And musik = 4 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik5.mp3")
   musik = 5
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 5 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik6.mp3")
   musik = 6
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 6 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik7.mp3")
   musik = 7
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 7 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik8.mp3")
   musik = 8
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 8 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik1.mp3")
   musik = 1
   Delay 999
   EndIf

   
   
   ;Button zeichnen
   DrawImage buttonneustarten,400,350   
   DrawImage buttonabbrechen,400,600
   DrawImage buttonaus,1110,50
   DrawImage buttonan,1110,90


   
   ;Maus zeichnen
   X=MouseX()
   Y=MouseY()
   DrawImage maus,X,Y
   
      
      ;Button verfärbung
      If ImagesCollide (maus,X,Y,0, buttonneustarten,400,350,0) Then
      DrawImage buttonneustarten2,400,350
      EndIf

      If ImagesCollide (maus,X,Y,0, buttonabbrechen,400,600,0) Then
      DrawImage buttonabbrechen2,400,600
      EndIf
   
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) Then
      DrawImage buttonaus2,1110,50
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) Then
      DrawImage buttonan2,1110,90
      EndIf
      
      
      ;Button anklicken
      If ImagesCollide (maus,X,Y,0, buttonneustarten,400,350,0) And MouseDown(1) Then
      Goto Spiel1
      Delay 100
      EndIf

      If ImagesCollide (maus,X,Y,0, buttonabbrechen,400,600,0) And MouseDown(1) Then
      Delay 100
      Goto Menü   
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) And MouseDown(1) Then
      V = 0
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) And MouseDown(1) Then
      V = 1
      EndIf
      
      ;Ton an/aus abfragen
      ChannelVolume(kanal1,V)
      
   
      
Flip
Forever



;Auswertung*********************************************
.Auswertung

maus = LoadImage ("Data\maus.bmp")
buttonnext2 = LoadImage ("Data\buttonnext2.bmp")
buttonmenü2 = LoadImage ("Data\buttonmenü2.bmp")
buttonnext = LoadImage ("Data\buttonnext.bmp")
buttonmenü = LoadImage ("Data\buttonmenü.bmp")
buttonan2 = LoadImage ("Data\buttonan2.bmp")
buttonaus2 = LoadImage ("Data\buttonaus2.bmp")
buttonan = LoadImage ("Data\buttonan.bmp")
buttonaus = LoadImage ("Data\buttonaus.bmp")
Text1 = LoadImage ("Data\Text1.bmp")
Text3 = LoadImage ("Data\Text3.bmp")


;Tasten,Maus löschen
FlushMouse
FlushKeys

Repeat

   ;Bildschirm löschen
   Cls
   
   ;Hintergrundmusik
   If ChannelPlaying(kanal1) = 0 And musik = 1 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik2.mp3")
   musik = 2
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 2 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik3.mp3")
   musik = 3
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 3 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik4.mp3")
   musik = 4
   Delay 999
   EndIf

   If ChannelPlaying(kanal1) = 0 And musik = 4 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik5.mp3")
   musik = 5
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 5 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik6.mp3")
   musik = 6
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 6 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik7.mp3")
   musik = 7
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 7 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik8.mp3")
   musik = 8
   Delay 999
   EndIf
   
   If ChannelPlaying(kanal1) = 0 And musik = 8 Then
   Delay 999
   kanal1 = PlayMusic ("Data\musik1.mp3")
   musik = 1
   Delay 999
   EndIf

   
   
   ;Hintergrund
   I = I+1
   If I=10000000 Then I=0
   TileBlock sterne,I,I
   
   ;Button zeichnen
   Text 100,180,"Sie haben " + Minuten + " Minuten gebraucht!"
   DrawImage Text1,100,5
   DrawImage Text3,100,800
   DrawImage buttonnext,300,500   
   DrawImage buttonmenü,300,625
   DrawImage buttonaus,1110,50
   DrawImage buttonan,1110,90
   

   ;Maus zeichnen
   X=MouseX()
   Y=MouseY()
   DrawImage maus,X,Y
   
      
      ;Button verfärben
      If ImagesCollide (maus,X,Y,0, buttonnext,300,500,0) Then
      DrawImage buttonnext2,300,500
      EndIf

      If ImagesCollide (maus,X,Y,0, buttonmenü,300,625,0) Then
      DrawImage buttonmenü2,300,625
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) Then
      DrawImage buttonaus2,1110,50
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) Then
      DrawImage buttonan2,1110,90
      EndIf
      
      
      ;Button aklicken
      If ImagesCollide (maus,X,Y,0, buttonnext,300,500,0) And MouseDown(1) Then
      Delay 100
      Goto Menü ;nächstes Level code
      EndIf

      If ImagesCollide (maus,X,Y,0, buttonmenü,300,625,0) And MouseDown(1) Then
      Goto Menü
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonaus,1110,50,0) And MouseDown(1) Then
      V = 0
      EndIf
      
      If ImagesCollide (maus,X,Y,0, buttonan,1110,90,0) And MouseDown(1) Then
      V = 1
      EndIf
      
      ;Ton an/aus abfragen
      ChannelVolume(kanal1,V)
      


Flip
Forever
End

Holzchopf

Meisterpacker

BeitragSo, Jun 27, 2010 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.


Packe deinen Code in Codeboxen ( [code] hier dein code [/code] ) oder noch besser Syntax-Boxen, wie es sich bei Quelltexten gehört, denn sonst mag dir evtl keiner helfen Wink

mfG
Holzchopf

Edit
Brav. *tätschel* in Zukunft bitte noch ohne Doppel-Post. Man kann Beiträge gut bearbeiten (hab den anderen mal terminiert. =)
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

das wurgel

BeitragSo, Jun 27, 2010 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
   ;Hintergrundmusik
   If ChannelPlaying(kanal1) = 0 And wartenbis=0 Then wartenbis=Millisecs()+999

   If wartenbis<>0 And wartenbis>Millisecs() Then
       wartenbis = 0
       musik = (musik Mod 8) + 1
       kanal1 = PlayMusic ("Data\musik"+musik+".mp3")
   EndIf

So sparst du Platz und es ist übersichtlicher. In deinem Code kann der User 2 sek nichts machen, wenn die Musik wechselt. Im obrigen Code wird mit Millsecs() die Zeit ermittelt, wie lang der PC läuft und gewartet bis die jetzige und die gespeicherte Zeit einen Abstand von einer Sekunde haben.

Code: [AUSKLAPPEN]

If ImagesCollide (maus,X,Y,0, hauptmenue,200,100,0) Then
      DrawImage hauptmenue2,200,100
      If ImagesCollide (maus,X,Y,0, button1,400,170,0) And MouseDown(1) Then
            Delay 100
            Exit
      EndIf
EndIf

ImagesCollide ist langsam und sollte daher wenn möglich nur einmal ausgeführt werden. Das geht in dem man die Ifs inneinander verschachtelt. Gotos solltest du meiden, pack stattdessen alles in eine große Schleife.

Die Bilder von oben brauchst du vor dem Spiel nicht nocheimal zu laden.

Was die eigentliche Frage angeht: Lade mit LoadAnimImage eine Bilderkette, oder mache ein Dim-Feld mit dein varschiedenen Bildern und lade die Bilder in einer Schleife. Dann kannst du das Bild entweder mit "DrawImage image, x, y, frame" oder mit "DrawImage image(frame), x, y" zeichnen, wobei Frame der Wert innerhalb des Spielfeld-Arrays ist.

(Codes nicht gestestet, keine Garantie auf Korrektheit)
1 ist ungefähr 3
 

mauritius2107

BeitragMo, Jun 28, 2010 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Holzchopf sehr nett!

Auch an das wurgel herzlichen dank das mit den bildern laden verstehe ich nicht kannst du mir das mit einem code erklären?

danke euch allen

das wurgel

BeitragMo, Jun 28, 2010 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, zunächsteinmal mache die Gotos und die Sprungmarken weg. Mach eine eine große Schleife statt viele kleine und lade alle nötigen Bilder einmalig ganz am Anfang. Bei deinem Code werden jedes Mal, wenn man z.B. ins Menu geht, alle Bilder in den Speicher geladen. Beim zweiten Mal werden sie erneut in den Speicher geladen, usw. und so wird der Speicher immmer voller und voller. Statt den vielen Sprungmarken benutze eine Variable. In der Schleife fragst du dann den Wert der Variable ab und zeigst dem entsprechend das Menu oder das Spiel etc. an. (0=Menu, 1=Spiel, 2=Auswertung,...). Dann bist du schonmal mal ein ganzes Stück weiter und man kannd den Code wieder lesen.
1 ist ungefähr 3

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group