Was mache ich da Falsch??? bitte hilfe...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Yankee

Betreff: Was mache ich da Falsch??? bitte hilfe...

BeitragFr, Apr 21, 2006 11:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Wie in der Ueberschrift schon steht, wollte ich mal wissen was ich da falsch mache in meinem Code... Crying or Very sad
Hier ist er:
Code: [AUSKLAPPEN]

   If KeyHit(57) Then
      fire_me = fire_me + 1
      bullet_fired(fire_me) = True
      bullet_x(fire_me) = me_x
      bullet_y(fire_me) = me_y - 10
      PlaySound schuss
   EndIf
   
   If fire >= 20 Then fire = 0


Also des da ist, wenn man schie(schrafes s)t, und des hier wenn bullet_fired true ist dann:
Code: [AUSKLAPPEN]

   For n = 0 To 20
      If bullet_fired(n) = True Then
         bullet_y(n) = bullet_y(n) - 4
         If ImagesCollide(bullet,bullet_x(n),bullet_y(n),0,anime, anime_x, anime_y,0) Then
            anime_panzer = anime_panzer - 100
            me_panzer = me_panzer + 50
            bullet_fired(n) = False
            PlaySound tot
         EndIf
         If bullet_y(n) =< 0 Then
            bullet_fired(n) = False
         EndIf
         DrawImage bullet, bullet_x(n), bullet_y(n)
      EndIf
   Next

Sooo..... jezt kommt zwar immer der sound mit dem schuss, aber ich seh die raketen nicht.
Bitte brauche Hilfe bei dem code.....

Danke im Vorraus,
Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Jan_

Ehemaliger Admin

BeitragFr, Apr 21, 2006 11:13
Antworten mit Zitat
Benutzer-Profile anzeigen
auch, wenn du die CollisionsPrüfung raus nimmst?
between angels and insects

Yankee

BeitragFr, Apr 21, 2006 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja....
Auch wenn ich die Collisions Pruefung weg nehme gehts net.....
Bitte sagen, was ich falsch mache... Crying or Very sad

Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Jan_

Ehemaliger Admin

BeitragFr, Apr 21, 2006 11:44
Antworten mit Zitat
Benutzer-Profile anzeigen
da ist nciht so einfach, weil du uns nur sehr wenig Code gegeben hast,
der an und für sich sauber ist.

me_y ist nicht <= 0 ?
between angels and insects

Yankee

BeitragFr, Apr 21, 2006 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein weil me_y unten vom Spielfeld ist....
Wer den Code braucht(was unwahrscheinlich ist) hier ist er: (is sehr sehr viel^^)
Code: [AUSKLAPPEN]

Graphics 640, 480,16

SetBuffer BackBuffer()

Dim bullet_fired(20)
Dim bullet_x(20)
Dim bullet_y(20)
Dim anime_fired(20)
Dim anime_fire_x(20)
Dim anime_fire_y(20)
Dim anime_bullet(20)
Dim anime_bullet_x(20)
Dim anime_bullet_y(20)

Global   haus1 = LoadImage("haus1.bmp")
Global   haus2 = LoadImage("haus2.bmp")
Global   haus3 = LoadImage("haus3.bmp")
Global   hintergrund = LoadImage("hintergrund.bmp")
Global   rail = LoadImage("rail.bmp")
Global   me = LoadImage("me.bmp")
Global   anime = LoadImage("alien.bmp")
Global   bullet = LoadImage("bullet.bmp")
Global   bullet_anime = LoadImage("turret.bmp")

Global move = LoadSound("tot.wav")

Global   schuss = LoadSound("schuss.wav")
Global    tot = LoadSound("tot.wav")
Global   lvlup = LoadSound("lvlup.wav")

Global   me_x = 400
Global   me_y = 420
Global   me_panzer = 1000
      
Global   anime_x = 300
Global   anime_y = 50
Global   anime_panzer = 1000
Global   anime_x_ort = 0
Global   anime_move = False
      
Global   fire_me = 0
   
Global   fire_anime = 0

nureinmal = 0

Markiert = 1

Global font1 = LoadFont("Comic Sans MS",40,1,0,0)
Global font2 = LoadFont("Times New Roman",60,1,0,0)

SetFont font1

;hauptschleife + menu...
Repeat
   Cls
   DrawImage hintergrund,0,0
   
   If nureinmal = 0 Then
      ;mein feuer
      For n = 1 To 20
         bullet_x(n) = 0
         bullet_x(n) = 0
         bullet_fired(n) = False
      Next
   
      ;anime feuer
      For n = 1 To 20
         anime_fire_x(n) = 0
         anime_fire_y(n) = 0
         anime_fired(n) = False
      Next
      nureinmal = nureinmal + 1
   EndIf

   If Markiert = 1 Then
      SetFont font2
      Text 150, 100, "START"
      ;FreeFont font2
   Else
      SetFont font1
      Text 150, 100, "START"
      ;FreeFont font1
   EndIf
   
   If Markiert = 2 Then
      SetFont font2
      Text 150, 200, "OPTIONS"
      ;FreeFont font2
   Else
      SetFont font1
      Text 150, 200, "OPTIONS"
      ;FreeFont font1
   EndIf

   If Markiert = 3 Then
      SetFont font2
      Text 150, 300, "ENDE"
      ;FreeFont font2
   Else
      SetFont font1
      Text 150, 300, "ENDE"
      ;FreeFont font1
   EndIf
   
   
   
   If KeyHit(208) Then
      Markiert = Markiert + 1
      PlaySound move
   EndIf
   
   If KeyHit(200) Then
      Markiert = Markiert - 1
      PlaySound move
   EndIf
   
   If Markiert < 0 Then Markiert = 3
   If Markiert > 3 Then Markiert = 1
   
   
   If KeyHit(28) Then
      PlaySound move
      If Markiert = 1 Then start()
      If Markiert = 2 Then options()
      If Markiert = 3 Then End
   EndIf
   
   Flip
   
Forever
   
Function start()
   Repeat
      Cls
      updateme_umgebung()
      pruefetasten()
      update_anime()
      Flip
   Until (me_panzer Or anime_panzer) < 0
End Function

Function options()
   Repeat
      Cls
      DrawImage hintergrund,0,0
      SetFont font1
      Text 150,100, "Move with <- and ->"
      Text 150,150, "You can shoot with Leertaste"
      SetFont font2
      Text 150,200, "BACK"
   Until KeyHit(28)
End Function    
      
      
Function pruefetasten()
   If KeyDown(203) Then me_x = me_x - 3
   If KeyDown(205) Then me_x = me_x + 3
   If KeyHit(57) Then
      fire_me = fire_me + 1
      bullet_fired(fire_me) = True
      bullet_x(fire_me) = me_x
      bullet_y(fire_me) = me_y - 10
      PlaySound schuss
   EndIf
   
   If fire >= 20 Then fire = 0
   
   If me_x < 50 Then me_x = 50
   If me_x > 600 Then me_x = 50
   If KeyHit(1) Then me_panzer = 0 And anime_panzer = 0   
   
End Function

Function updateme_umgebung()
   ;alle raketen nachschauen
   For n = 0 To 20
      If bullet_fired(n) = True Then
         bullet_y(n) = bullet_y(n) - 4
         If ImagesCollide(bullet,bullet_x(n),bullet_y(n),0,anime, anime_x, anime_y,0) Then
            anime_panzer = anime_panzer - 100
            me_panzer = me_panzer + 50
            bullet_fired(n) = False
            PlaySound tot
         EndIf
         If bullet_y(n) =< 0 Then
            bullet_fired(n) = False
         EndIf
         DrawImage bullet, bullet_x(n), bullet_y(n)
      EndIf
   Next
   
   ;damit man nicht zu weit gehen kann
   If me_x < 100 Then me_x = 100
   If me_x > 540 Then me_x = 540
   
   DrawImage hintergrund,0,0
   DrawImage haus1, 50, 345
   DrawImage haus2, 160, 400
   DrawImage haus3, 300, 270
   DrawImage rail, 0, 350
   DrawImage me, me_x, me_y
   DrawImage anime,anime_x,anime_y
End Function
            

Function update_anime()
   
   ;zufaellig schiessen
   random1 = Rnd(0, 10)
   If random1 = Rnd(0,10) Then
      fire_anime = fire_anime + 1
      anime_bullet(fire_anime) = True
      anime_bullet_x(fire_anime) = anime_x
      anime_bullet_y(fire_anime) = anime_y + 10
      PlaySound schuss
   EndIf
   If fire_anime = 20 Then fire_anime = 0

   ;alle raketen vom gegner
   For n = 0 To 20
      If anime_bullet(n) = True Then
         anime_bullet_y(n) = anime_bullet_y(n) + 4
         If ImagesCollide(bullet_anime,anime_bullet_x(n),anime_bullet_y(n),0,me,me_x,me_y,0) Then
            me_panzer = me_panzer - 100
            anime_panzer = anime_panzer + 50
            anime_bullet(n) = False
            PlaySound tot
         EndIf
         If anime_bullet_y(n) > 480 Then
            anime_bullet(n) = False
         EndIf
         DrawImage bullet_anime, anime_bullet_x(n), anime_bullet_y(n)
      EndIf
   Next
   
   ;den feind bewegen, wenn anime_move gleich false ist
   If anime_move = False Then
      If (anime_x >= 50 And anime_x =< 150) Then anime_x_ort = Rnd(200,550) And anime_move = True
   EndIf
   
   If anime_move = False Then
      If (anime_x > 150 And anime_x =< 250) Then anime_x_ort = Rnd(200,600) And anime_move = True
   EndIf
   
   If anime_move = False Then
      If (anime_x > 250 And anime_x =< 350) Then anime_x_ort = Rnd(50,600) And anime_move = True
   EndIf
   
   If anime_move = False Then
      If (anime_x > 350 And anime_x =< 450) Then anime_x_ort = Rnd(50,570) And anime_move = True
   EndIf
   
   If anime_move = False Then
      If (anime_x > 450 And anime_x =< 640) Then anime_x_ort = Rnd(50,240) And anime_move = True
   EndIf
   
   ;wenn anime_move gleich true ist, dann jeweils in die naehe von anime_x_ort bringen
   If anime_move = True Then
      If (-4 + anime_x < anime_x_ort And 4 + anime_x > anime_x_ort) Then anime_move = False
      If anime_x > anime_x_ort Then ;move left
         anime_x = anime_x -   3
      EndIf
      If anime_x < anime_x_ort Then ;move right
         anime_x = anime_x + 3
      EndIf
   EndIf
   
End Function

Soooo...... (hab gesagt, dass er lang ist).
Bitte bitte mir sagen, was falsch ist... (das ist mein erstes richtiges Spiel),

Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group