Seite 7 von 7

Verfasst: 27.02.2006 15:26
von Janiboy
wow, sieht echt schwer aus :shock: , ob ich das hinbekomm :freak: . Naja, hier mal ne ich denke einfachere frage. Erstens: warum wird die animation der bilder 15-21 nicht richtig angezeigt (bleibt beim 2. bild stehen)? Zweitens: wie baue ich einen befehl ein, der angibt, dass eine animation abläuft, sobald ein Schlag den gegner trifft?

Code: Alles auswählen

If InitSprite() = 0                                                
  MessageRequester("Fehler","Konnte dx nicht finden",0)          
EndIf                                                        


If InitKeyboard()=0                                                
  MessageRequester("Fehler","Konnte dx nicht finden",0)            
EndIf                                                              

If OpenScreen(800,600,32,"Vollbild") = 0                          
  MessageRequester("Fehler","Konnte kein Vollbild erstellen ",0) 
EndIf                                                              

If LoadSprite(0,"Fighter.bmp",0)=0                                
EndIf 
If LoadSprite(1,"Fighter1.bmp",0)=0 
EndIf 
If LoadSprite(2,"Fighter2.bmp",0)=0                                
EndIf 
If LoadSprite(3,"Fighter3.bmp",0)=0 
EndIf 
If LoadSprite(4,"Fighter4.bmp",0)=0                                
EndIf 
If LoadSprite(5,"Boden.bmp",0)=0
EndIf 
If LoadSprite(6,"Himmel.bmp",0)=0
EndIf
If LoadSprite(7,"Schwertstein.bmp",0)=0
EndIf
If LoadSprite(8,"Fighter-Punch.bmp",0)=0
EndIf
If LoadSprite(9,"Fighter-Punch1.bmp",0)=0
EndIf
If LoadSprite(10,"Fighter-Punch2.bmp",0)=0
EndIf 
If LoadSprite(11,"Fighter-Punch3.bmp",0)=0
EndIf
If LoadSprite(12,"Fighter-Punch4.bmp",0)=0
EndIf
If LoadSprite(13,"Baum.bmp",0)=0
EndIf
If LoadSprite(14,"Gegner.bmp",0)=0
EndIf
If LoadSprite(15,"Fighter-Speed-Attack.bmp",0)=0
EndIf
If LoadSprite(16,"Fighter-Speed-Attack1.bmp",0)=0
EndIf
If LoadSprite(17,"Fighter-Speed-Attack1.bmp",0)=0
EndIf 
If LoadSprite(18,"Fighter-Speed-Attack2.bmp",0)=0
EndIf
If LoadSprite(19,"Fighter-Speed-Attack3.bmp",0)=0
EndIf
If LoadSprite(20,"Fighter-Speed-Attack4.bmp",0)=0
EndIf
If LoadSprite(21,"Fighter-Speed-Attack4.bmp",0)=0
EndIf






TransparentSpriteColor(0, 255, 255, 0)
TransparentSpriteColor(1, 255, 255, 0)
TransparentSpriteColor(2, 255, 255, 0)
TransparentSpriteColor(3, 255, 255, 0)
TransparentSpriteColor(4, 255, 255, 0)
TransparentSpriteColor(5, 255, 255, 0)
TransparentSpriteColor(6, 255, 255, 0)
TransparentSpriteColor(7, 255, 255, 0)
TransparentSpriteColor(8, 255, 255, 0)
TransparentSpriteColor(9, 255, 255, 0)
TransparentSpriteColor(10, 255, 255, 0)
TransparentSpriteColor(11, 255, 255, 0)
TransparentSpriteColor(12, 255, 255, 0)
TransparentSpriteColor(13, 255, 255, 0)
TransparentSpriteColor(14, 255, 255, 0)
TransparentSpriteColor(15, 255, 255, 0)
TransparentSpriteColor(16, 255, 255, 0)
TransparentSpriteColor(17, 255, 255, 0)
TransparentSpriteColor(18, 255, 255, 0)
TransparentSpriteColor(19, 255, 255, 0)
TransparentSpriteColor(20, 255, 255, 0)
TransparentSpriteColor(21, 255, 255, 0)

position_x = 0 
position_y = 0 

Repeat                                                
  If IsScreenActive()                                    
    ClearScreen(0,0,0)                                
    
    DisplayTransparentSprite(6, 0, 5)
    
    DisplayTransparentSprite(7, 0, 5)
   
    DisplayTransparentSprite(5, 0, 5)
    
    DisplayTransparentSprite(13, 0, 5)
    
    DisplayTransparentSprite(AniFrame, position_x, position_y)
   
    DisplayTransparentSprite(14, 0, 5)

    
    
    FlipBuffers() 
    
    ExamineKeyboard()                                  

 
 
If delay<50 
  If move=1 
    AniFrame+1 
    If aniframe<minrange 
    AniFrame=minrange 
    EndIf 
    If AniFrame >maxrange 
      AniFrame=minrange 
    EndIf
    If AniFrame >maxrange 
      AniFrame=minrange 
    EndIf 
   delay=60 
  EndIf 
Else 
  delay-1 
EndIf
    
    If KeyboardPushed(#PB_Key_Right)                    
    Move=1
    maxrange=4
    minrange=0
      position_x + 3                                      
      If position_x > 700                              
        position_x = 700                                
      EndIf
      Else
      m0ve=0                                            
    EndIf                                              
    
    If KeyboardPushed(#PB_Key_Left)                    
      position_x  - 3                                  
      If position_x < 0                              
        position_x = 0                            
      EndIf                                            
    EndIf    
    
    If KeyboardPushed(#PB_Key_Return)
   Move=1
    maxrange=12
    minrange=8                                                                                  
    EndIf
    
     
    If KeyboardPushed(#PB_Key_Space)
   Move=1
    maxrange=15
    minrange=21                                                                                  
    EndIf  
  
    
    If KeyboardPushed(#PB_Key_Escape)                
      End                                              
    EndIf 
    
  Else 
    Delay(20)    
  EndIf                                      
Danke im Vorraus,
Janiboy

(sorry, dass die codes mittlerweile etwas lang sind :) )

Verfasst: 27.02.2006 15:37
von Macros
Also erstmal zu

Code: Alles auswählen




TransparentSpriteColor(0, 255, 255, 0)
TransparentSpriteColor(1, 255, 255, 0)
TransparentSpriteColor(2, 255, 255, 0)
TransparentSpriteColor(3, 255, 255, 0)
TransparentSpriteColor(4, 255, 255, 0)
TransparentSpriteColor(5, 255, 255, 0)
TransparentSpriteColor(6, 255, 255, 0)
TransparentSpriteColor(7, 255, 255, 0)
TransparentSpriteColor(8, 255, 255, 0)
TransparentSpriteColor(9, 255, 255, 0)
TransparentSpriteColor(10, 255, 255, 0)
TransparentSpriteColor(11, 255, 255, 0)
TransparentSpriteColor(12, 255, 255, 0)
TransparentSpriteColor(13, 255, 255, 0)
TransparentSpriteColor(14, 255, 255, 0)
TransparentSpriteColor(15, 255, 255, 0)
TransparentSpriteColor(16, 255, 255, 0)
TransparentSpriteColor(17, 255, 255, 0)
TransparentSpriteColor(18, 255, 255, 0)
TransparentSpriteColor(19, 255, 255, 0)
TransparentSpriteColor(20, 255, 255, 0)
TransparentSpriteColor(21, 255, 255, 0)
Das geht auch so:

Code: Alles auswählen

For Count=0 to 21
TransparentSpriteColor(Count, 255, 255, 0)
next
und schon ist er um 18 Zeilen kürzer.

Verfasst: 27.02.2006 15:45
von Macros
Zu 1. :

Code: Alles auswählen

maxrange=15
    minrange=21   
schaus dir nochmal genau an

Zu 2. :

Code: Alles auswählen

If SpritePixelCollision(SPieler,spielerx,spielery,gegner,gegberx,gegnery)
maxrange=Endbild
minrange=Beginnbild
move=1
EndIf
3. Sprites laden:
(das erste jeweils umbenennen)

Code: Alles auswählen

For count=0 To 4
If LoadSprite(8+count,"Fighter-Punch"+Str(count)+".bmp",0)=0
EndIf
Next

Verfasst: 27.02.2006 16:03
von Janiboy
ok, ich hab in der kollisionsabfrage einfach mal das wort "spieler" durch die zahl des spielers (12) ersetzt und das wort gegner durch die zahl des gegners (14) ersetzt, ich hoffe, das ist richtig. Aber was muss man anstatt spielerx, spielery, gegnerx und gegnery zum Beispiel eingeben?

Ich hoffe, das war die letzte frage fürs erste.

Danke im Vorraus,
Janiboy

Verfasst: 27.02.2006 16:19
von Macros
Janiboy hat geschrieben:ok, ich hab in der kollisionsabfrage einfach mal das wort "spieler" durch die zahl des spielers (12) ersetzt und das wort gegner durch die zahl des gegners (14) ersetzt, ich hoffe, das ist richtig. Aber was muss man anstatt spielerx, spielery, gegnerx und gegnery zum Beispiel eingeben?

Ich hoffe, das war die letzte frage fürs erste.

Danke im Vorraus,
Janiboy
falls das die nummern der Sprites sind, ist das korrekt.
spielerx ist die x Koordinate das Spieler-Sprites, spielery die y Koordinate.
genauso beim Gegner gegnerx=x Koordinate das Gegner-Sprites,
gegnery die y Koordinate.

Also praktisch die Parameter der Diplayspritebefehle hintereinandergeschrieben.