Je m'explique
Un bandeau Horizontal qui fait la largeur de l'ecran
l'image du milieu est l'image selectionné
les images ne font pas toute obligatoirement la même taille
mais lorsqu'on s'approche de l'image selectioné l'image grossit et lorsqu'on s'eloigne de l'image selectioné l'image retrecie pour prendre la taille des autres images du bandeau
Lorsqu'on appuie sur la touche droite les images scroll dans un sens ou l'autre, s'agrandissant ou retrésissant selon si elle s'approche ou seloigne de l'image selectioné !
Voilà ce que j'essaye de faire en vain de puis plus d'une semaine...
voici le mieux que j'ai réussi a faire (voir le code)
Est ce quelqu'un sais ou trouver au moins le principe pour programmer ce genre de truc ? Je pensais que c'était tou bête a programmer et je me suis trompé ...

Code : Tout sélectionner
#Window = 0
#Width = 640
#Height = 480
#Mode_initSp = 1; lit les fichier un part un
; #Mode_initSp=1;créer en même temps les packs
; #Mode_initSp=2;lit les fichiers via le pack
Procedure StartScreen()
;- Init DirectX
If InitSprite() = 0 Or InitSprite3D() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 Or InitSound() = 0
MessageRequester("Erreur", "Impossible d'initialiser DirectX", 0)
CloseWindow(#Window) : End
EndIf
If #Mode_initSp = 0 Or #Mode_initSp = 1
res = OpenWindow(#Window, 0, 0, #Width, #Height, #PB_Window_TitleBar | #PB_Window_ScreenCentered, "ArcaThy" + ver$)
OpenWindowedScreen(res, 0, 0, #Width, #Height, 0, 0, 0)
Else
OpenScreen( #Width, #Height, 16, "Arcadthy" + ver$ )
EndIf
EndProcedure
StartScreen()
CreateImage(0,320,200)
StartDrawing(ImageOutput())
UseImage(0)
DrawingMode(1|4)
Box(1,1,319,199,RGB(255,255,255))
StopDrawing()
Procedure show(im,x,y,H)
UseImage(im)
W=ImageWidth()*H/ImageHeight()
CreateSprite(im,W,H)
StartDrawing(SpriteOutput(im))
DrawImage(UseImage(im),0,0,W,H)
StopDrawing()
DisplaySprite(im,x,y)
EndProcedure
Repeat ; Jeu
ClearScreen(0, 0, 0)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_right) And id_game=old_id_game
id_game=id_game+1
EndIf
If KeyboardPushed(#PB_Key_left) And id_game=old_id_game
id_game=id_game-1
EndIf
If id_game>old_id_game
zx=zx+1
If zx=SpriteWidth(0)
old_id_game=id_game
zx=0
EndIf
EndIf
If id_game<old_id_game
zx=zx-1
If zx=SpriteWidth(0)
old_id_game=id_game
zx=0
EndIf
EndIf
LScreen=640 ; largeur du bandeau ou de l'ecran
MScreen=Int(LScreen/2) ; calcul du milieu du bandeau là ou sera l'image selectionné
Hsnap=50 ; hauteur des images affiché
DX=180 ; largeur avant et apres l'image selectionné ou l'image doit grossir ou retressir
X=-150 ; coordonnée ou on commence a affiché les images
Debug"---"
While X<LScreen
H=Hsnap
If X+zx>=(MScreen-DX) And X+zx<=(MScreen+DX) ; si on est dans la zonne au tour del'image selectionné on calcul l'agrandissement de ces dernière
Debug (DX-Sqr(Pow((MScreen-X+zx),2)))/10
H=H+(DX-Sqr(Pow((MScreen-X+zx),2)))/10
EndIf
show(0,X+zx,200,H)
X=X+SpriteWidth(0)+10
Wend
FlipBuffers(0)
If #Mode_initSp = 0 Or #Mode_initSp = 1
While WindowEvent() : Wend ; evite le plantage clic gauche
EndIf
Until KeyboardPushed(#PB_Key_Escape)