Page 1 sur 1
utilisation de zoomsprite
Publié : ven. 05/déc./2014 15:14
par jmg49
Bonjour,
j'utilise zoomsprite() sur une image, mais le résultat n'est pas ce que j'attendais, c'est à dire que je place une image au centre d'un écran avec displaysprite() et j'applique ensuite le zoomsprite,
ça ne fait pas un zoom "droit" , c'est à dire qu'une fois une certaine taille atteinte, l'image se barre sur le côté ,
pour que l'image occupe l'écran entier une fois zoomée, au départ je dois la placer en haut à gauche.....faut il utiliser autre chose que zoomsprite() ? camera ?
merci,
Re: utilisation de zoomsprite
Publié : ven. 05/déc./2014 15:38
par raven
bonjour jmp49,
un bout de code de ma demo:
Code : Tout sélectionner
TransparentSpriteColor(#logo,#PB_Sprite_BlendSourceAlpha)
ZoomSprite(#logo,zoomx,zoomx)
DisplayTransparentSprite(#logo,500-zoomx/2,350-zoomx/2)
If zoom = 0
zoomx + 3.6
If zoomx=>1000:zoom=1:EndIf
Else
zoomx - 3.6
If zoomx<=850:zoom=0:EndIf
EndIf
Re: utilisation de zoomsprite
Publié : ven. 05/déc./2014 15:47
par jmg49
c'est ce que tu as appliqué pour ton zoom sur le logo pure miga demo part 1 ?? c'est exactement cet effet que je recherche !
j'essaie et je te dis !
ta puremiga elle déchire tout ! pour ceux qui ont connu cette machine et ses jeux c'est un vrai bonheur de voir ces sprites et d'entendre le bruit du lecteur !!
Re: utilisation de zoomsprite
Publié : ven. 05/déc./2014 16:06
par raven
oui c'est une partie du code de pure miga part 1.
Code : Tout sélectionner
If temp >=800 And temp <850
TransparentSpriteColor(#guru,#PB_Sprite_BlendSourceAlpha)
TransparentSpriteColor(#guru2,#PB_Sprite_BlendSourceAlpha)
DisplayTransparentSprite(#guru,xguru+0, zoomx1)
DisplayTransparentSprite(#guru2,xguru+0, zoomx1)
ZoomSprite(#logo,zoomx1/2,zoomx1/2)
If zoom1 = 0
zoomx1 - 2.0
If zoomx1=>150:zoom1=1:EndIf
Else
zoomx1 - 2.0
If zoomx1<=0:zoom1=0:EndIf
EndIf
endif
;---------------------------------------------
;------ affiche logo pure miga --------
;---------------------------------------------
If temp >=850 And temp <1800
TransparentSpriteColor(#logo,#PB_Sprite_BlendSourceAlpha)
ZoomSprite(#logo,zoomx,zoomx)
DisplayTransparentSprite(#logo,500-zoomx/2,350-zoomx/2)
If zoom = 0
zoomx + 3.0
If zoomx=>750:zoom=1:EndIf
Else
zoomx - 3.0
If zoomx<=650:zoom=0:EndIf
EndIf
EndIf
If temp >=1800 And temp <2000
TransparentSpriteColor(#logo,#PB_Sprite_BlendSourceAlpha)
ZoomSprite(#logo,zoomx,zoomx)
DisplayTransparentSprite(#logo,500-zoomx/2,350-zoomx/2)
If zoom = 0
zoomx + 3.0
If zoomx=>750:zoom=1:EndIf
Else
zoomx - 3.0
If zoomx<=0:zoom=0:EndIf
EndIf
endif
il doit avoir une meilleur façon de faire

Re: utilisation de zoomsprite
Publié : ven. 05/déc./2014 19:22
par falsam
Un exemple de zoom avec un point d'ancrage central du sprite
Code : Tout sélectionner
Enumeration
#MainForm
#Sprite
EndEnumeration
Global Event, Increment = 1
Procedure GamePreload()
LoadSprite(#Sprite, #PB_Compiler_Home+"Examples\3D\Data\Textures\Geebee2.bmp")
TransparentSpriteColor(#Sprite, RGB(255,0,255)) ;Quel est la couleur de transparence
EndProcedure
Procedure GameUpdate()
Protected w.f = SpriteWidth(#Sprite)
Protected h.f = SpriteHeight(#Sprite)
;Point d'ancrage central
Protected x.f = (ScreenWidth() - w)/2
Protected y.f = (ScreenHeight() - h)/2
DisplayTransparentSprite(#Sprite, x, y)
ZoomSprite(#Sprite, w + Increment, h + Increment)
If w >= 800 : Increment = -1 : EndIf
If w <= 128 : Increment = 1 : EndIf
EndProcedure
Procedure GameStart()
;Initialisation de l'environnement 2D
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 And InitSound() = 0
MessageRequester("Error", "Sprite system can't be initialized", 0)
End
EndIf
If OpenWindow(#mainform, 0, 0, 800, 600, "New Game", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(#mainform), 0, 0, 800, 600)
GamePreload()
EndIf
EndIf
;-Boucle evenementielle
Repeat
Repeat
Event = WindowEvent()
Select event
Case #PB_Event_CloseWindow
End
EndSelect
Until event=0
FlipBuffers()
ClearScreen(RGB(245, 222, 179))
ExamineKeyboard()
ExamineMouse()
GameUpdate()
Until KeyboardPushed(#PB_Key_Escape)
EndProcedure
GameStart()
le sprite est celui se trouvant dans les exemples de pure basic (
Pas très beau)
Re: utilisation de zoomsprite
Publié : lun. 08/déc./2014 15:18
par raven
merci Falsam,intéressant comme code.