Pour YOGI

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Pour YOGI

Message 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 
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
yogi
Messages : 90
Inscription : sam. 06/août/2016 15:55
Localisation : dijon
Contact :

Re: Pour YOGI

Message 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
hop ici grosse tour a moué: pentium G3258 à 3.20ghz + 16go de ram + 650gtx
sinon laptop bout de plastique 2 x centrino 1.8 ghz + 4 go de ram
Le tout sous Deepin OS 64b le bonheur :) et plein de virtualbox :)
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Pour YOGI

Message 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.
Image
Image
Avatar de l’utilisateur
yogi
Messages : 90
Inscription : sam. 06/août/2016 15:55
Localisation : dijon
Contact :

Re: Pour YOGI

Message 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
hop ici grosse tour a moué: pentium G3258 à 3.20ghz + 16go de ram + 650gtx
sinon laptop bout de plastique 2 x centrino 1.8 ghz + 4 go de ram
Le tout sous Deepin OS 64b le bonheur :) et plein de virtualbox :)
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Pour YOGI

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Pour YOGI

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
yogi
Messages : 90
Inscription : sam. 06/août/2016 15:55
Localisation : dijon
Contact :

Re: Pour YOGI

Message 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
hop ici grosse tour a moué: pentium G3258 à 3.20ghz + 16go de ram + 650gtx
sinon laptop bout de plastique 2 x centrino 1.8 ghz + 4 go de ram
Le tout sous Deepin OS 64b le bonheur :) et plein de virtualbox :)
Avatar de l’utilisateur
yogi
Messages : 90
Inscription : sam. 06/août/2016 15:55
Localisation : dijon
Contact :

Re: Pour YOGI

Message 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
hop ici grosse tour a moué: pentium G3258 à 3.20ghz + 16go de ram + 650gtx
sinon laptop bout de plastique 2 x centrino 1.8 ghz + 4 go de ram
Le tout sous Deepin OS 64b le bonheur :) et plein de virtualbox :)
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Pour YOGI

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
yogi
Messages : 90
Inscription : sam. 06/août/2016 15:55
Localisation : dijon
Contact :

Re: Pour YOGI

Message par yogi »

coucou monsieur A-Rs !
yes j'ai hâte de voir cela :)
très bonne soirée
hop ici grosse tour a moué: pentium G3258 à 3.20ghz + 16go de ram + 650gtx
sinon laptop bout de plastique 2 x centrino 1.8 ghz + 4 go de ram
Le tout sous Deepin OS 64b le bonheur :) et plein de virtualbox :)
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Pour YOGI

Message 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
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
yogi
Messages : 90
Inscription : sam. 06/août/2016 15:55
Localisation : dijon
Contact :

Re: Pour YOGI

Message 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
hop ici grosse tour a moué: pentium G3258 à 3.20ghz + 16go de ram + 650gtx
sinon laptop bout de plastique 2 x centrino 1.8 ghz + 4 go de ram
Le tout sous Deepin OS 64b le bonheur :) et plein de virtualbox :)
Avatar de l’utilisateur
yogi
Messages : 90
Inscription : sam. 06/août/2016 15:55
Localisation : dijon
Contact :

Re: Pour YOGI

Message 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
hop ici grosse tour a moué: pentium G3258 à 3.20ghz + 16go de ram + 650gtx
sinon laptop bout de plastique 2 x centrino 1.8 ghz + 4 go de ram
Le tout sous Deepin OS 64b le bonheur :) et plein de virtualbox :)
Marc56
Messages : 2196
Inscription : sam. 08/févr./2014 15:19

Re: Pour YOGI

Message 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:

Code : Tout sélectionner

ShowLibraryViewer()
:wink:
Avatar de l’utilisateur
yogi
Messages : 90
Inscription : sam. 06/août/2016 15:55
Localisation : dijon
Contact :

Re: Pour YOGI

Message 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
hop ici grosse tour a moué: pentium G3258 à 3.20ghz + 16go de ram + 650gtx
sinon laptop bout de plastique 2 x centrino 1.8 ghz + 4 go de ram
Le tout sous Deepin OS 64b le bonheur :) et plein de virtualbox :)
Répondre