Bonjour à tous,
je souhaiterais apprendre mes petits-enfants à connaître la monnaie, mais j'aurais besoin de connaître comment on peut déplacer des sprites en le glissant avec le bouton de la souris pressé.
Naturellement, et je le regrette beaucoup, je n'ai pas d'ébauche de code, mais je pense que vous avez compris ma démarche et je vous remercie pour votre aide bienveillante.
[Résolu] Comment déplacer un sprite en cliquant dessus
[Résolu] Comment déplacer un sprite en cliquant dessus
Dernière modification par Micoute le lun. 10/juil./2017 20:35, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment déplacer un sprite en cliquant dessus
Code simplifier pour une seule devise
Code : Tout sélectionner
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(0, 0, 0, 0, 0, "FullScreen", #PB_Window_BorderLess | #PB_Window_Maximize)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0))
;Creation de la souris
Mouse = CreateSprite(#PB_Any, 8, 8)
StartDrawing(SpriteOutput(Mouse))
Box(0, 0, 8, 8, #Red)
StopDrawing()
;Creation d'une devise
Euro = CreateSprite(#PB_Any, 128, 64)
StartDrawing(SpriteOutput(Euro))
Box(0, 0, 128, 64, #Yellow)
StopDrawing()
EuroX = 0
EuroY = 0
Repeat
Repeat : Until WindowEvent() = 0
;Background
ClearScreen(RGB(75, 0, 130))
;Affichage devises
DisplaySprite(Euro, EuroX, EuroY)
;Affichage souris en dernier
DisplaySprite(Mouse, MouseX(), MouseY())
;Evenement clavier
If ExamineKeyboard()
EndIf
;Evenement souris
If ExamineMouse()
If MouseButton(#PB_MouseButton_Left)
MousePress = #True
Else
MousePress = #False
EndIf
;Test collision entre souris et devise
If SpriteCollision(Mouse, MouseX(), MouseY(), Euro, EuroX, EuroY) And MousePress = #True
EuroX = MouseX() - SpriteWidth(Euro)/2
EuroY = MouseY() - SpriteHeight(Euro)/2
EndIf
EndIf
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment déplacer un sprite en cliquant dessus
Une idée de ce que ça peut donner avec 3 devises dans un Array de sprites
Code : Tout sélectionner
Structure Devise
sprite.i
nom.S
x.f
y.f
EndStructure
Dim Devises.Devise(2)
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(0, 0, 0, 0, 0, "FullScreen", #PB_Window_BorderLess | #PB_Window_Maximize)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0))
;Creation de la souris
Mouse = CreateSprite(#PB_Any, 8, 8)
StartDrawing(SpriteOutput(Mouse))
Box(0, 0, 8, 8, #Red)
StopDrawing()
;Creation des devises (3 ça ira pour ce test)
Devises(0)\nom = "Euro"
Devises(1)\nom = "Dollars"
Devises(2)\nom = "Yen"
;Creation des sprites associés
For n = 0 To 2
With Devises(n)
\sprite = CreateSprite(#PB_Any, 128, 64)
StartDrawing(SpriteOutput(\sprite))
Box(0, 0, 128, 64, #White)
DrawText(5, 5, \nom, #Black, #White)
StopDrawing()
\x = (150 * n) + 50
\y = 100
EndWith
Next
Repeat
Repeat : Until WindowEvent() = 0
;Background
ClearScreen(RGB(75, 0, 130))
;Affichage devises
For n = 0 To 2
With Devises(n)
DisplaySprite(\sprite, \x, \y)
EndWith
Next
;Affichage souris en dernier
DisplaySprite(Mouse, MouseX(), MouseY())
;Evenements clavier
If ExamineKeyboard()
EndIf
;Evenements souris
If ExamineMouse()
If MouseButton(#PB_MouseButton_Left)
MousePress = #True
Else
MousePress = #False
EndIf
;Test collision entre souris et devises
For n = 0 To ArraySize(Devises())
With Devises(n)
If SpriteCollision(Mouse, MouseX(), MouseY(), \sprite, \x, \y) And MousePress = #True
\x = MouseX() - SpriteWidth(\sprite)/2
\y = MouseY() - SpriteHeight(\sprite)/2
Break
EndIf
EndWith
Next
EndIf
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Comment déplacer un sprite en cliquant dessus
Un grand merci pour ce partage Falsam
je vais étudié tes codes ils vraiment sont très inintéressant pour apprendre a déplacer un sprite avec la souris
je vais étudié tes codes ils vraiment sont très inintéressant pour apprendre a déplacer un sprite avec la souris
Re: Comment déplacer un sprite en cliquant dessus
Merci falsam, c'est absolument fabuleux, surtout le dernier, car si je ne vais pas utiliser plusieurs devises, j'utiliserai quand même plusieurs pièces et billets différents.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !