Problème d'affichage de Sprite
Publié : jeu. 20/mars/2014 19:55
Tout d'abord, voila mon code de maintenant
Et voici les image nécessaire: https://mega.co.nz/#!UodlmBYa!HntrfwRCQ ... wEBbQuxW0c
Mon problème, c'est que je n'arrive pas à déplacé le joueur sans les "trainés"...
Quelqu'un pourrait m'aider s'il vous plait ?
Code : Tout sélectionner
InitSprite()
InitKeyboard()
UsePNGImageDecoder()
Structure var
x.l
PasX.l
y.l
PasY.l
EndStructure
Global Gus.var
Gus\x = 0
Gus\y = 0
Gus\PasX = 0
Gus\PasY = 0
Global in.l,out.l,x.l,xstep.l,y.l,ystep.l,dep.s
Enumeration
#door
#hero
#land_1
#land_2
#step
#wall
#window
EndEnumeration
d:
OpenWindow(#window,0,0,960,680,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_BorderLess|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(#window),0,0,960,680,1,0,0)
ClearScreen(RGB(0,0,0))
LoadSprite(#door,"Image\door.png")
LoadSprite(#hero,"Image\hero.png")
LoadSprite(#land_1,"Image\land_1.png")
LoadSprite(#land_2,"Image\land_2.png")
LoadSprite(#step,"Image\step.png")
LoadSprite(#wall,"Image\wall.png")
TransparentSpriteColor(#hero,RGB(255,255,255))
For x=0 To 960 Step 40
For y=0 To 680 Step 40
DisplaySprite(#wall,x,y)
Next
Next
in=Random(22-1)+1
out=Random(15-1)+1
DisplaySprite(#door,in*40,0)
DisplaySprite(#door,out*40,640)
xstep=Random(22-1)+1
ystep=Random(15-1)+1
DisplaySprite(#step,xstep*40,ystep*40)
For x=40 To 880 Step 40
For y=40 To 600 Step 40
ran=Random(100)
Select ran
Case 0 To 75
If (y/40)%2=0
DisplaySprite(#land_1,x,y)
ElseIf (y/40)%2=1
DisplaySprite(#land_2,x,y)
EndIf
Case 76 To 100
DisplaySprite(#wall,x,y)
EndSelect
passage:
Next
Next
DisplaySprite(#land_2,in*40,40)
Gus\x=in*40
Gus\y=40
Repeat
ExamineKeyboard()
If KeyboardPushed(#PB_Key_W)
Gus\PasY = - 40
EndIf
If KeyboardPushed(#PB_Key_D)
Gus\PasX = 40
EndIf
If KeyboardPushed(#PB_Key_S)
Gus\PasY = 40
EndIf
If KeyboardPushed(#PB_Key_A)
Gus\PasX = - 40
EndIf
Gus\x + Gus\PasX
Gus\y + Gus\PasY
Gus\PasX = 0
Gus\PasY = 0
DisplayTransparentSprite(#hero,Gus\x,Gus\y)
FlipBuffers()
If KeyboardPushed(#PB_Key_RightShift)
Goto d
EndIf
If KeyboardPushed(#PB_Key_Escape) Or WaitWindowEvent()=#PB_Event_CloseWindow
End
EndIf
Delay(20)
ForEver
Mon problème, c'est que je n'arrive pas à déplacé le joueur sans les "trainés"...
Quelqu'un pourrait m'aider s'il vous plait ?