Pur débutant en PURE BASIC.... aide images/sprites/souris
Pur débutant en PURE BASIC.... aide images/sprites/souris
Hello ! Je suis un fan de basic depuis toujours (Locomotive basic, GFA basic dans les années 80) et j'ai programmé quelques jeux d'arcade et RPG en Dark Basic, QB64 et surtout Blitz 3D.
Ma derniere realisation :
http://gamopat.over-blog.com/2018/12/co ... -v.10.html
Blitz est maintenant hélas abandonné et je me tourne (avec qq difficultés) vers ce PURE Basic qui semble le basic le plus à la mode, et très puissant, et avec surtout une grosse communauté fr en anglaise.
Avec difficulté, oui, car la syntaxe est quand même un peu + complexe comparé au Blitz (il faut le reconnaitre). Mais ca va le faire. Je compte sur vous pour répondre à quelques questions.
J'essaye de commencer par un petit jeu test.
Premieres interrogations :
1.Il n'est pas possible de faire des rotations d'images avec drawimage ? Il faut passer par les sprites (et rotatesprite) ?
2.Il n'y a pas de fonction "mirroir" vertical ou horizontal pour les sprites ni pour les images ?
3. je veux créer un RPG avec 500 tiles environ.... Est ce que utiliser 500 sprites est un probreme ? Il il vaut mieux utiliser 500 images ?
Merci à vous !!!!!
Ma derniere realisation :
http://gamopat.over-blog.com/2018/12/co ... -v.10.html
Blitz est maintenant hélas abandonné et je me tourne (avec qq difficultés) vers ce PURE Basic qui semble le basic le plus à la mode, et très puissant, et avec surtout une grosse communauté fr en anglaise.
Avec difficulté, oui, car la syntaxe est quand même un peu + complexe comparé au Blitz (il faut le reconnaitre). Mais ca va le faire. Je compte sur vous pour répondre à quelques questions.
J'essaye de commencer par un petit jeu test.
Premieres interrogations :
1.Il n'est pas possible de faire des rotations d'images avec drawimage ? Il faut passer par les sprites (et rotatesprite) ?
2.Il n'y a pas de fonction "mirroir" vertical ou horizontal pour les sprites ni pour les images ?
3. je veux créer un RPG avec 500 tiles environ.... Est ce que utiliser 500 sprites est un probreme ? Il il vaut mieux utiliser 500 images ?
Merci à vous !!!!!
Dernière modification par drfloyd le jeu. 26/sept./2019 17:08, modifié 1 fois.
- majikeyric
- Messages : 602
- Inscription : dim. 08/déc./2013 23:19
- Contact :
Re: Pur débutant en PURE BASIC.... aide images/sprites
Trop marrant le gars qui crache sur PureBasic sur son forum et qui vient demander de l'aide ici
https://www.gamopat-forum.com/t76370-je ... re#1971713
https://www.gamopat-forum.com/t67074p90 ... le#3011597
https://www.gamopat-forum.com/t76370-je ... re#1971713
https://www.gamopat-forum.com/t67074p90 ... le#3011597
Re: Pur débutant en PURE BASIC.... aide images/sprites
cracher sur le langage est un bien gros mot... de toutes façons il n'y a que les c... qui ne changent pas d'avis , bienvenu a lui si il a envie de découvrir purebasic...
étant un peu rouillé avec tout ca je te donne quelques réponses
1.Il n'est pas possible de faire des rotations d'images avec drawimage ? Il faut passer par les sprites (et rotatesprite) ?
oui c'est exactement cela.
2.Il n'y a pas de fonction "mirroir" vertical ou horizontal pour les sprites ni pour les images ?
non mais a voir si il y a moyen avec TransformSprite()
3. je veux créer un RPG avec 500 tiles environ.... Est ce que utiliser 500 sprites est un probreme ? Il il vaut mieux utiliser 500 images ?
non je ne crois pas que cela soit un problème sauf peut être avec des machines très limitées.
étant un peu rouillé avec tout ca je te donne quelques réponses
1.Il n'est pas possible de faire des rotations d'images avec drawimage ? Il faut passer par les sprites (et rotatesprite) ?
oui c'est exactement cela.
2.Il n'y a pas de fonction "mirroir" vertical ou horizontal pour les sprites ni pour les images ?
non mais a voir si il y a moyen avec TransformSprite()
3. je veux créer un RPG avec 500 tiles environ.... Est ce que utiliser 500 sprites est un probreme ? Il il vaut mieux utiliser 500 images ?
non je ne crois pas que cela soit un problème sauf peut être avec des machines très limitées.
Re: Pur débutant en PURE BASIC.... aide images/sprites
en fouinant un peu j'ai trouvé ce topic ou un code permet de faire du flip de sprite
https://www.purebasic.fr/french/viewtop ... =4&t=17479
https://www.purebasic.fr/french/viewtop ... =4&t=17479
Re: Pur débutant en PURE BASIC.... aide images/sprites
je confirme mes propos :
PureBasic est éloigné du basic d'origine des années 60... très éloigné de la simplicité légendaire de BLITZ... avec une syntaxe complexe
C'est un fait
Mais je tente quand meme de m'y mettre.... pour l'instant par curiosité
PureBasic est éloigné du basic d'origine des années 60... très éloigné de la simplicité légendaire de BLITZ... avec une syntaxe complexe
C'est un fait
Mais je tente quand meme de m'y mettre.... pour l'instant par curiosité
Re: Pur débutant en PURE BASIC.... aide images/sprites
merci pour ces réponses, sympacase a écrit :cracher sur le langage est un bien gros mot... de toutes façons il n'y a que les c... qui ne changent pas d'avis , bienvenu a lui si il a envie de découvrir purebasic...
étant un peu rouillé avec tout ca je te donne quelques réponses
1.Il n'est pas possible de faire des rotations d'images avec drawimage ? Il faut passer par les sprites (et rotatesprite) ?
oui c'est exactement cela.
2.Il n'y a pas de fonction "mirroir" vertical ou horizontal pour les sprites ni pour les images ?
non mais a voir si il y a moyen avec TransformSprite()
3. je veux créer un RPG avec 500 tiles environ.... Est ce que utiliser 500 sprites est un probreme ? Il il vaut mieux utiliser 500 images ?
non je ne crois pas que cela soit un problème sauf peut être avec des machines très limitées.
Re: Pur débutant en PURE BASIC.... aide images/sprites
case a écrit :en fouinant un peu j'ai trouvé ce topic ou un code permet de faire du flip de sprite
https://www.purebasic.fr/french/viewtop ... =4&t=17479
merci, donc il n'y a pas de réelle commande pour le flip mirroir des images, super étrange..... Je ferai sans
Re: Pur débutant en PURE BASIC.... aide images/sprites
Non, c'est un a priori dû à une non-lecture de la docPureBasic est éloigné du basic d'origine des années 60... très éloigné de la simplicité légendaire de BLITZ... avec une syntaxe complexe
C'est un fait
70 ans après les machines ne sont plus les mêmes, les possibilités non-plus.
PB n'est pas un langage spécialisé jeu, mais un outil multi-fonction (console, graphique, multi-tâche, API, base de données etc). Ce que ne font pas les anciens Basics.
Mais malgré sa "complexité" le codage en un minimum de lignes est possible.
"Hello World" Mode graphique (Windows, Linux, Mac): 1 ligne (oui, c'est l'équivalent de MsgBox())
Code : Tout sélectionner
MessageRequester("Hello", "World")
Code : Tout sélectionner
OpenConsole()
Print("Hello World")
Input()
Tester un langage, c'est au moins une centaine d'heures et la lecture de la doc. Au moins une première fois en diagonale (PDF 2135 pages).
https://www.purebasic.com/french/support.php
Re: Pur débutant en PURE BASIC.... aide images/sprites
pour avoir utilisé les deux (depuis blitz 2D) et de manière très assidue , la syntaxe du purebasic n'est pas plus complexe que celle du blitz, elle est différente mais pas vraiment plus complexe.
mais il est vrais que de passer de blitz a purebasic ça demande de remettre a plat certaines choses, tout comme l'inverse.
mais il est vrais que de passer de blitz a purebasic ça demande de remettre a plat certaines choses, tout comme l'inverse.
Re: Pur débutant en PURE BASIC.... aide images/sprites
Merci pour vos com'
Par contre je n'ai pas pigé comment afficher une image avec une couleur transparente (le noir 0,0,0 par exemple)
La doc est un peu confuse sur ce point. Est ce que quelqu'un peut l'expliquer ?
pour une image PNG que j'ai chargé en mémoire
drawimage (imageID(1),100,100)
je veux que le contour noir soit transparent pour laisser apparaitre le décor...
j'ai tenté :
drawingmode (PB_2DDrawing_Default) et d'autres sans succès
et comment definir que c'est la couleur 0,0,0 qui est transparente ?
merci à vous !
Par contre je n'ai pas pigé comment afficher une image avec une couleur transparente (le noir 0,0,0 par exemple)
La doc est un peu confuse sur ce point. Est ce que quelqu'un peut l'expliquer ?
pour une image PNG que j'ai chargé en mémoire
drawimage (imageID(1),100,100)
je veux que le contour noir soit transparent pour laisser apparaitre le décor...
j'ai tenté :
drawingmode (PB_2DDrawing_Default) et d'autres sans succès
et comment definir que c'est la couleur 0,0,0 qui est transparente ?
merci à vous !
Re: Pur débutant en PURE BASIC.... aide images/sprites
Salut.
Tu charges ton sprite normalement.
Ensuite dans la boucle d'affichage tu utilises :
Pour cela il faut que ton sprite soit BIEN précis niveau séparation des couleurs.
Je suppose que tu veux utiliser des spritesheets existant.
Exemple vite fait.
Mon sprite est un carré noir avec un packman dedans. je l'ai fait en png 16 couleurs
à l'affichage sur fond (rouge pour l'exemple) le noir n'est pas visible.
Tu charges ton sprite normalement.
Ensuite dans la boucle d'affichage tu utilises :
Code : Tout sélectionner
TransparentSpriteColor(#TONSPRITE,$TACOULEURDECONTOUR) ; attention couleur GBR ET PAS RGB
DisplayTransparentSprite(#TONSPRITE,x ,Y )
Je suppose que tu veux utiliser des spritesheets existant.
Exemple vite fait.
Mon sprite est un carré noir avec un packman dedans. je l'ai fait en png 16 couleurs
à l'affichage sur fond (rouge pour l'exemple) le noir n'est pas visible.
Code : Tout sélectionner
InitSprite() : InitKeyboard()
UsePNGImageDecoder()
;fenêtre
Lfenetre=GetSystemMetrics_(#SM_CXSCREEN) ; recup la resolution de l'ecran en cours
Hfenetre=GetSystemMetrics_(#SM_CYSCREEN)
If Lfenetre>800 And Hfenetre>400
Lfenetre=800 : Hfenetre=400
EndIf
Lscreen=Lfenetre : Hscreen=Hfenetre-20
centre=Lscreen/2-LPalette/2 ; on trouve le centre de la fenetre
OpenWindow(0, #PB_Ignore, #PB_Ignore, Lfenetre, Hfenetre, "Window", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(0, 0, Hfenetre-20, 100, 20, "Quitter")
OpenWindowedScreen(WindowID(0), 0, 0, Lscreen, Hscreen, 0, 0, 0)
If LoadSprite(0,"D:\OneDrive\Documents\PB\_Ressources\spritepac.png",0) ; CHARGE TON SPRITE
Else
Debug "ça chie au chargement du sprite"
EndIf
;{- Event loop
Repeat
Event= WindowEvent ()
Delay (2)
ExamineKeyboard ()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Repeat
event = WindowEvent()
Select event
Case #PB_Event_Gadget
If EventGadget() = 0
End
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
Until event = 0
;---AFFICHAGE---- ( a la fin , c'est plus clair !!! )
TransparentSpriteColor(0,$0) ; La couleur $0 pour le noir
DisplayTransparentSprite(0,150,150 )
FlipBuffers()
ClearScreen(#Red) ; fond d’écran en rouge
ForEver
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Pur débutant en PURE BASIC.... aide images/sprites
les sprites j'ai réussi sans probleme... c'est avec les images que je n'ai pas reussi (drawimage)
ou tu vas me répondre qu'il faut absolument tout passer en sprite ? meme le decor de fond ?
ou tu vas me répondre qu'il faut absolument tout passer en sprite ? meme le decor de fond ?
Re: Pur débutant en PURE BASIC.... aide images/sprites
regarde du coté de DrawAlphaImage()
il faut que l'image aie un canal alpha bien sur (png avec transparence par exemple)
il faut que l'image aie un canal alpha bien sur (png avec transparence par exemple)
Re: Pur débutant en PURE BASIC.... aide images/sprites
Exactement.
Avant ton displaysprite tu affiches ton image png transparente.
Tu n'auras pas l'équivalent d'un TransparentSpriteColor pour une image.
Avec une image détouré à l'arrache et le meme code ça donne :
Avant ton displaysprite tu affiches ton image png transparente.
Code : Tout sélectionner
StartDrawing(ScreenOutput())
DrawAlphaImage (ImageID(1),0,0,255)
StopDrawing()
Avec une image détouré à l'arrache et le meme code ça donne :
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Pur débutant en PURE BASIC.... aide images/sprites
tu peux aussi dessiner sur un sprite au lieu de l’écran courant.
puis afficher le sprite a comme fond d’écran.
ce sera peut être plus rapide.
tu peux aussi évidement utiliser uniquement des sprites.
puis afficher le sprite a comme fond d’écran.
ce sera peut être plus rapide.
tu peux aussi évidement utiliser uniquement des sprites.