Page 1 sur 1

curseur souris

Publié : sam. 13/oct./2007 17:08
par venom
bonjour,

voila sa va paraitre peut etre un peut bete mais bon j'ai fait ceux-ci :

Code : Tout sélectionner

InitMouse()
InitSprite() 
InitKeyboard()

If  OpenScreen(800, 600, 32, "test grille")
  If CreateImage(0, 800, 800)
    If StartDrawing(ImageOutput(0))
      
      For a = 0 To 800 Step 10
       Line(a, 0 , 0, 800, RGB(0,0,255))
       Line(0, a, 800, 0, RGB(0,0,255))
      Next 
      StopDrawing()
      
    EndIf
  EndIf 
  CreateGadgetList(ScreenID())
    ImageGadget(0, 0, 0, 0, 0, ImageID(0))

  Repeat
    
ExamineKeyboard()
     
  Until KeyboardPushed(#PB_Key_Escape)
 EndIf 
facile :D .

mais comment faire pour déplacer un curseur de souris par dessus des lignes :? la est ma question :oops: .
car j'y arrive mais c'est soit l'un ou l'autre :cry: mais pas les deux en meme temps
d'avance merci.



.@++

Publié : sam. 13/oct./2007 17:18
par lionel_om
Je ne comprend pas trop la question... Tu veux un genre de SetMouseX/Y() ?
Dans ce cas, tu cache la souris, tu affiche un sprite pour la remplacer et tu calcules les nouvelles coordonnées ainsi :

Code : Tout sélectionner

MouseX = Mouse()
MouseY = MouseY()
MouseX = MouseX - MouseX%10
MouseY = MouseY - MouseY%10
Et la tu affiche ton sprite souris avec ces deux coordonnées

Lio :wink: (espérant avoir répondu juste !)

Publié : sam. 13/oct./2007 17:31
par venom
je t'avoue que je ne comprend pas bien le code que tu m'a fournie mais je ré explique :wink:

la quand tu lance le code tu a une suite de ligne horizontale et une vertical .
d'accord :wink: .

et bien je soiuhaiterais que ces lignes fasse un effet de font donc que j'ai un curseur qui se balade devant et sur les lignes :wink: .
ex:

Image :wink:


@++

Publié : sam. 13/oct./2007 18:09
par case
tu veux que le curseur soit toujours au dessus des lignes ?
dans ce cas dessine le en dernier juste avant le flipbuffers

Publié : sam. 13/oct./2007 22:55
par RV
@venom

Quand tu es en mode écran (OpenScreen), sers-toi des sprites plutôt que des ImageGadget qui sont plus réservés au mode fenêtre (OpenWindow). :wink:

D'ailleurs je ne savais pas qu'on pouvait afficher un ImageGadget dans un Screen! 8O

J'ai dessiné un curseur bidon tu verras mais tu peux le remplacer par un curseur que tu as déjà...

Ceci répond à ta question?

Code : Tout sélectionner

InitMouse() 
InitSprite() 
InitKeyboard() 

If  OpenScreen(800, 600, 32, "test grille") 
  
  ;Grille de fond
  If CreateSprite(0, 800, 800)                ;je crée un sprite 0
    If StartDrawing(SpriteOutput(0))          ;je demande à dessiner dessus
      For a = 0 To 800 Step 10                ;ta grille...
        Line(a, 0 , 0, 800, RGB(0,0,255))     ;...
        Line(0, a, 800, 0, RGB(0,0,255))      ;...
      Next                                    ;...
      StopDrawing()                           ;j'arrète de dessiner sur le sprite 0
    EndIf 
  EndIf 
  
  ;Curseur
  If CreateSprite(1,10,10,#PB_Sprite_Texture)                     ;je crée un sprite 1
    If StartDrawing(SpriteOutput(1))                              ;je demande à dessiner dessus
      Box(0,0,SpriteWidth(1),SpriteHeight(1),RGB(255,0,255))      ;je dessine un rectangle de coul rose aux dimensions du sprite
      Line(0,0,SpriteWidth(1),0,RGB(255,255,255))                 ;je dessine des lignes...
      Line(0,0,0,SpriteHeight(1),RGB(255,255,255))                ;...qui forment...
      LineXY(SpriteWidth(1),0,0,SpriteHeight(1),RGB(255,255,255)) ;...le 'curseur'
      StopDrawing()                                               ;j'arrète de dessiner sur le sprite 1
      TransparentSpriteColor(1,RGB(255,0,255))                    ;je définis la couleur de transparence du sprite 1 (le rose du dessus)
    EndIf
  EndIf
  
  
  Repeat 
    
    FlipBuffers()                                       ;synchronise l'écran
    ClearScreen(RGB(0,0,0))                             ;efface l'écran pour de nouveau dessiner dessus
    
    ExamineMouse()
    
    DisplaySprite(0,0,0)                                ;je dessine le sprite 0 (non transparent)
    DisplayTransparentSprite(1,MouseX(),MouseY())       ;je dessine le sprite transparent 1 (le rose de ce sprite ne sera pas affiché)
    
    ExamineKeyboard() 
    
  Until KeyboardPushed(#PB_Key_Escape) 
EndIf 

Publié : dim. 14/oct./2007 3:27
par venom
:P cool je t'en remercie bien je vais bien lire ton code pour bien le comprendre puis sa sera good!. :wink:


@++

Publié : dim. 14/oct./2007 8:45
par bernard13
venom , tu crée un editeur?

Publié : dim. 14/oct./2007 9:41
par RV
@venom

Je t'ai ajouté quelques explications...si ça peut t'aider? :wink:

Publié : dim. 14/oct./2007 13:15
par venom
@ bernard13
venom , tu crée un editeur?
non je ne sais pas encore a quoi sa va me servir mais bon on ne sais jamais :wink: .


@ RV
merci c'est simpa de ta part.



@++

Publié : dim. 14/oct./2007 14:36
par venom
a d'accord je comprend mieu des que l'on souhaite refaire un dessin sur le sprite il faut remetre

Code : Tout sélectionner

CreateSprite
:wink: .
c'est bien simpa tes explication merci.


@++

Publié : dim. 14/oct./2007 20:54
par RV

Code : Tout sélectionner

CreateSprite()
Tu crées un sprite

Code : Tout sélectionner

StartDrawing(SpriteOutpout(...))
  ...
StopDrawing() 
pour dessiner dedans! :wink: