Hilfe bei Animation

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

viper199

Betreff: Hilfe bei Animation

BeitragFr, März 02, 2007 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich brauche HIlfe für eine Animation,
ich habe den code so eingegeben wie ich ihn verstanden habe,
doch es zeigt nur das erste Bild der Animation an!
Hoffentlich könnt ihr mir helfen!

Danke schonmal viper199 Sad

Code: [AUSKLAPPEN]

AppTitle "RPG"

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

player   =   LoadAnimImage("Bilder\Player\playerup.bmp" ,95,95,0,8)
links   =   LoadAnimImage("Bilder\Player\playerleft.bmp" ,95,95,0,8)
rechts   =   LoadAnimImage("Bilder\Player\playerright.bmp" ,95,95,0,8)
oben   =   LoadAnimImage("Bilder\Player\playerup.bmp" ,95,95,0,8)
unten   =   LoadAnimImage("Bilder\Player\playerdown.bmp" ,95,95,0,8)
Tod      =   LoadAnimImage("Bilder\Player\playertod.bmp" ,95,95,0,8)
gegner   =   LoadImage("Bilder\Monster\Oger.bmp")
Map      =   LoadImage("Bilder\Map\Map.bmp")
Mapbg   =   LoadImage("Bilder\Map\Mapbg.bmp")


Leben   =1000
Mana   =500
player_x=300
player_y=200


Type gegner
  Field gegner_x
  Field gegner_y
End Type

  gegner_x=200
  gegner_y=200


While Not KeyDown(1)

   If KeyDown(203) Then
      player_x=player_x-2
      player=links
      If ImagesCollide(player,player_x,player_y,0,Mapbg,1,1,0)  Then player_x=player_x+2
   EndIf
   
   If KeyDown(205)
      player_x=player_x+2
      player=rechts
      If ImagesCollide(player,player_x,player_y,0,Mapbg,1,1,0)  Then player_x=player_x-2
   EndIf
   
   If KeyDown(200)
      player_y=player_y-2
      player=oben
      If ImagesCollide(player,player_x,player_y,0,Mapbg,1,1,0)  Then player_y=player_y+2
   EndIf
   
   If KeyDown(208)
      player_y=player_y+2
      player=unten
      If ImagesCollide(player,player_x,player_y,0,Mapbg,1,1,0)  Then player_y=player_y-2
   End If
   


Cls

MaskImage Mapbg, 0, 0, 0
MaskImage gegner, 255, 0, 255
MaskImage player, 255, 0, 255

DrawImage Map ,0,0
DrawImage Mapbg ,0,0
DrawImage gegner,gegner_x,gegner_y
DrawImage player,player_x,player_y

Color 255,0,0
Rect 100,10,Leben / 10,10
Text 50,8, "Leben:"
If Leben < 0 Then player=Tod

Color 0,0,255
Rect 100,30,Mana / 10,10
Text 60,30, "Mana:"


Flip
Wend

Tankbuster

BeitragFr, März 02, 2007 23:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh man! Wegen solcher Fragen sollte man Tuts lesen!
Du musst nicht einfach nur das Bild laden!
Zitat:
player = LoadAnimImage("Bilder\Player\playerup.bmp" ,95,95,0,8)

Du musst noch sagen, welches Frame angezeigt werden soll. Das erhöhst du dann immer, damit alle angezeigt werden. Wenns zu hoch ist, kannste wieder bei 0 anfangen!^^
Twitter
Download Jewel Snake!
Windows|Android

viper199

BeitragMi, März 07, 2007 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ja sry hab nicht gesehen das es mehrere Seiten von ROB gibts Embarassed

hab jetzt aber einen Fehler, und es währe nett wenn den mir jemand erklären könnte bzw zeigen! Confused

Code: [AUSKLAPPEN]

Graphics 640,480

SetBuffer BackBuffer()

Global player=LoadAnimImage("hero_spr.bmp",70,83,1,16)

Global Player_Counter = 16, Player_Frame = 0   

While Not KeyHit(1)

   If KeyDown(203)
      player_x=player_x-2
            If Player_Frame <9 Then Player_Frame = 9   
            Player_Counter = Player_Counter -1         
            If Player_Counter = 0 Then               
            Player_Counter = 16                  
            Player_Frame = Player_Frame +1         
            If Player_Frame = 16 Then Player_Frame = 9   
         EndIf             
         EndIf
   
   If KeyDown(205)
      player_x=player_x+2   
            If Player_Frame >8 Then Player_Frame = 1   
            Player_Counter = Player_Counter -1         
            If Player_Counter = 0 Then               
            Player_Counter = 16                  
            Player_Frame = Player_Frame +1         
            If Player_Frame = 8 Then Player_Frame = 1   
         EndIf             
         EndIf

Cls

DrawImage player, player_x, player_y, player_frame

Flip
Wend

viper199

BeitragSo, März 11, 2007 12:29
Antworten mit Zitat
Benutzer-Profile anzeigen
das lag daran, das die sprites irgendwie eine macke hatten Confused
jetzt funktionierts, doch ich hab natürlich ein neues problem und zwar wächselt nicht immer die animation beim gehen! (error: illegal memory adress)
siehe hier:
https://www.blitzforum.de/upload/file.php?id=1238

woran kannn das liegen bzw wodran liegts, fals euch der code hilft hier nochmal der code:

Code: [AUSKLAPPEN]
AppTitle "Morte"

Graphics 640,480,16,2

SetBuffer BackBuffer()

Global player=LoadAnimImage("hero_spr.bmp",32,48,0,16)
Global Player_Counter = 16, Player_Frame = 0   
MaskImage player, 20,1,214

player_x=300
player_y=200


While Not KeyHit(1)

   If KeyDown(203)
         player_x=player_x-1
            If Player_Frame <4 Then Player_Frame = 4   
            Player_Counter = Player_Counter -1         
            If Player_Counter = 0 Then               
            Player_Counter = 16                  
            Player_Frame = Player_Frame +1         
            If Player_Frame = 7 Then Player_Frame = 4   
         EndIf             
         EndIf
         
   If KeyDown(205)
         player_x=player_x+1
            If Player_Frame <8 Then Player_Frame = 8   
            Player_Counter = Player_Counter -1         
            If Player_Counter = 0 Then               
            Player_Counter = 16                  
            Player_Frame = Player_Frame +1         
            If Player_Frame = 11 Then Player_Frame = 8   
         EndIf             
         EndIf
      
   If KeyDown(200)
         player_y=player_y-1
            If Player_Frame <12 Then Player_Frame = 12   
            Player_Counter = Player_Counter -1         
            If Player_Counter = 0 Then               
            Player_Counter = 16                  
            Player_Frame = Player_Frame +1         
            If Player_Frame = 16 Then Player_Frame = 12   
         EndIf             
         EndIf
   
   If KeyDown(208)
      player_y=player_y+1   
            If Player_Frame >4 Then Player_Frame = 1   
            Player_Counter = Player_Counter -1         
            If Player_Counter = 0 Then               
            Player_Counter = 16                  
            Player_Frame = Player_Frame +1         
            If Player_Frame = 4 Then Player_Frame = 1   
         EndIf             
         EndIf

Cls

DrawImage player, player_x, player_y, player_frame

Flip
Wend

Silver_Knee

BeitragSo, März 11, 2007 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du die meldung "illegal memory adress" (bzw "memory access valoation" bei v1.98) bekommst hast du debug off: geh mal auf Program -> Debug Enabled? dann bekommst du eine Preziesere anweisung wo dein Fehler ist und du kannst ganz rechts alle variabeln und deren werte dir anschauen und dir dann gedanken machen wo dein Fehler ist.

viper199

BeitragMo, März 19, 2007 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke,
jedoch hat das nciht geholfen sondern der fehler war ledeglich
das ich keinen wert angegeben habe fals der wert größer ist als der der gebraucht wird und das hat bugs verursacht.

If player1_Frame <36 Then player1_Frame = 36
player1_Counter = player1_Counter -1
If player1_Counter = 0 Then
player1_Counter = 12
player1_Frame = player1_Frame +1
If player1_Frame = 39 Then player1_Frame = 36
If player1_Frame >39 Then player1_Frame = 36
EndIf

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group