Finde den Fehler nicht in meinen Spiel!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

HartlMax

Betreff: Finde den Fehler nicht in meinen Spiel!

BeitragSa, Apr 04, 2009 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich ein Spiel zum einen codecontest machen wollte (glaube war die 22# mit wasser) und nie fertig wurde! hatte ich mir gedacht mache ich einfach so fertig.^^

Aber nun das Problem! Vor kurzen hatte das spiel die Energie anzeige sowie das entwicklerloga am anfang noch angezeigt! Seit ein paar Tagen sind die sachen verschwunde obwohl sie im code stehen! nun wollte ich euch fragen! könnt ihr mir helfen den Fehler zu finden?

einmal ein screenshot wie es aussehen sollte und ein Video wo die sachen nicht mehr angezeigt werden!

user posted image

Video Link

am anfang sollte eigentlich das Logo angezeigt werden!

Code: [AUSKLAPPEN]
Graphics 640, 480, 32,2

AppTitle "Jolly Roger"

Const ESC=1,Hoch=200,Runter=208,Links=205,Rechts=203 , Space = 57
Global Fuss#=0.02, Traegheit#=0.003, Speedmax=1
Const Lenkspeed = 1
Const Grafk_rotate = 5
Const debugmode = 1
f = 0
fs = 0


Abi_player = 360/Grafk_rotate
Dim player (Abi_player )
;Geräusche Laden


;Bilder laden
player(0) = LoadImage ("gfx/spieler.png")
spieler = LoadAnimImage ("gfx/Player.png",48,55,fs,12)
entwickler =LoadImage("gfx/entwickler.png")

meer = LoadImage ("gfx/meer.png")
insel1 = LoadImage ("gfx/insel1.bmp")
insel2 = LoadImage ("gfx/insel1.bmp")
insel3 = LoadImage ("gfx/insel1.bmp")
life = LoadImage ("gfx/jr2.png")
t=LoadImage ("gfx/test.bmp")
jollyroger = LoadImage ("gfx/jr2.png")
karte = LoadImage ("gfx/karte.png")

gegner1_c = LoadAnimImage ("gfx/gegnerc.png",48,55,f,12)
gegner2_c = LoadAnimImage ("gfx/gegnerc.png",48,55,f,12)
gegner3_c = LoadAnimImage ("gfx/gegnerc.png",48,55,f,12)
gegner4_c = LoadAnimImage ("gfx/gegnerc.png",48,55,f,12)

g1_s = LoadImage ("gfx/spieler.png")
g2_s = LoadImage ("gfx/spieler.png")
g3_s = LoadImage ("gfx/spieler.png")
g4_s = LoadImage ("gfx/spieler.png")

;Bilder maskieren
MaskImage jollyroger, 255,0,0

MaskImage karte, 0,0,0

MaskImage spieler, 255,255,255

MaskImage gegner1_c, 255,255,255
MaskImage gegner2_c, 255,255,255
MaskImage gegner3_c, 255,255,255
MaskImage gegner4_c, 255,255,255

For z = 0 To Abi_player
    player(z) = CopyImage (player(0))
    RotateImage player(z),z* Grafk_rotate
    HandleImage player(0),30,15
Next

SetBuffer BackBuffer()
TFormFilter 1
AutoMidHandle 1
SeedRnd MilliSecs()

HidePointer
;zufällige Positionen für feindliche Schiffe
gs1x# = Rnd (-600,-200)
gs1y# = Rnd (-600,-200)
gs2x# = Rnd (200,600)
gs2y# = Rnd (200,600)
gs3x# = Rnd (-600,-200)
gs3y# = Rnd (200,600)
gs4x# = Rnd (200,600)
gs4y# = Rnd (-600,-200)

; zufällige Position der Inseln
i1x# = Rnd (-600, -200)
i1y# = Rnd (-600, -200)
i2x# = Rnd (200, 600)
i2y# = Rnd (200, 600)
i3x# = Rnd (-600, -200)
i3y# = Rnd (200, 600)

;andere Positionen
px# = 320
py# = 240
bx# = 0
by# = 0
sx = 0
sy = 0 ;anpasen auf Bild landschaft
x = -300
y = 200
x2 = -3006
y2 = -180
posy = 30
posy2 = 200
posx = 220
posx2 = 10
six = - 50
siy = - 100

;leben
leben = 6
energie = 200

;lebensberechnung
timer =1000
wartezeit =1000

;wichtige schalter
switch = 0
gegner1c = 1
gegner1s = 1
gegner2c = 1
gegner2s = 1
gegner3c = 1
gegner3s = 1
gegner4c = 1
gegner4s = 1
play=0
menuefont = LoadFont ("Comic Sans MS", 30)

DrawImage entwickler, 0, 0
Delay 2000
While Not KeyHit(ESC)

   Repeat
      Origin 0,0
      Cls
      ClsColor 255,0,0
      kh = KeyDown(28)

      SetFont menuefont
;      Locate 0,0
      Text 200,175, "Neues Spiel Starten"
      Text 200,225, "Optionen"
      Text 200,275, "Spiel Beenden"
      
      If KeyHit (208)
         counter =counter + 1
      EndIf
      
      If KeyHit (200)
         counter =counter - 1
      EndIf

      If counter >3 Then counter = 1
      If counter <1 Then counter = 3
      
      If counter = 1 And kh Then
         FlushKeys
         
         While Not KeyDown(ESC)
            Cls
            ClsColor 0,0,0
            Origin 320,240

                        
            Grad#=((Grad+(KeyDown(Rechts)-KeyDown(Links))*Lenkspeed* speed#)+360)Mod 360
            Speed# = Speed# +(KeyDown(Runter ) - KeyDown(Hoch))*Fuss#
   
            If (KeyDown(Hoch)+KeyDown(Runter)) = 0 Then
               If Speed# > 0 Then Speed# = Speed#  - Traegheit#
               If Speed# < 0 Then Speed# = Speed#  + Traegheit#
               If Speed# < Traegheit# And Speed# > (Traegheit#*-1) Then Speed# = 0
            End If
            
            If speed# >  Speedmax     Then speed# =  Speedmax
            If speed# < (Speedmax*-1) Then speed# = (Speedmax*-1)

            px# = px# + Cos(Grad) * speed#
            py# = py# + Sin(Grad) * speed#
            
            ;Inseln               
            i1x# = i1x# + Cos(Grad) * speed#
            i1y# = i1y# + Sin(Grad) * speed#
            i2x# = i2x# + Cos(Grad) * speed#
            i2y# = i2y# + Sin(Grad) * speed#
            i3x# = i3x# + Cos(Grad) * speed#
            i3y# = i3y# + Sin(Grad) * speed#
            
            ;feindliche Schiiffe
            gs1x# = gs1x# + Cos(Grad) * speed#
            gs1y# = gs1y# + Sin(Grad) * speed#
              gs2x# = gs2x# + Cos(Grad) * speed#
            gs2y# = gs2y# + Sin(Grad) * speed#
            gs3x# = gs3x# + Cos(Grad) * speed#
            gs3y# = gs3y# + Sin(Grad) * speed#
            gs4x# = gs4x# + Cos(Grad) * speed#
            gs4y# = gs4y# + Sin(Grad) * speed#
                                    
         TileBlock meer,Int(px#),Int(py#)
                     
         ;Inseln Zeichnen
         DrawImage insel1,Int(i1x#),Int(i1y#)
         DrawImage insel2,Int(i2x#),Int(i2y#)
         DrawImage insel3,Int(i3x#),Int(i3y#)

         ;Spieler Zeichnen
         playergrad = (grad+Grafk_rotate/2)/Grafk_rotate
         DrawImage  player(playergrad ),Int(0),Int(0)
         
         ;Kollisionen mit Inseln
         If ImagesCollide(player(playergrad),0,0,0, Insel1,i1x#,i1y#,0) Then
            Speed# = 0
            If MilliSecs()>timer+wartezeit
               energie=energie-20
                If energie=0 Then
                  leben=leben-1
               EndIf
                timer=MilliSecs()
              EndIf
         EndIf
         If ImagesCollide(player(playergrad),0,0,0, Insel2,i2x#,i2y#,0) Then
            Speed# = 0
            If MilliSecs()>timer+wartezeit
                energie=energie-20
               If energie=0 Then
                  leben=leben-1
               EndIf
                timer=MilliSecs()
              EndIf
         EndIf
         If ImagesCollide(player(playergrad),0,0,0, Insel3,i3x#,i3y#,0) Then
            Speed# = 0
            If MilliSecs()>timer+wartezeit
                energie=energie-20
               If energie=0 Then
                  leben=leben-1
               EndIf
                timer=MilliSecs()
              EndIf
         EndIf
         If leben <0 Then End
         
         If energie=-20 Then
            energie=200
         EndIf
         
         ; Geschwindigkeits anzeige
         Color 255,0,0
         Rect x, y, Speed#*220, posy
         Color 0,0,255
         Rect x, y, -Speed#*220, posy
         Color 255,255,255
         Rect x,y, posx, posy, 0
         Rect x,y, posx-198, posy, 0
         Rect x,y, posx-176, posy, 0
         Rect x,y, posx-154, posy, 0
         Rect x,y, posx-132, posy, 0
         Rect x,y, posx-110, posy, 0
         Rect x,y, posx-88, posy, 0
         Rect x,y, posx-66, posy, 0
         Rect x,y, posx-44, posy, 0
         Rect x,y, posx-22, posy, 0
         
         ;Energie anzeige
         Color 255,0,255
         Rect x2, y2, posx2, energie
         Color 255,255,255
         Rect x2, y2, posx2, posy2, 0
         Rect x2, y2, posx2, posy2-20, 0
         Rect x2, y2, posx2, posy2-40, 0
         Rect x2, y2, posx2, posy2-60, 0
         Rect x2, y2, posx2, posy2-80, 0
         Rect x2, y2, posx2, posy2-100, 0
         Rect x2, y2, posx2, posy2-120, 0
         Rect x2, y2, posx2, posy2-140, 0
         Rect x2, y2, posx2, posy2-160, 0
         Rect x2, y2, posx2, posy2-180, 0
                           
         If gegner1s = 0 Then
            FreeImage g1_s
         EndIf
         DrawImage karte, 80, 90

         ;gegner 1
         If gegner1s = 1 Then
            DrawImage g1_s,Int(gs1x#),Int(gs1y#)
            If ImagesCollide(player(playergrad),0,0,0, g1_s,gs1x#,gs1y#,0) Then
               Cls
               Locate 35,10
               Print "x" + leben
               switch = 1
               DrawImage t, six, siy
               

               If gegner1c = 1 Then
                  DrawImage spieler, sx, sy, f
               EndIf
               If KeyHit(Space) And jump = False Then
                   temp_y# = 10 ;je höhere der wert desto höher springt die figur
                   jump = True
               EndIf
               If jump = True Then
                   temp_y# = temp_y# - .50
                   sy = sy - temp_y#
                   If ImagesCollide (spieler,sx,sy,0,t,six,siy,0) Then jump = False

                  EndIf
            
               If KeyDown(LinksS) Then
                  six = six - 5
                  Delay 50
                  f=f+1
               EndIf
            
               If KeyDown(RechtsS) Then
                  six = six + 5
                  Delay 50
                  f=f+1
               EndIf
            
               If f=12 Then f=0
            
               If sx>300 Then
                  Cls
                  gegner1c = 0
                  gegner1s = 0
                  switch = 0               
               EndIf
         EndIf
         
         If switch = 1 Then
            ClsColor 0,0,255
            Speed# = 0
            Fuss# = 0
            LinksS = 205
            RechtsS = 203
         EndIf
         If switch = 0 Then
            Speed# = Speed#
            Fuss# = 0.02
         EndIf
         If gegner1c = 0 Then
            FreeImage gegner1_c
         EndIf
         EndIf
         ;Leben Zeichnen
         MaskImage life, 255,0,0
         DrawImage life, -310,-220
         Color 0,0,0
         Locate 35,10
         Print "x" + leben
         
         ;Energie anzeige
         Color 255,0,255
         Rect x2, y2, posx2, energie
         Color 255,255,255
         Rect x2, y2, posx2, posy2, 0
         Rect x2, y2, posx2, posy2-20, 0
         Rect x2, y2, posx2, posy2-40, 0
         Rect x2, y2, posx2, posy2-60, 0
         Rect x2, y2, posx2, posy2-80, 0
         Rect x2, y2, posx2, posy2-100, 0
         Rect x2, y2, posx2, posy2-120, 0
         Rect x2, y2, posx2, posy2-140, 0
         Rect x2, y2, posx2, posy2-160, 0
         Rect x2, y2, posx2, posy2-180, 0


         While MilliSecs()< fx : Wend : fx = MilliSecs()+16
            Flip 20 :   Cls:
            bwx= bwx +1:If MilliSecs() > oltZeit  + 999 BW = bwx:bwx = 0: oltZeit=  MilliSecs()

         Wend :End

      EndIf
               
      If counter = 2 And kh Then
         FlushKeys
         Cls
         While Not KeyHit(ESC)
            
            ;optionen menü
         

         Wend
         


      EndIf
      If counter = 3 And kh Then
         End ;;; game beenden
      EndIf
      
      Select counter
      Case 1
      DrawImage jollyroger, 170, 185
      DrawImage jollyroger, 430, 185
      Case 2
      DrawImage jollyroger, 170, 235
      DrawImage jollyroger, 430, 235
      Case 3
      DrawImage jollyroger, 170, 285
      DrawImage jollyroger, 430, 285
      End Select
      
      Flip 0
   Until Ende=1
Wend

WaitKey
End


P.S. (für Verbesserungsvorschläge bin ich auch offen)
www.hartl-bros.de
 

FWeinb

ehemals "ich"

BeitragSo, Apr 05, 2009 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Du Verwendest den BackBuffer (ich denke mal du hast das mit BP geschrieben oder Compilet, da muss dieser nicht mehr mit SetBuffer gesetzt werden) deswegen must du zwischen das DrawImage und dem Delay ein Flip setzen.
Also so
Code: [AUSKLAPPEN]

DrawImage entwickler, 0, 0
flip
Delay 2000

mfg

ich

[EDIT]
ClsColor
Braucht nicht immer wieder in der Schleife neu definiert zu werden. Einmal vor der Schleife reicht es.

Und ich würde mir einmal Function anschauen.

HartlMax

BeitragSo, Apr 05, 2009 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hat Folgendes geschrieben:
Du Verwendest den BackBuffer (ich denke mal du hast das mit BP geschrieben oder Compilet, da muss dieser nicht mehr mit SetBuffer gesetzt werden) deswegen must du zwischen das DrawImage und dem Delay ein Flip setzen.
Also so
Code: [AUSKLAPPEN]

DrawImage entwickler, 0, 0
flip
Delay 2000

mfg

ich

[EDIT]
ClsColor
Braucht nicht immer wieder in der Schleife neu definiert zu werden. Einmal vor der Schleife reicht es.

Und ich würde mir einmal Function anschauen.


Thx das Entwickler Logo ist wieder da aber meine Energie anzeige ist immer noch verschollen! Crying or Very sad
Aber Function werde ich mir trotzdem mall anschauen! mal sehen was sich da ergibt!

P.S Nein mit BP(Blitzplus oder?) habe ich es nicht gemacht sondern mit Blitz3D

Edit:

habe den fehler gefunden für die energie anzeige! eine variable hat ne null zuviel gehabt!
 

FWeinb

ehemals "ich"

BeitragSo, Apr 05, 2009 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Delay ist Pöse
Orgin muss auch nicht immer wieder jede schleife auf den Gleichen wert gesetzt werden.

Das ist das was mir auffält, und eben das mit den Funktionen da würde ich wircklich welche von Benutzen
mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group