Besoin d'un code 2D

Programmation d'applications complexes
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Besoin d'un code 2D

Message par nico »

Salut,

Pour réaliser un code d'animation de fenêtre, j'aurais besoin d'une âme charitable pour me composer un code 2D car mes connaissances dans ce domaine sont proche de 0.

Les besoins:
OpenWindowedScreen plein écran, sans bordure qui s'adapte à l'écran de l'ordi
avec une animation d'une image partant d'un zoom de 0 vers la taille réelle
le code doit être adapté pour n'importe quelle taille d'image bien sûr avec un effet
cet effet peut être ce que vous voulez, un retournement, rotation etc...
fond d'écran magenta

C'est pour une démo alors pas la peine de se casser la tête!

L'idée finale est de réaliser une animation de fenêtre à la windev.

Une fois le code 2D, je le complèterais et je le posterais dans la section Trucs et Astuces

Merci à ceux qui voudront bien m'aider, Dobro si tu m'entends :)
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Besoin d'un code 2D

Message par Patrick88 »

dans le temps, sur le fofo de cederavic, y'avait ce genre de truc de posté, faudrait voir avec lui ou dobro, je crois que chris avait aussi un copie du forum suite au nombreux crash intempestif? du pécé de ced. :mrgreen:
regarde aussi sur purearea…

pat
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Besoin d'un code 2D

Message par Backup »

vla deja un debut

Zoom avec rotation


usejpegimagedecoder ()
usepngimagedecoder ()
usetgaimagedecoder ()
; chemin vers l'image
image$= "C:\Dobro\Mes_Photos\fond_ecran\123.jpg"

Global flag


Enumeration
         #window
         #Image
         #sprite
         #Sprite3D
EndEnumeration

;- Initialisation de DirectX
If initsprite () = 0 Or initkeyboard () = 0 Or initmouse () = 0 Or initsprite3d ()=0
         messagerequester ( "Erreur" , "Impossible d'initialiser DirectX" , 0)
         End
EndIf

examinedesktops ()
Global x_ecran= desktopwidth (0)
Global y_ecran= desktopheight (0)

;- Ouverture de la fenêtre et de l'écran
openwindow ( #window , 0, 0, x_ecran, y_ecran, "" , #PB_Window_BorderLess| #PB_Window_ScreenCentered )
openwindowedscreen ( windowid ( #window ), 0, 0, x_ecran, y_ecran, 0, 0, 0)
                        
; ici on charge l'image pour connaitre sa taille

loadimage ( #Image ,image$ )
x_image= imagewidth ( #Image )
y_image= imageheight ( #Image )
rotation.f=360/x_image
freeimage ( #Image ) ; on peu effacer l'image maintenant ,on a sa dimension
If loadsprite ( #sprite ,image$, #PB_Sprite_Texture ) ; on charge le sprite
         createsprite3d ( #Sprite3D , #sprite ) ; on en fait un sprite 3D
        ZoomSprite3D( #Sprite3D , 1, 1)
EndIf

        
                 ;- début de la boucle
                
Repeat
         examinemouse () ; on demande a purebasic de surveiller les event de souris !
         examinekeyboard () ; on demande a purebasic de surveiller les event de clavier!
        
         startdrawing ( screenoutput ())
                 drawtext ((x_ecran/2)-23, 10, "touche ESC pour quitter" , rgb (255,255,0), rgb (0,0,0))
         stopdrawing ()
         If zoom_x<x_image
                zoom_x=zoom_x+5
                Angle.f=Angle+rotation
                flag=1
         Else
                Angle.f=0
                flag=0
         EndIf
         If zoom_y<y_image
                zoom_y=zoom_y+5
         EndIf
        
         start3d ()
                ZoomSprite3D( #Sprite3D , zoom_x, zoom_y)
                 rotatesprite3d ( #Sprite3D , Angle.f, flag)
                
                 displaysprite3d ( #Sprite3D , (x_ecran/2)-x_image/2,(y_ecran/2)-y_image/2)
                
         stop3d ()
         flipbuffers ()
         clearscreen ( rgb (255,0,255))
Until keyboardpushed ( #PB_Key_Escape )


[Reedit]
améloration de la rotation :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Besoin d'un code 2D

Message par Backup »

arf !! j'avais oublié le fond d'ecran magenta :)
Répondre