"Spiel" problem

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

kapier ich nicht hilf mir a bissl
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

clipsprite() sägt dir aus nem Sprite nen bestimmten Bereich aus.

Code: Alles auswählen

##########################
#       |        |       #
#       |        |       #
#       |        |       #
#   0   |    1   |   2   #
#       |        |       #
#       |        |       #
##########################
Clipsprite(0, Anim*spritewidth(0)/3, 0, spritewidth(0)/3, spriteheight(#Sprite))
Anim + 1
if Anim => 2 : Anim = 0 : endif

Da ich nicht wusste wie groß deine Bilder sind hab ich das ausgerechnet.

Der Bereich wird dann vom nächsten displaytransparentsprite() genutzt.
Je nach dem Wert von Anim wird also der mit 1, 2 oder 3 gekennzeichnete Bereih angezeigt.
Also muss dein Bild auch so aufgebau sein.

Edit: So ungefähr:

Code: Alles auswählen

InitSprite()                                                
InitKeyboard()                                                                                                            ; ende der abfrage 

OpenScreen(800,600,32,"Vollbild")                          


LoadSprite(0,"bmp\Player 1\player1  v .bmp",0) 
LoadSprite(1,"bmp\Player 1\player1  h .bmp",0) 
LoadSprite(2,"bmp\Player 1\player1  l .bmp",0) 
LoadSprite(3,"bmp\Player 1\player1  r .bmp",0) 
LoadSprite(4,"bmp\Player 1\player1  v g.bmp",0) 
LoadSprite(5,"bmp\Player 1\player1  h g.bmp",0) 
LoadSprite(6,"bmp\Player 1\player1  l g.bmp",0) 
LoadSprite(7,"bmp\Player 1\player1  r g.bmp",0) 




position_x1 = 0 
position_y1 = 0 


for i=0 to 3 ; sieht besser aus :)
TransparentSpriteColor(i, 255, 255, 255)
next

Repeat                                                
  FlipBuffers() 
  ClearScreen(0,255,255)                                  
  ExamineKeyboard()                                  
  
  
  
  
  If KeyboardPushed(#PB_Key_Right)                    
    position_x + 2                                    
    If position_x > 760                              
      position_x = 760                                
    EndIf                                            
  EndIf                                              
  
  If KeyboardPushed(#PB_Key_Left)                    
    position_x  - 2                                  
    If position_x < -5                                
      position_x = -5                                  
    EndIf                                            
  EndIf                                              
  
  If KeyboardPushed(#PB_Key_Up)                      
    position_y  - 2                                
    If position_y < -5                                
      position_y = -5                                  
    EndIf                                            
  EndIf                                            
  
  If KeyboardPushed(#PB_Key_Down)                    
    position_y  + 2                                    
    If position_y > 560                              
      position_y = 560                                
    EndIf                                            
  EndIf                                              
  
  
  
  
  
  
  
  
  If KeyboardPushed(#PB_Key_Down) 
    richtung=0 
  EndIf 
  
  If KeyboardPushed(#PB_Key_Up) 
    richtung=1 
  EndIf 
  
  If KeyboardPushed(#PB_Key_Left) 
    richtung=2 
  EndIf 
  
  If KeyboardPushed(#PB_Key_Right) 
    richtung=3 
  EndIf 
  
  
  
  Select richtung 
    Case 0 
      ClipSprite(0, Anim * spritewidth(0)/3, 0, spritewidth(0)/3, spriteheight(0))
      DisplayTransparentSprite(0,position_x,position_y) 
    Case 1 
     ClipSprite(1, Anim * spritewidth(1)/3, 0, spritewidth(1)/3, spriteheight(1))      
     DisplayTransparentSprite(1,position_x,position_y) 
    Case 2 
     ClipSprite(2, Anim * spritewidth(2)/3, 0, spritewidth(2)/3, spriteheight(2))
      DisplayTransparentSprite(2,position_x,position_y) 
    Case 3 
     ClipSprite(3, Anim * spritewidth(3)/3, 0, spritewidth(3)/3, spriteheight(3)) 
     DisplayTransparentSprite(3,position_x,position_y) 
  EndSelect 
  Anim + 1
  if Anim => 2 : Anim = 0 : endif
    
  If KeyboardPushed(#PB_Key_Escape) 
    End                                              
  EndIf                                              
ForEver
OK?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

geht nicht jetzt ist gar nichts mehr da.
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Ja du musst die Bilder jetzt auch noch anpassen :roll:
Antworten