Level wechsel(ich scheine langsam zu verblöden,biite Hilfe)

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Flori-D

Betreff: Level wechsel(ich scheine langsam zu verblöden,biite Hilfe)

BeitragFr, Jan 09, 2004 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.Bei meinem Game gibts momentan 2 Level.Wenn mann das erste bestanden hat sollte ein Smilie kommen und das 2 Level ankündigen.Doch es geschiet nichts.Der Smilie kommt einfach nicht.
Worsn liegt das?

Code: [AUSKLAPPEN]
If Punkte = Punkte >1500 Then
;Level 2



DrawImage auftrag2, 200,200
Delay 50000
BB is Macht!

Homepage: www.flori-d.de
  • Zuletzt bearbeitet von Flori-D am Fr, Jan 09, 2004 21:38, insgesamt 2-mal bearbeitet
 

OJay

BeitragFr, Jan 09, 2004 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
probiers mal mit flip nach deinem drawimage und vor dem delay...wenn du davor den backbuffer gesetzt hast, kannst du natürlich nichts sehen Wink

btw: delay von 50sekunden? Shocked

Flori-D

BeitragFr, Jan 09, 2004 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein bisschen lange,is aber so für die tests gewollt
BB is Macht!

Homepage: www.flori-d.de

Flori-D

BeitragFr, Jan 09, 2004 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst so:Code: [AUSKLAPPEN]
If Punkte = Punkte >1500 Then
;Level 2
SetBuffer BackBuffer()


DrawImage auftrag2, 200,200
Flip
Delay 50000

Jetzt drücke ich im Hauptmenü af Start nddann sieht mann für 3sek.nicht mal Level1 wenn manns endlich sieht ist man sofort GameOver.
BB is Macht!

Homepage: www.flori-d.de

ViciouS

BeitragFr, Jan 09, 2004 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
das kann man an dem codeschnipsel nicht erkennen..
must du mehr posten
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren...
und es werden mehr Laughing

Flori-D

BeitragFr, Jan 09, 2004 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
So level1und 2.
Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()
Global hinter = LoadImage("Gfx/stars.bmp")
Global schiff = LoadImage("Gfx/R4.bmp")
Global alienbild = LoadImage("Gfx/Rock1.bmp")
Global rakete = LoadImage("Gfx/torpedo0016.bmp")
Global explosion = LoadAnimImage("Gfx/explodeA.bmp", 60,46, 0,6)
Global schusston = LoadSound("Sound/soundfx11.wav")
Global trefferton = LoadSound("Sound/soundfx25.wav")
Global tiles = LoadImage ("Gfx/blocks1.bmp")
Global maus = LoadImage ("Gfx/pointer.bmp")
Global hinter2 = LoadImage("Gfx/stars2.bmp")
Global hinter3 = LoadImage("Wüste.bmp")
Global auftrag1 = LoadImage("auftrag1.bmp")
Global raumstation = LoadImage ("Raumstation.bmp")

Dim Rak(100,2)
Dim Alien(5,2)
Dim AlienExplodiert(5,1)
Dim Alien2(5,2)
Dim AlienExplodiert2(5,2)
Global X = 305
Global Y = 420




Global timer = CreateTimer(60)


; Graphik für Menüpunkt erzeugen

Global stein = CreateImage(32,32)
SetBuffer ImageBuffer(stein)
DrawImageRect tiles, 0, 0, 444, 308, 32, 32
ScaleImage stein, 8, 2

; Graphik für aktiven Spielstein erzeugen

Global aktivstein = CreateImage(32,32)
SetBuffer ImageBuffer(aktivstein)
DrawImageRect tiles, 0, 0, 2, 342, 32, 32
ScaleImage aktivstein, 8, 2

; Menü definieren

Dim MenuZeile(3) : Dim MenuName$(3)
MenuZeile(1) = 100 : MenuName$(1) = "Start"
MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen"
MenuZeile(3) = 300 : MenuName$(3) = "Ende"



SetBuffer  BackBuffer ()
Repeat
 TileBlock hinter2
 Menu = 0
 X = MouseX()
 Y = MouseY()
   
 For I=1 To 3
  If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then
   DrawImage aktivstein, 192, I * 100
   Menu = I
  Else
   DrawImage stein, 192, I * 100
  EndIf
  Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I)
 Next

 DrawImage maus, X,Y
 Flip

 If MouseHit(1) Then
 
  If Menu = 1 Then  Start()
  If Menu = 2 Then Einstellungen()
  If Menu = 3 Then Ende()
 EndIf
 
 Until KeyHit(1)
End


Function Einstellungen()
 Repeat
  Cls
  Text 100,100, "Hier dran wird noch gearbeitet.Zrück mit Esc."
  Flip
 Until KeyHit(1)
 FlushKeys
End Function



Function Ende()
 Repeat
 Cls
 Text 100,100, "Um zu beenden bitte Esc oder Leertaste drücken."
 Flip
 Until KeyHit(1) Or KeyHit(57)
 End
End Function


Function Start()
Repeat
Cls
DrawImage auftrag1, 200,200




;
; Hauptschleife Level 1
;

X = 400
Y = 500
Repeat
 Cls
 H = H+1
 If H=200 Then H=0
 TileBlock hinter, 0,H
 DrawImage schiff, X,Y
 
 

;Punkte Anzeige
Text 400,10, "Sie haben "+punkte+" Punkte
Punkte = Punkte +1


; Schuß-Test
 If KeyHit(57) Then
 Schuss = Schuss + 1
 If Schuss = 101 Then Schuss = 1
 Rak(Schuss,0) = 1
 Rak(Schuss,1) = X+33
 Rak(Schuss,2) = Y-19
 PlaySound(schusston)
EndIf



; Pfeiltasten abfragen
 If KeyDown(200) = 1 Then Y = Y - 1
 If KeyDown(208) = 1 Then Y = Y + 1
 If KeyDown(205) = 1 Then X = X + 2
 If KeyDown(203) = 1 Then X = X - 2


; Rand-Überschreitung verhindern
 If X < 0 Then X = 0
 If X > 609 Then X = 609
 If Y < 0 Then Y = 0
 If Y > 449 Then Y = 449



For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
   


   ; Kollision testen
   
     If Rak(I,0) <> 0 Then
      For J=1 To 5
       If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf

;Kollision Alien2

     If Rak(I,0) <> 0 Then
      For J=1 To 5
       If ImagesOverlap(alienbild, Alien2(J,1), Alien2(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf
Next






 For I=1 To 5


   ; Explosion Alien zeichnen
   
      If Alien(I,0) = -1 Then
       If AlienExplodiert(I,1) + 100 < MilliSecs() Then
        AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1
        AlienExplodiert(I,1) = MilliSecs()
        
   If AlienExplodiert(I,0) = 6 Then
      AlienExplodiert(I,0) = 0
      AlienExplodiert(I,1) = 0
      Alien(I,0) = 0
     EndIf
    EndIf
    DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0)
    EndIf

;Explosion Alien2
         If Alien2(I,0) = -1 Then
          If AlienExplodiert2(I,1) + 100 < MilliSecs() Then
           AlienExplodiert2(I,0) = AlienExplodiert2(I,0) + 1
           AlienExplodiert2(I,1) = MilliSecs()
           
      If AlienExplodiert2(I,0) = 6 Then
         AlienExplodiert2(I,0) = 0
         AlienExplodiert2(I,1) = 0
         Alien2(I,0) = 0
        EndIf
       EndIf
       DrawImage explosion, Alien2(I,1), Alien2(I,2), AlienExplodiert2(I,0)
       EndIf


;Kollision Komet-Spieler
      If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien(I,0) = -1
            Text 250,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf

;Kollision2
      If ImagesOverlap(alienbild, Alien2(I,1), Alien2(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien2(I,0) = -1
            Text 200,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf



; Alien-Steuerung
      
        If Alien(I,0) = 0 Then
         Alien(I,0) = Rand(100,400)
         Alien(I,1) = Rand(-20,640)
         Alien(I,2) = Rand(-100,0)
        EndIf
      
      If Alien(I,0) <> -1 Then
        Alien(I,2) = Alien(I,2) + 1
        Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien(I,2) > 480 Then Alien(I,0) = 0
      
       If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2)
      
   

;Aliensteuerung2
       If Alien2(I,0) = 0 Then
         Alien2(I,0) = Rand(240,210)
         Alien2(I,1) = Rand(20,120)
         Alien2(I,2) = Rand(100,0)
        EndIf
      
      If Alien2(I,0) <> -1 Then
        Alien2(I,2) = Alien2(I,2) + 1
        Alien2(I,1) = 200 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien2(I,2) > 480 Then Alien2(I,0) = 0
      
       If Alien2(I,0) <> -1 Then DrawImage alienbild, Alien2(I,1), Alien2(I,2)

 If Punkte = Punkte >1500 Then
;Level 2
SetBuffer BackBuffer()


DrawImage auftrag2, 200,200
Flip
Delay 50000
SetBuffer BackBuffer()

;Hauptschleife Level 2
X = 400
Y = 500
Repeat
 Cls
 H = H+1
 If H=200 Then H=0
 TileBlock hinter2, 0,H
 DrawImage schiff, X,Y

;Raumstation
DrawImage raumstation, 630,380

;Punkte Anzeige2
Text 400,10, "Sie haben "+punkte+" Punkte
Punkte = Punkte +1


; Schuß-Test2
 If KeyHit(57) Then
 Schuss = Schuss + 1
 If Schuss = 101 Then Schuss = 1
 Rak(Schuss,0) = 1
 Rak(Schuss,1) = X+33
 Rak(Schuss,2) = Y-19
 PlaySound(schusston)
EndIf

; Pfeiltasten abfragen2
 If KeyDown(200) = 1 Then Y = Y - 1
 If KeyDown(208) = 1 Then Y = Y + 1
 If KeyDown(205) = 1 Then X = X + 2
 If KeyDown(203) = 1 Then X = X - 2


; Rand-Überschreitung verhindern2
 If X < 0 Then X = 0
 If X > 609 Then X = 609
 If Y < 0 Then Y = 0
 If Y > 449 Then Y = 449



For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf

For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
   


   ; Kollision testen
   
     If Rak(I,0) <> 0 Then
      For J=1 To 10
       If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf

For I=1 To 5


   ; Explosion Alien zeichnen
   
      If Alien(I,0) = -1 Then
       If AlienExplodiert(I,1) + 100 < MilliSecs() Then
        AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1
        AlienExplodiert(I,1) = MilliSecs()
        
   If AlienExplodiert(I,0) = 6 Then
      AlienExplodiert(I,0) = 0
      AlienExplodiert(I,1) = 0
      Alien(I,0) = 0
     EndIf
    EndIf
    DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0)
    EndIf


;Kollision Komet-Spieler
      If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien(I,0) = -1
            Text 250,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf

; Alien-Steuerung
      
        If Alien(I,0) = 0 Then
         Alien(I,0) = Rand(100,400)
         Alien(I,1) = Rand(-20,640)
         Alien(I,2) = Rand(-100,0)
        EndIf
      
      If Alien(I,0) <> -1 Then
        Alien(I,2) = Alien(I,2) + 1
        Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien(I,2) > 480 Then Alien(I,0) = 0
      
      

;Kollision Raumstation-Spieler
If ImagesOverlap(raumstation, 630,380, schiff,X,Y)
Text 250,250, "Sie haben das Level gewonnen"
Delay 2000
End
EndIf
      



Next
WaitTimer(timer)
Flip
Next
Next
Until KeyHit(1)
EndIf
Next
Until KeyHit(1)
Until KeyHit(1)
End Function

(jo ich weis hätte man kürzer machen können aber darum gehts jetzt nicht)
BB is Macht!

Homepage: www.flori-d.de
 

René Meyer

BeitragFr, Jan 09, 2004 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
If Punkte = Punkte >1500 Then

Laß es Dir auf der Zunge zergehen. :)
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb

Flori-D

BeitragFr, Jan 09, 2004 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
So richtig weis ich nicht was d meinst. Embarassed Embarassed
Aber du meinst bestimmt ich soll das so machen:
Code: [AUSKLAPPEN]
If Punkte > 1500 Then
Oder?
BB is Macht!

Homepage: www.flori-d.de
 

René Meyer

BeitragFr, Jan 09, 2004 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja. Deine If-Abfrage kann ja nie den gewünschten Erfolg haben - Du fragst, ob Punkte genauso groß ist wie Punkte + 1500. Und das ist nie der Fall.
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb

Flori-D

BeitragFr, Jan 09, 2004 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja is soweit geändert.Aber ich bin imer noch sofort tot wennn ich auf start drücke(wenns nur einlevel ist gehts ja www.flori-d.de dort kann man das was geht finden aber es hat halt nur ein level)
Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()
Global hinter = LoadImage("Gfx/stars.bmp")
Global schiff = LoadImage("Gfx/R4.bmp")
Global alienbild = LoadImage("Gfx/Rock1.bmp")
Global rakete = LoadImage("Gfx/torpedo0016.bmp")
Global explosion = LoadAnimImage("Gfx/explodeA.bmp", 60,46, 0,6)
Global schusston = LoadSound("Sound/soundfx11.wav")
Global trefferton = LoadSound("Sound/soundfx25.wav")
Global tiles = LoadImage ("Gfx/blocks1.bmp")
Global maus = LoadImage ("Gfx/pointer.bmp")
Global hinter2 = LoadImage("Gfx/stars2.bmp")
Global hinter3 = LoadImage("Wüste.bmp")
Global auftrag1 = LoadImage("auftrag1.bmp")
Global raumstation = LoadImage ("Raumstation.bmp")

Dim Rak(100,2)
Dim Alien(5,2)
Dim AlienExplodiert(5,1)
Dim Alien2(5,2)
Dim AlienExplodiert2(5,2)
Global X = 305
Global Y = 420




Global timer = CreateTimer(60)


; Graphik für Menüpunkt erzeugen

Global stein = CreateImage(32,32)
SetBuffer ImageBuffer(stein)
DrawImageRect tiles, 0, 0, 444, 308, 32, 32
ScaleImage stein, 8, 2

; Graphik für aktiven Spielstein erzeugen

Global aktivstein = CreateImage(32,32)
SetBuffer ImageBuffer(aktivstein)
DrawImageRect tiles, 0, 0, 2, 342, 32, 32
ScaleImage aktivstein, 8, 2

; Menü definieren

Dim MenuZeile(3) : Dim MenuName$(3)
MenuZeile(1) = 100 : MenuName$(1) = "Start"
MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen"
MenuZeile(3) = 300 : MenuName$(3) = "Ende"



SetBuffer  BackBuffer ()
Repeat
 TileBlock hinter2
 Menu = 0
 X = MouseX()
 Y = MouseY()
   
 For I=1 To 3
  If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then
   DrawImage aktivstein, 192, I * 100
   Menu = I
  Else
   DrawImage stein, 192, I * 100
  EndIf
  Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I)
 Next

 DrawImage maus, X,Y
 Flip

 If MouseHit(1) Then
 
  If Menu = 1 Then  Start()
  If Menu = 2 Then Einstellungen()
  If Menu = 3 Then Ende()
 EndIf
 
 Until KeyHit(1)
End


Function Einstellungen()
 Repeat
  Cls
  Text 100,100, "Hier dran wird noch gearbeitet.Zrück mit Esc."
  Flip
 Until KeyHit(1)
 FlushKeys
End Function



Function Ende()
 Repeat
 Cls
 Text 100,100, "Um zu beenden bitte Esc oder Leertaste drücken."
 Flip
 Until KeyHit(1) Or KeyHit(57)
 End
End Function


Function Start()
Repeat
Cls
DrawImage auftrag1, 200,200




;
; Hauptschleife Level 1
;

X = 400
Y = 500
Repeat
 Cls
 H = H+1
 If H=200 Then H=0
 TileBlock hinter, 0,H
 DrawImage schiff, X,Y
 
 

;Punkte Anzeige
Text 400,10, "Sie haben "+punkte+" Punkte
Punkte = Punkte +1


; Schuß-Test
 If KeyHit(57) Then
 Schuss = Schuss + 1
 If Schuss = 101 Then Schuss = 1
 Rak(Schuss,0) = 1
 Rak(Schuss,1) = X+33
 Rak(Schuss,2) = Y-19
 PlaySound(schusston)
EndIf



; Pfeiltasten abfragen
 If KeyDown(200) = 1 Then Y = Y - 1
 If KeyDown(208) = 1 Then Y = Y + 1
 If KeyDown(205) = 1 Then X = X + 2
 If KeyDown(203) = 1 Then X = X - 2


; Rand-Überschreitung verhindern
 If X < 0 Then X = 0
 If X > 609 Then X = 609
 If Y < 0 Then Y = 0
 If Y > 449 Then Y = 449



For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
   


   ; Kollision testen
   
     If Rak(I,0) <> 0 Then
      For J=1 To 5
       If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf

;Kollision Alien2

     If Rak(I,0) <> 0 Then
      For J=1 To 5
       If ImagesOverlap(alienbild, Alien2(J,1), Alien2(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf
Next






 For I=1 To 5


   ; Explosion Alien zeichnen
   
      If Alien(I,0) = -1 Then
       If AlienExplodiert(I,1) + 100 < MilliSecs() Then
        AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1
        AlienExplodiert(I,1) = MilliSecs()
        
   If AlienExplodiert(I,0) = 6 Then
      AlienExplodiert(I,0) = 0
      AlienExplodiert(I,1) = 0
      Alien(I,0) = 0
     EndIf
    EndIf
    DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0)
    EndIf

;Explosion Alien2
         If Alien2(I,0) = -1 Then
          If AlienExplodiert2(I,1) + 100 < MilliSecs() Then
           AlienExplodiert2(I,0) = AlienExplodiert2(I,0) + 1
           AlienExplodiert2(I,1) = MilliSecs()
           
      If AlienExplodiert2(I,0) = 6 Then
         AlienExplodiert2(I,0) = 0
         AlienExplodiert2(I,1) = 0
         Alien2(I,0) = 0
        EndIf
       EndIf
       DrawImage explosion, Alien2(I,1), Alien2(I,2), AlienExplodiert2(I,0)
       EndIf


;Kollision Komet-Spieler
      If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien(I,0) = -1
            Text 250,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf

;Kollision2
      If ImagesOverlap(alienbild, Alien2(I,1), Alien2(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien2(I,0) = -1
            Text 200,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf



; Alien-Steuerung
      
        If Alien(I,0) = 0 Then
         Alien(I,0) = Rand(100,400)
         Alien(I,1) = Rand(-20,640)
         Alien(I,2) = Rand(-100,0)
        EndIf
      
      If Alien(I,0) <> -1 Then
        Alien(I,2) = Alien(I,2) + 1
        Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien(I,2) > 480 Then Alien(I,0) = 0
      
       If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2)
      
   

;Aliensteuerung2
       If Alien2(I,0) = 0 Then
         Alien2(I,0) = Rand(240,210)
         Alien2(I,1) = Rand(20,120)
         Alien2(I,2) = Rand(100,0)
        EndIf
      
      If Alien2(I,0) <> -1 Then
        Alien2(I,2) = Alien2(I,2) + 1
        Alien2(I,1) = 200 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien2(I,2) > 480 Then Alien2(I,0) = 0
      
       If Alien2(I,0) <> -1 Then DrawImage alienbild, Alien2(I,1), Alien2(I,2)

 If Punkte >1500 Then
;Level 2
SetBuffer BackBuffer()


DrawImage auftrag2, 200,200
Flip
Delay 50000
SetBuffer BackBuffer()

;Hauptschleife Level 2
X = 400
Y = 500
Repeat
 Cls
 H = H+1
 If H=200 Then H=0
 TileBlock hinter2, 0,H
 DrawImage schiff, X,Y

;Raumstation
DrawImage raumstation, 630,380

;Punkte Anzeige2
Text 400,10, "Sie haben "+punkte+" Punkte
Punkte = Punkte +1


; Schuß-Test2
 If KeyHit(57) Then
 Schuss = Schuss + 1
 If Schuss = 101 Then Schuss = 1
 Rak(Schuss,0) = 1
 Rak(Schuss,1) = X+33
 Rak(Schuss,2) = Y-19
 PlaySound(schusston)
EndIf

; Pfeiltasten abfragen2
 If KeyDown(200) = 1 Then Y = Y - 1
 If KeyDown(208) = 1 Then Y = Y + 1
 If KeyDown(205) = 1 Then X = X + 2
 If KeyDown(203) = 1 Then X = X - 2


; Rand-Überschreitung verhindern2
 If X < 0 Then X = 0
 If X > 609 Then X = 609
 If Y < 0 Then Y = 0
 If Y > 449 Then Y = 449



For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf

For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
   


   ; Kollision testen
   
     If Rak(I,0) <> 0 Then
      For J=1 To 10
       If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf

For I=1 To 5


   ; Explosion Alien zeichnen
   
      If Alien(I,0) = -1 Then
       If AlienExplodiert(I,1) + 100 < MilliSecs() Then
        AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1
        AlienExplodiert(I,1) = MilliSecs()
        
   If AlienExplodiert(I,0) = 6 Then
      AlienExplodiert(I,0) = 0
      AlienExplodiert(I,1) = 0
      Alien(I,0) = 0
     EndIf
    EndIf
    DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0)
    EndIf


;Kollision Komet-Spieler
      If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien(I,0) = -1
            Text 250,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf

; Alien-Steuerung
      
        If Alien(I,0) = 0 Then
         Alien(I,0) = Rand(100,400)
         Alien(I,1) = Rand(-20,640)
         Alien(I,2) = Rand(-100,0)
        EndIf
      
      If Alien(I,0) <> -1 Then
        Alien(I,2) = Alien(I,2) + 1
        Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien(I,2) > 480 Then Alien(I,0) = 0
      
      

;Kollision Raumstation-Spieler
If ImagesOverlap(raumstation, 630,380, schiff,X,Y)
Text 250,250, "Sie haben das Level gewonnen"
Delay 2000
End
EndIf
      



Next
WaitTimer(timer)
Flip
Next
Next
Until KeyHit(1)
EndIf
Next
Until KeyHit(1)
Until KeyHit(1)
End Function
BB is Macht!

Homepage: www.flori-d.de

Flori-D

BeitragSa, Jan 10, 2004 13:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Leute,ich verzweifle langsam.Ich kriegs nicht gebacken. Confused
BB is Macht!

Homepage: www.flori-d.de
 

storzi

BeitragSa, Jan 10, 2004 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
könnte es daran liegen dass die eine repeat-schleife in der anderen ist und die andere davor nicht beendet wird?
http://www.splattergamez.de

Flori-D

BeitragSa, Jan 10, 2004 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab die schleifen jetzt beendet.
Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()
Global hinter = LoadImage("Gfx/stars.bmp")
Global schiff = LoadImage("Gfx/R4.bmp")
Global alienbild = LoadImage("Gfx/Rock1.bmp")
Global rakete = LoadImage("Gfx/torpedo0016.bmp")
Global explosion = LoadAnimImage("Gfx/explodeA.bmp", 60,46, 0,6)
Global schusston = LoadSound("Sound/soundfx11.wav")
Global trefferton = LoadSound("Sound/soundfx25.wav")
Global tiles = LoadImage ("Gfx/blocks1.bmp")
Global maus = LoadImage ("Gfx/pointer.bmp")
Global hinter2 = LoadImage("Gfx/stars2.bmp")
Global hinter3 = LoadImage("Wüste.bmp")
Global auftrag1 = LoadImage("auftrag1.bmp")
Global raumstation = LoadImage ("Raumstation.bmp")

Dim Rak(100,2)
Dim Alien(5,2)
Dim AlienExplodiert(5,1)
Dim Alien2(5,2)
Dim AlienExplodiert2(5,2)
Global X = 305
Global Y = 420




Global timer = CreateTimer(60)


; Graphik für Menüpunkt erzeugen

Global stein = CreateImage(32,32)
SetBuffer ImageBuffer(stein)
DrawImageRect tiles, 0, 0, 444, 308, 32, 32
ScaleImage stein, 8, 2

; Graphik für aktiven Spielstein erzeugen

Global aktivstein = CreateImage(32,32)
SetBuffer ImageBuffer(aktivstein)
DrawImageRect tiles, 0, 0, 2, 342, 32, 32
ScaleImage aktivstein, 8, 2

; Menü definieren

Dim MenuZeile(3) : Dim MenuName$(3)
MenuZeile(1) = 100 : MenuName$(1) = "Start"
MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen"
MenuZeile(3) = 300 : MenuName$(3) = "Ende"



SetBuffer  BackBuffer ()
Repeat
 TileBlock hinter2
 Menu = 0
 X = MouseX()
 Y = MouseY()
   
 For I=1 To 3
  If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then
   DrawImage aktivstein, 192, I * 100
   Menu = I
  Else
   DrawImage stein, 192, I * 100
  EndIf
  Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I)
 Next

 DrawImage maus, X,Y
 Flip

 If MouseHit(1) Then
 
  If Menu = 1 Then  Start()
  If Menu = 2 Then Einstellungen()
  If Menu = 3 Then Ende()
 EndIf
 
 Until KeyHit(1)
End


Function Einstellungen()
 Repeat
  Cls
  Text 100,100, "Hier dran wird noch gearbeitet.Zrück mit Esc."
  Flip
 Until KeyHit(1)
 FlushKeys
End Function



Function Ende()
 Repeat
 Cls
 Text 100,100, "Um zu beenden bitte Esc oder Leertaste drücken."
 Flip
 Until KeyHit(1) Or KeyHit(57)
 End
End Function


Function Start()
SetBuffer BackBuffer()
Repeat
Cls
DrawImage auftrag1, 200,200
Until KeyHit(1)




;
; Hauptschleife Level 1
;

X = 400
Y = 500
Repeat
 Cls
 H = H+1
 If H=200 Then H=0
 TileBlock hinter, 0,H
 DrawImage schiff, X,Y
 
 

;Punkte Anzeige
Text 400,10, "Sie haben "+punkte+" Punkte
Punkte = Punkte +1


; Schuß-Test
 If KeyHit(57) Then
 Schuss = Schuss + 1
 If Schuss = 101 Then Schuss = 1
 Rak(Schuss,0) = 1
 Rak(Schuss,1) = X+33
 Rak(Schuss,2) = Y-19
 PlaySound(schusston)
EndIf



; Pfeiltasten abfragen
 If KeyDown(200) = 1 Then Y = Y - 1
 If KeyDown(208) = 1 Then Y = Y + 1
 If KeyDown(205) = 1 Then X = X + 2
 If KeyDown(203) = 1 Then X = X - 2


; Rand-Überschreitung verhindern
 If X < 0 Then X = 0
 If X > 609 Then X = 609
 If Y < 0 Then Y = 0
 If Y > 449 Then Y = 449



For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
   


   ; Kollision testen
   
     If Rak(I,0) <> 0 Then
      For J=1 To 5
       If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf

;Kollision Alien2

     If Rak(I,0) <> 0 Then
      For J=1 To 5
       If ImagesOverlap(alienbild, Alien2(J,1), Alien2(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf
Next






 For I=1 To 5


   ; Explosion Alien zeichnen
   
      If Alien(I,0) = -1 Then
       If AlienExplodiert(I,1) + 100 < MilliSecs() Then
        AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1
        AlienExplodiert(I,1) = MilliSecs()
        
   If AlienExplodiert(I,0) = 6 Then
      AlienExplodiert(I,0) = 0
      AlienExplodiert(I,1) = 0
      Alien(I,0) = 0
     EndIf
    EndIf
    DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0)
    EndIf

;Explosion Alien2
         If Alien2(I,0) = -1 Then
          If AlienExplodiert2(I,1) + 100 < MilliSecs() Then
           AlienExplodiert2(I,0) = AlienExplodiert2(I,0) + 1
           AlienExplodiert2(I,1) = MilliSecs()
           
      If AlienExplodiert2(I,0) = 6 Then
         AlienExplodiert2(I,0) = 0
         AlienExplodiert2(I,1) = 0
         Alien2(I,0) = 0
        EndIf
       EndIf
       DrawImage explosion, Alien2(I,1), Alien2(I,2), AlienExplodiert2(I,0)
       EndIf


;Kollision Komet-Spieler
      If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien(I,0) = -1
            Text 250,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf

;Kollision2
      If ImagesOverlap(alienbild, Alien2(I,1), Alien2(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien2(I,0) = -1
            Text 200,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf



; Alien-Steuerung
      
        If Alien(I,0) = 0 Then
         Alien(I,0) = Rand(100,400)
         Alien(I,1) = Rand(-20,640)
         Alien(I,2) = Rand(-100,0)
        EndIf
      
      If Alien(I,0) <> -1 Then
        Alien(I,2) = Alien(I,2) + 1
        Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien(I,2) > 480 Then Alien(I,0) = 0
      
       If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2)
      
   

;Aliensteuerung2
       If Alien2(I,0) = 0 Then
         Alien2(I,0) = Rand(240,210)
         Alien2(I,1) = Rand(20,120)
         Alien2(I,2) = Rand(100,0)
        EndIf
      
      If Alien2(I,0) <> -1 Then
        Alien2(I,2) = Alien2(I,2) + 1
        Alien2(I,1) = 200 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien2(I,2) > 480 Then Alien2(I,0) = 0
      
       If Alien2(I,0) <> -1 Then DrawImage alienbild, Alien2(I,1), Alien2(I,2)

 If Punkte >1500 Then
Flip
Until KeyHit(1)
;Level 2
SetBuffer BackBuffer()
Repeat
 Cls
DrawImage auftrag2, 200,200
Delay 50000
Flip
Until KeyHit(1)
SetBuffer BackBuffer()

;Hauptschleife Level 2
X = 400
Y = 500
Repeat
 Cls
 H = H+1
 If H=200 Then H=0
 TileBlock hinter2, 0,H
 DrawImage schiff, X,Y

;Raumstation
DrawImage raumstation, 630,380

;Punkte Anzeige2
Text 400,10, "Sie haben "+punkte+" Punkte
Punkte = Punkte +1


; Schuß-Test2
 If KeyHit(57) Then
 Schuss = Schuss + 1
 If Schuss = 101 Then Schuss = 1
 Rak(Schuss,0) = 1
 Rak(Schuss,1) = X+33
 Rak(Schuss,2) = Y-19
 PlaySound(schusston)
EndIf

; Pfeiltasten abfragen2
 If KeyDown(200) = 1 Then Y = Y - 1
 If KeyDown(208) = 1 Then Y = Y + 1
 If KeyDown(205) = 1 Then X = X + 2
 If KeyDown(203) = 1 Then X = X - 2


; Rand-Überschreitung verhindern2
 If X < 0 Then X = 0
 If X > 609 Then X = 609
 If Y < 0 Then Y = 0
 If Y > 449 Then Y = 449



For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf

For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
   


   ; Kollision testen
   
     If Rak(I,0) <> 0 Then
      For J=1 To 10
       If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf

For I=1 To 5


   ; Explosion Alien zeichnen
   
      If Alien(I,0) = -1 Then
       If AlienExplodiert(I,1) + 100 < MilliSecs() Then
        AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1
        AlienExplodiert(I,1) = MilliSecs()
        
   If AlienExplodiert(I,0) = 6 Then
      AlienExplodiert(I,0) = 0
      AlienExplodiert(I,1) = 0
      Alien(I,0) = 0
     EndIf
    EndIf
    DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0)
    EndIf


;Kollision Komet-Spieler
      If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y)  Then
            PlaySound(trefferton)
            Alien(I,0) = -1
            Text 250,250, "Game Over"
            Flip
            Delay 2000
            End
      EndIf

; Alien-Steuerung
      
        If Alien(I,0) = 0 Then
         Alien(I,0) = Rand(100,400)
         Alien(I,1) = Rand(-20,640)
         Alien(I,2) = Rand(-100,0)
        EndIf
      
      If Alien(I,0) <> -1 Then
        Alien(I,2) = Alien(I,2) + 1
        Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0)
      EndIf
      
       If Alien(I,2) > 480 Then Alien(I,0) = 0
      
      

;Kollision Raumstation-Spieler
If ImagesOverlap(raumstation, 630,380, schiff,X,Y)
Text 250,250, "Sie haben das Level gewonnen"
Delay 2000
End
EndIf
      



Next
WaitTimer(timer)
Flip
Next
Next
EndIf
Next
Until KeyHit(1)
End Function

Geht aber immer noch nicht. Crying or Very sad
BB is Macht!

Homepage: www.flori-d.de

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jan 11, 2004 1:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ich hab mir das mal etwas genauer angesehen, aber Crying or Very sad
Nicht bös gemeint:
da sind so viele Bugs drinn,
next an falschen stellen
if then ohne endif
einen Teil hab ich raus gemacht, siehe Komentar, kann es aber nicht testen wegen der fehlenden dateien!
aber der compiler zeigt jetzt schonmal keine Fehler mehr an!

wenn ich genauer nachsehen soll dann brauch ich das alles,
kannste mir ja auf meine Email schicken!
hier noch der Code!
hoffe da ses einigemassen geht!Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()
Global hinter = LoadImage("Gfx/stars.bmp")
Global schiff = LoadImage("Gfx/R4.bmp")
Global alienbild = LoadImage("Gfx/Rock1.bmp")
Global rakete = LoadImage("Gfx/torpedo0016.bmp")
Global explosion = LoadAnimImage("Gfx/explodeA.bmp", 60,46, 0,6)
Global schusston = LoadSound("Sound/soundfx11.wav")
Global trefferton = LoadSound("Sound/soundfx25.wav")
Global tiles = LoadImage ("Gfx/blocks1.bmp")
Global maus = LoadImage ("Gfx/pointer.bmp")
Global hinter2 = LoadImage("Gfx/stars2.bmp")
Global hinter3 = LoadImage("Wüste.bmp")
Global auftrag1 = LoadImage("auftrag1.bmp")
Global raumstation = LoadImage ("Raumstation.bmp")
Global timer = CreateTimer(60)
Dim Rak(100,2)
Dim Alien(5,2)
Dim AlienExplodiert(5,1)
Dim Alien2(5,2)
Dim AlienExplodiert2(5,2)
Global X = 305
Global Y = 420







; Graphik für Menüpunkt erzeugen

Global stein = CreateImage(32,32)
SetBuffer ImageBuffer(stein)
DrawImageRect tiles, 0, 0, 444, 308, 32, 32
ScaleImage stein, 8, 2

; Graphik für aktiven Spielstein erzeugen

Global aktivstein = CreateImage(32,32)
SetBuffer ImageBuffer(aktivstein)
DrawImageRect tiles, 0, 0, 2, 342, 32, 32
ScaleImage aktivstein, 8, 2

; Menü definieren

Dim MenuZeile(3) : Dim MenuName$(3)
MenuZeile(1) = 100 : MenuName$(1) = "Start"
MenuZeile(2) = 200 : MenuName$(2) = "Einstellungen"
MenuZeile(3) = 300 : MenuName$(3) = "Ende"



SetBuffer  BackBuffer ()
Repeat
 TileBlock hinter2
 Menu = 0
 X = MouseX()
 Y = MouseY()
   
 For I=1 To 3
  If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then
   DrawImage aktivstein, 192, I * 100
   Menu = I
  Else
   DrawImage stein, 192, I * 100
  EndIf
  Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I)
 Next

 DrawImage maus, X,Y
 Flip

 If MouseHit(1) Then
 
  If Menu = 1 Then  Start()
  If Menu = 2 Then Einstellungen()
  If Menu = 3 Then Ende()
 EndIf
 
 Until KeyHit(1)
End


Function Einstellungen()
 Repeat
  Cls
  Text 100,100, "Hier dran wird noch gearbeitet.Zrück mit Esc."
  Flip
 Until KeyHit(1)
 FlushKeys
End Function



Function Ende()
 Repeat
 Cls
 Text 100,100, "Um zu beenden bitte Esc oder Leertaste drücken."
 Flip
 Until KeyHit(1) Or KeyHit(57)
 End
End Function


Function Start()
SetBuffer BackBuffer()
Repeat
Cls
DrawImage auftrag1, 200,200
Until KeyHit(1)




;
; Hauptschleife Level 1
;

X = 400
Y = 500
Repeat
 Cls
 H = H+1
 If H=200 Then H=0
 TileBlock hinter, 0,H
 DrawImage schiff, X,Y
 
 

;Punkte Anzeige
Text 400,10, "Sie haben "+punkte+" Punkte
Punkte = Punkte +1


; Schuß-Test
 If KeyHit(57) Then
 Schuss = Schuss + 1
 If Schuss = 101 Then Schuss = 1
 Rak(Schuss,0) = 1
 Rak(Schuss,1) = X+33
 Rak(Schuss,2) = Y-19
 PlaySound(schusston)
EndIf



; Pfeiltasten abfragen
 If KeyDown(200) = 1 Then Y = Y - 1
 If KeyDown(208) = 1 Then Y = Y + 1
 If KeyDown(205) = 1 Then X = X + 2
 If KeyDown(203) = 1 Then X = X - 2


; Rand-Überschreitung verhindern
 If X < 0 Then X = 0
 If X > 609 Then X = 609
 If Y < 0 Then Y = 0
 If Y > 449 Then Y = 449



For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
   


   ; Kollision testen
   
     If Rak(I,0) <> 0 Then
      For J=1 To 5
       If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf

;Kollision Alien2

     If Rak(I,0) <> 0 Then
      For J=1 To 5
       If ImagesOverlap(alienbild, Alien2(J,1), Alien2(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf
Next






 For I=1 To 5
   ; Explosion Alien zeichnen
    If Alien(I,0) = -1 Then
         If AlienExplodiert(I,1) + 100 < MilliSecs() Then
          AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1
          AlienExplodiert(I,1) = MilliSecs()
         
           If AlienExplodiert(I,0) = 6 Then
             AlienExplodiert(I,0) = 0
             AlienExplodiert(I,1) = 0
             Alien(I,0) = 0
          EndIf
       EndIf
       DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0)
    EndIf

;Explosion Alien2
    If Alien2(I,0) = -1 Then
        If AlienExplodiert2(I,1) + 100 < MilliSecs() Then
           AlienExplodiert2(I,0) = AlienExplodiert2(I,0) + 1
           AlienExplodiert2(I,1) = MilliSecs()
           
            If AlienExplodiert2(I,0) = 6 Then
            AlienExplodiert2(I,0) = 0
             AlienExplodiert2(I,1) = 0
             Alien2(I,0) = 0
            EndIf
        EndIf
      DrawImage explosion, Alien2(I,1), Alien2(I,2), AlienExplodiert2(I,0)
    EndIf


;Kollision Komet-Spieler
    If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y)  Then
       PlaySound(trefferton)
       Alien(I,0) = -1
       Text 250,250, "Game Over"
       Flip
       Delay 2000
       End
    EndIf

;Kollision2
    If ImagesOverlap(alienbild, Alien2(I,1), Alien2(I,2), schiff ,X,Y)  Then
        PlaySound(trefferton)
        Alien2(I,0) = -1
        Text 200,250, "Game Over"
        Flip
        Delay 2000
        End
    EndIf



; Alien-Steuerung
       
    If Alien(I,0) = 0 Then
       Alien(I,0) = Rand(100,400)
       Alien(I,1) = Rand(-20,640)
       Alien(I,2) = Rand(-100,0)
    EndIf
       
    If Alien(I,0) <> -1 Then
       Alien(I,2) = Alien(I,2) + 1
       Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0)
    EndIf
       
    If Alien(I,2) > 480 Then Alien(I,0) = 0
       
    If Alien(I,0) <> -1 Then DrawImage alienbild, Alien(I,1), Alien(I,2)
       
   

;Aliensteuerung2
    If Alien2(I,0) = 0 Then
       Alien2(I,0) = Rand(240,210)
       Alien2(I,1) = Rand(20,120)
       Alien2(I,2) = Rand(100,0)
    EndIf
       
    If Alien2(I,0) <> -1 Then
       Alien2(I,2) = Alien2(I,2) + 1
       Alien2(I,1) = 200 + Sin( Alien(I,2) ) * Alien(I,0)
    EndIf
       
    If Alien2(I,2) > 480 Then Alien2(I,0) = 0
       
    If Alien2(I,0) <> -1 Then DrawImage alienbild, Alien2(I,1), Alien2(I,2)
Next; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<???? vergessen
 ;If Punkte >1500 Then ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<???? vergessen
   Flip
Until KeyHit(1)

;Level 2
SetBuffer BackBuffer()
Repeat
 Cls
   DrawImage auftrag2, 200,200
   Delay 50000
   Flip
Until KeyHit(1)

;SetBuffer BackBuffer() ;Wieso????

;Hauptschleife Level 2
X = 400
Y = 500
Repeat
 Cls
 H = H+1
 If H=200 Then H=0
 TileBlock hinter2, 0,H
 DrawImage schiff, X,Y

;Raumstation
DrawImage raumstation, 630,380

;Punkte Anzeige2
Text 400,10, "Sie haben "+punkte+" Punkte
Punkte = Punkte +1


; Schuß-Test2
 If KeyHit(57) Then
 Schuss = Schuss + 1
 If Schuss = 101 Then Schuss = 1
 Rak(Schuss,0) = 1
 Rak(Schuss,1) = X+33
 Rak(Schuss,2) = Y-19
 PlaySound(schusston)
EndIf

; Pfeiltasten abfragen2
 If KeyDown(200) = 1 Then Y = Y - 1
 If KeyDown(208) = 1 Then Y = Y + 1
 If KeyDown(205) = 1 Then X = X + 2
 If KeyDown(203) = 1 Then X = X - 2


; Rand-Überschreitung verhindern2
 If X < 0 Then X = 0
 If X > 609 Then X = 609
 If Y < 0 Then Y = 0
 If Y > 449 Then Y = 449



For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
Next ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<wenn es denn hier hin gehört
For I = 1 To 100

   ; ggf. Raketen zeichnen
   
     If Rak(I,0) = 1 Then
      DrawImage rakete, Rak(I,1), Rak(I,2)
      Rak(I,2) = Rak(I,2) - 10
    EndIf
   


   ; Kollision testen
   
     If Rak(I,0) <> 0 Then
      For J=1 To 10
       If ImagesOverlap(alienbild, Alien(J,1), Alien(J,2), rakete,Rak(I,1),Rak(I,2)) Then
        PlaySound(trefferton)
        Alien(J,0) = -1
       EndIf
      Next
     EndIf
Next ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<wenn es denn hier hin gehört
For I=1 To 5


   ; Explosion Alien zeichnen
   
    If Alien(I,0) = -1 Then
        If AlienExplodiert(I,1) + 100 < MilliSecs() Then
           AlienExplodiert(I,0) = AlienExplodiert(I,0) + 1
           AlienExplodiert(I,1) = MilliSecs()
         
            If AlienExplodiert(I,0) = 6 Then
           AlienExplodiert(I,0) = 0
           AlienExplodiert(I,1) = 0
           Alien(I,0) = 0
           EndIf
        EndIf
        DrawImage explosion, Alien(I,1), Alien(I,2), AlienExplodiert(I,0)
    EndIf


;Kollision Komet-Spieler
    If ImagesOverlap(alienbild, Alien(I,1), Alien(I,2), schiff ,X,Y)  Then
        PlaySound(trefferton)
        Alien(I,0) = -1
        Text 250,250, "Game Over"
        Flip
        Delay 2000
        End
    EndIf

; Alien-Steuerung
       
    If Alien(I,0) = 0 Then
       Alien(I,0) = Rand(100,400)
       Alien(I,1) = Rand(-20,640)
       Alien(I,2) = Rand(-100,0)
    EndIf
       
    If Alien(I,0) <> -1 Then
       Alien(I,2) = Alien(I,2) + 1
       Alien(I,1) = 320 + Sin( Alien(I,2) ) * Alien(I,0)
    EndIf
       
    If Alien(I,2) > 480 Then Alien(I,0) = 0
       
       

;Kollision Raumstation-Spieler
   If ImagesOverlap(raumstation, 630,380, schiff,X,Y)
      Text 250,250, "Sie haben das Level gewonnen"
      Delay 2000
      End
   EndIf
       



Next
WaitTimer(timer)
Flip
;Next ; sind alle total fehl am Platz
;Next
;EndIf
;Next
Until KeyHit(1)
End Function


Welchen Editor benutzt du ?
Visual Blitz?
[BB2D | BB3D | BB+]
 

René Meyer

BeitragSo, Jan 11, 2004 1:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Flori-D, so funktioniert das nicht.

Es macht keinen Sinn, in fremden Quelltexten herumzuwursteln, ohne sie richtig zu verstehen. Du siehst doch, daß Du kaum vorankommst.

Noch mal: Beginne von vorn, lerne die Grundlagen und schreibe zunächst kleine Programme. Und vor allem: Schreibe sie selbst. Nur so sammelst Du richtig Erfahrung, die notwendig ist, um ohne fremde Hilfe Spiele zu programmieren.
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb

Slayer

BeitragSo, Jan 11, 2004 2:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Flori-D , muss René recht geben.

Mach nochmal ein Neues Projekt, ein einfaches ohne Gfx, Kollisionen usw...

So wie der Code unten.
Wenn Du dann weist wie man denn Level wechseln könnte, baus Du es ins
Spiel ein.

Dann wieder einen Simplen Code für die anderen sachen, wenns klabt, dann wieder in denn spiele Code einbauen.

Du darfst am anfang nicht soviele sachen gleichzeitig machen, gfx sound...
Da komm man schnell Durcheinander.

Spiel mal ein bisschen mit dem Code, verändere die level aufrufe, zb: select ?

Las denn Funktionen nen Rückgabewert ausgeben,
Schreib nur eine Levelfunction der du einen wert zuweisen/übergeben kannst und lass die verschiedenen Levels in dieser einen funktion ablaufen....usw

Code: [AUSKLAPPEN]

Graphics 640,480,16,2
SetBuffer BackBuffer()


Global beenden = 0
Global mx,my,m1
Global punkte = 0

;-------------------------------------

menu()


While Not KeyHit(1)

If punkte < 10 Then level1()


If punkte >=10 And punkte < 20 Then level2()




If punkte >= 20

   Cls
   Text 100,60,"Mit der Taste 'M' kannst Du ins Menü"
   Text 100,100,"Bitte ESC Drücken zum beenden"
   Text 100,120,"Punktestand : "+punkte
   If KeyHit(57) Then menu()
EndIf






Flip:Cls
Wend:End

;....................

Function menu()


While Not a = 1

Text 100,100,"Ich bin Deine Menü"
Text 100,120,"Drücke Space zum weiter spielen oder ESC zum Beenden"

If KeyHit(1) Then End
If KeyHit(57) Then a = 1



Flip:Cls


Wend

FlushKeys()
FlushMouse()
End Function

;......................




Function level1()

While Not a = 1
mx = MouseX()
my = MouseY()
m1 = MouseHit(1)

If KeyHit(57) Then menu()


If m1 Then punkte = punkte + 1

Text 100,60,"Mit der Taste 'M' kannst Du ins Menü"
Text 100,80,"Level 1"
Text 100,100,"Du musst 10 mal die linke Maustaste Drücken"
Text 100,120,"Dann gehts weiter"
Text 100,140,"Punktestand : "+Punkte



If punkte >= 10
Cls

Text 100,100,"Herzlichen Glückwunsch, Du kommst in nächste Level"
Flip
a = 1
Delay 3000
EndIf


Flip:Cls
Wend
FlushMouse()
End Function

;---------------------------------------------------
Function level2()

While Not a = 1
mx = MouseX()
my = MouseY()
m1 = MouseHit(1)

If KeyHit(57) Then menu()


If m1 Then punkte = punkte + 1
Text 100,60,"Mit der Taste 'M' kannst Du ins Menü"

Text 100,80,"Level 2"
Text 100,100,"Du musst 10 mal die linke Maustaste Drücken"
Text 100,120,"Dann gehts weiter"
Text 100,140,"Punktestand : "+Punkte



If punkte >= 20
Cls
Text 100,100,"Herzlichen Glückwunsch, Du kommst in nächste Level"
Flip
a = 1
Delay 3000
EndIf


Flip:Cls
Wend
FlushMouse()
End Function
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version

Jolinah

BeitragSo, Jan 11, 2004 10:46
Antworten mit Zitat
Benutzer-Profile anzeigen
René Meyer hat Folgendes geschrieben:
Ja. Deine If-Abfrage kann ja nie den gewünschten Erfolg haben - Du fragst, ob Punkte genauso groß ist wie Punkte + 1500. Und das ist nie der Fall.


Er hat aber nicht geschrieben If Punkte = Punkte + 1500 Very Happy

Sondern Punkte = Punkte > 1500

Das würde dann sowas ergeben wie If Punkte = True oder andernfalls if Punkte = False

Somit war es auch schon true wenn Punkte 1 oder grösser als 1 war Wink


Zum Thema: Ich find auch du solltest erstmal was einfacheres machen. Denn wenn du alles selber programmiert hast, hast du normalerweise auch weniger Probleme mit dem code. Und es ist nicht so schwer Fehler zu finden.

Flori-D

BeitragSo, Jan 11, 2004 11:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Das prob. bei mir issja das ichs ständig versuche was komplett eigenständig zu machen.Dann gehts los, suche mir meinetwegen thema Weltraumshooter so anfangen.
Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()

So und ann,wie gehts am besten weiter.Dann schreib ich ganz Automatisch die Steuerung etc ausm Buch ab und verändere die dann,bzw. male nochn Bild lasse das irgendwo erscheinen und bei Kollision damit gewinnt man oder so.
BB is Macht!

Homepage: www.flori-d.de

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jan 11, 2004 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
mein erstes programm mit Blitz was ich selber geschrieben habe ohne Hilfsmittel wie Bücher war einfach nur einen Ball übern GrafikBildschirm
laufen zu lassen und abprallen zu lassen mit Richtungänderungen.
Daraus entstand dann ein ganzes Spiel weil ich immer weiter gemacht habe!
das Projekt hat jetzt einen Umfang von 13Mb und ist immer noch nicht fertig!
[BB2D | BB3D | BB+]

Flori-D

BeitragSo, Jan 11, 2004 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm ich scheine total falsch angefangen zu haben. Crying or Very sad
Aber noch maldurchlesen hab ich keinen bok,ich kenne die Befehle mitlerweile.
BB is Macht!

Homepage: www.flori-d.de

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group