Page 6 sur 9
Re: Pour YOGI
Publié : mer. 19/oct./2016 18:22
par Ar-S
J'ai repris ton code, modifie juste le chemin de l'image.
J'ai commenté
Je pause, je vais faire à bouffer ^^
Code : Tout sélectionner
; Prends l'habiude d'énumérer tes gadgets/fenêtre/éléments sinon tu vas te perdre par la suite
Enumeration
#fenetre_principale
; Gadget
#gadget_bouton_ok
#MonCanvas
; Image
#MonImage
EndEnumeration
; Au meme titre que les enumération, déclare tes procédures
Declare AfficheDansCanvas(IDimage)
Declare Ouvre_Fenetre_principale()
; decode les png jpg
UsePNGImageDecoder()
UseJPEGImageDecoder()
; On charge l'image mais on vérifie qu'elle ait été chargé
Global image = LoadImage(#MonImage, "D:\OneDrive\Images\web1.jpg")
If image = 0
Debug "soucis de chargement de l'image"
End
EndIf
; La procédure qui permettra d'afficher (toutes les) l'image
Procedure AfficheDansCanvas(IDimage)
StartDrawing(CanvasOutput(#MonCanvas))
DrawImage(IDimage,0,0)
StopDrawing()
EndProcedure
Procedure Ouvre_Fenetre_principale()
If OpenWindow ( #fenetre_principale , 0, 0, 800 , 600, "fenêtre principale" , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
; Le canvas est un très bon support graphique pour l'affichage non animé
; les screen se prètent plus à l'animation
CanvasGadget(#MonCanvas, 0,0,800,600)
; On affiche l'image dans le canvas
AfficheDansCanvas(image) ; image est l'ID de #MonImage
Else
EndIf
EndProcedure
Ouvre_Fenetre_principale()
Repeat
Event = WaitWindowEvent ()
; Mettre ici la gestion des évènements
Until Event = #PB_Event_CloseWindow ; si on appui sur la croix, on ferme le programme
End ; Fin du programme
Re: Pour YOGI
Publié : mer. 19/oct./2016 18:32
par yogi
superbe merci ! je vais potasser tout cela demain matin !
yes et vu que je suis sur deepin os, j'avais du mal à mettre un lien vers le bureau pour purebasic.
bref tout arrive à point nommé, à moi de coder maintenant
très bonne soirée à toi
yogib33r
Re: Pour YOGI
Publié : jeu. 20/oct./2016 20:36
par TazNormand
Salut Yogi,
Tu peux jeter un œil à un ancien tuto que j'avais fait, il s'agit d'un
remake d'une cracktro de SkidRow.
Les codes sont à revoir, car bien des versions de PureBasic sont sorties depuis ce tuto, mais le code reste, je pense, à peu près fonctionnel.
Je n'ai testé à l'instant que le premier code de mon ancien tuto, et à part le CreateSprite() qui ne connaît plus la constante #PB_Sprite_Texture, le reste fonctionne.
Re: Pour YOGI
Publié : jeu. 20/oct./2016 22:07
par yogi
bonsoir taznormand
grand merci pour ton code que je vais lire demain matin au reveil

je cherche un effet de plasma au cas ou

très bonne fin de soirée à toi
merci encore
stéphane
Re: Pour YOGI
Publié : jeu. 20/oct./2016 23:48
par Ar-S
Tu veux aller trop vite...
Affiche un screen, fais bouger des sprites dedans, pour les effets de demomaker utilisant les math (plasma, sinuscroll et compagnie), tu auras juste à trouver les formules qui vont bien sur les forums PB (ou autre !) et les mettre en pratique Mais pour celà faut que tu piges bien comment fonctionne la 2D et PB.
Fais des tests de ClipSprite par exemple, ça te sera utile pour les scroll text si tu souhaites utiliser des sheet de fonts à l'ancienne.
Re: Pour YOGI
Publié : ven. 21/oct./2016 0:00
par falsam
Ar-S a écrit :Tu veux aller trop vite...
ça c'est clair au vu du peu que j'ai vu dans ton dernier code.
Ar-S a écrit :faut que tu piges bien comment fonctionne la 2D et PB.
Suis bien ce conseil d'Ar-S ^^
La découverte avant toute chose avant de passer à une application concrète.
Re: Pour YOGI
Publié : ven. 21/oct./2016 10:28
par yogi
bonjour messieurs
oui je vais aller tout doucement en effet.
bref oui je m'y remets stap, avec envie car la syntaxe est simple mais le langage puissant.
merci a vous

stéphane
Re: Pour YOGI
Publié : ven. 21/oct./2016 16:24
par yogi
re
en fait je vais commencer par lire tous les excellents tutos tout en haut dans /debutants
bref j'ai à faire

merci à tous de votre amabilité sisi ç fait du bien
stéphane
Re: Pour YOGI
Publié : ven. 21/oct./2016 21:28
par Ar-S
Je suis en train de pondre quelque chose... j'ai pas trop de date mais ça devrait te plaire.
Je posterai le tout une fois terminé avec le code.
Re: Pour YOGI
Publié : ven. 21/oct./2016 22:00
par yogi
coucou monsieur A-Rs !
yes j'ai hâte de voir cela

très bonne soirée
Re: Pour YOGI
Publié : sam. 22/oct./2016 15:59
par Ar-S
Petit exemple de scrolling parallaxe
Particularité, image qui boucle donc utilisation de clipsprite à gogo
D'autres exemples sur ce topic :
http://www.purebasic.fr/french/viewtopi ... e+Parallax
IMAGES ICI :
http://share.ldvmultimedia.com/imagescrolll.zip
Code : Tout sélectionner
; Ar-S / Infinite Parallax Scroll using clipsprite.
; Clip de 200px de large uniquement
UsePNGImageDecoder()
Enumeration
#Fenetre_principale
#ter
#her
EndEnumeration
Define.l EV
Global StyleFen.i=#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered
If Not (InitSprite() And InitSound() And InitKeyboard())
End
EndIf
OpenWindow(#Fenetre_principale, 0, 0, 200, 135, "scroll", StyleFen)
If OpenWindowedScreen(WindowID(#Fenetre_principale), 0, 0, 200, 135, 1, 0, 0)
LoadSprite(#ter,"paralax.png",#PB_Sprite_AlphaBlending)
LoadSprite(#her,"herbe.png",#PB_Sprite_AlphaBlending)
Xter = 0
Repeat ;Evemement 2D
Repeat
EV = WindowEvent()
Select EV
Case #PB_Event_CloseWindow
End
EndSelect
Until EV=0
ClearScreen(RGB(0, 0, 0))
ClipSprite(#ter, Xter, 0, 200, 135)
DisplayTransparentSprite(#ter,0,0)
ClipSprite(#her, Xher, 0, 200, 135)
DisplayTransparentSprite(#her,0,0)
If Xher >= 600
Xher = 0
EndIf
If xter >= 400
Xter=0
EndIf
vitesse = 2
Xter+Vitesse/2
XHer+Vitesse
FlipBuffers()
ForEver
Else
Debug "ça chie" : End
EndIf
Re: Pour YOGI
Publié : sam. 22/oct./2016 17:07
par yogi
yes merci monsieur Ar-S

je vais potasser tout cela je vais petet faire un seul screen
bref passion meci encore à toi
yogi
Re: Pour YOGI
Publié : sam. 22/oct./2016 17:39
par yogi
ok j'ai compris la logique de la chose bref oui ça a l'air simple mais la syntaxe de la chose m'échappe encore un peu.
je vais prendre mon temps pour ^^ comprendre tout cela
très bonne soirée à toi Ar-S et à tous
Re: Pour YOGI
Publié : dim. 23/oct./2016 14:30
par Marc56
Tu as du mal à démarrer car tu commence sur
deux "sujets" en même temps:
- La gestion des "variables" de type image
- La manipulation des images et interaction entre-elles (sprites)
Commence d'abord par comprendre l’utilisation de:
- La réservation d'une "zone" mémoire pour l'image: (CreateImage)
- Le chargement de cette "zone" (LoadImage) ou le dessin dynamique (StartDrawing)
- La découpe (GrabImage), copie etc
- La sauvegarde (SaveImage)
- La libération de la mémoire (FreeImage)
Une fois qu tu auras compris ces principes, commence les Sprites.
Astuce: Active le visualiseur de bibliothèque pour voir les images dès qu'elles sont créées en ram
En début de code, ajoutes:

Re: Pour YOGI
Publié : dim. 23/oct./2016 16:16
par yogi
bonsoir Marc56
yes je vais regarder tout cela. je m'y remets demain après midi et consulter la doc aussi
merci à toi