Page 1 sur 1

Bugs Examinemouse() avec Windowopenscreen sur un GadgetID

Publié : ven. 06/juil./2007 14:02
par Thyphoon
Je ne sais pas si c'est vraiment un bug ou pas... je m'explique.
J'ai trouvé sur le forum anglais une astuce pour redimensionner un screen dans une fenêtre sans avoir a tout recharger les sprites.

IL s'agit d'ouvrir le screen dans un ContainerGadget plutôt que directement dans la fenêtre. Ainsi on redimensionne le Gadget en même temps que la fenêtre. ça marche super sauf qu'apparement la commande ExamineMouse() ne fonctionne plus correctement.

Dans la notice il est marqué d'utilisé un WindowID alors je ne sais pas si l'utilisation d'un GadgetID est finalement une erreur ou pas ...

Code avec l'utilisation de GadgetID (la souris ne fonctionne pas)

Code : Tout sélectionner

#Main=0

#Main_ScreenContainer=1
InitSprite()
InitMouse()
InitKeyboard()
OpenWindow(#Main,0,0,800,480,"PureArcade Skin Editor",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget)
CreateGadgetList(WindowID(#Main))
ContainerGadget(#Main_ScreenContainer,20,20,WindowWidth(#Main)-50,WindowHeight(#Main)-50)
OpenWindowedScreen(GadgetID(#Main_ScreenContainer),0,0,800,480,0,0,0)
;WindowID(#Main)
CloseGadgetList()


Repeat
  ClearScreen(0)
  StartDrawing(ScreenOutput())
  ExamineMouse()
  ExamineKeyboard()
  Line(MouseX(),MouseY(),30,0,#White)
  Line(MouseX(),MouseY(),0,30,#White)
 
  StopDrawing()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)

Code avec l'utilisation de WindowID (la souris fonctionne)

Code : Tout sélectionner

#Main=0

#Main_ScreenContainer=1
InitSprite()
InitMouse()
InitKeyboard()
OpenWindow(#Main,0,0,800,480,"PureArcade Skin Editor",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget)
CreateGadgetList(WindowID(#Main))
ContainerGadget(#Main_ScreenContainer,20,20,WindowWidth(#Main)-50,WindowHeight(#Main)-50)
OpenWindowedScreen(WindowID(#Main),0,0,800,480,0,0,0)
;GadgetID(#Main_ScreenContainer)
CloseGadgetList()


Repeat
  ClearScreen(0)
  StartDrawing(ScreenOutput())
  ExamineMouse()
  ExamineKeyboard()
  Line(MouseX(),MouseY(),30,0,#White)
  Line(MouseX(),MouseY(),0,30,#White)
 
  StopDrawing()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)

Publié : mar. 10/juil./2007 8:48
par Thyphoon
Bon et bien ou ma question est stupide...ou bien personne n'a d'idée :(

Publié : mar. 10/juil./2007 10:53
par Ar-S
Image moi j'ai pas d'idée Image

Publié : mar. 10/juil./2007 11:30
par Thyphoon
Ar-S a écrit :Image moi j'ai pas d'idée Image
Merci d'avoir jeté un oeil en tout cas :P

Publié : jeu. 12/juil./2007 10:08
par Niffo
Mais pourquoi ne pas ouvrir le "WindowedScreen" sur la fenêtre ?

Publié : jeu. 12/juil./2007 11:16
par Thyphoon
Tout simplement pour pouvoir redimensionner la fenêtre sans avoir a tout recharger les sprites a chaque redimensionnement ! :P
tu comprends ?