Bonjour,
Si j'avais un marteau......... j'aurais déjà pulvérisé mon écran!
J'ai fini le code de l'application N°2 dont j'ai parlé plus haut. En deux jours, j'ai écrit l'analyse fonctionnelle, écrit toutes les équations, debuggé leur fonctionnement, et atteint un résultat oprérationnel de ma méthode de profilage de fly-cutter pour restauration d'engrenages d'horloges.
Par contre, depuis deux autres jours je galère pour obtenir un fonctionnement fiable du code dans la gestion des ressources, sans succès.
J'ai déjà expliqué plus haut que je n'arrive pas à récupérer les données de la souris.
J'ai donc décidé d'utiliser les touches du clavier. Mais là aussi "c'est un coup je te vois, un coup je ne te vois pas".
Une touche qui est détectable dans une tâche ne l'est pas dans une autre, bien que j'ai fermé correctement la tâche précédente. Il y a des touches qui fonctionnent toujours (X par ex) d'autres en fonction de l'attraction de la Lune comme la touche A.
DYSFONCTIONNEMENTS:
Pour être concret j'ai fait un bout de code d'essai en pompant sur un code que m'a passé Dobro dans un post plus haut.
Quand j'appuie sur la touche X j'ai bien des X qui s'impriment dans la console, comme prévu.
Quand j'appuie sur la touche Q je n'ai rien qui s'imprime dans la console.
Les flèches Up et Down sont inopérantes.
Par contre les flèches Right et Left provoquent un déplacement en diagonale selon la ligne verte (comme dans le roman du même nom).
Mais dans le code que m'a passé Dobro les 4 flèches fonctionnent normalement.
Heureusement que ce n'est pas un système électrique, parce que tout aurait déjà pris feu.
Si je ne trouve pas un manuel de PureBasic qui explique un peu plus en détails toutes les initialisations je vais être obligé de rechercher un Basic plus basique pour moi.
Merci de votre aide.
SULREN
Code : Tout sélectionner
#dobro=1
#Police=1
#Sprite=1
OpenConsole()
InitKeyboard()
Resultat = InitMouse()
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
WindowID = OpenWindow(1, 0, 0,600, 600, "hello", #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered)
WindowID = WindowID(1)
result = OpenWindowedScreen(WindowID,0,0, 600,600, 1, 0,0)
; ***********************************
xc=200 :yc=200
; ***********************************
Repeat
Event=WindowEvent()
ExamineKeyboard()
ExamineMouse()
If MouseButton(#PB_MouseButton_Right)
;Le clic bouton droit fera quitter !
End
EndIf
If KeyboardPushed(#PB_Key_Right)
xc=xc+1
EndIf
If KeyboardPushed(#PB_Key_Left)
xc=xc-1
EndIf
If KeyboardPushed(#PB_Key_Up)
yc=yc-1
EndIf
If KeyboardPushed(#PB_Key_Down)
yc=yc+1
EndIf
If KeyboardPushed(#PB_Key_X )
PrintN("XXXXXXXX")
EndIf
If KeyboardPushed(#PB_Key_Q )
PrintN("QQQQQQQQ")
EndIf
StartDrawing(ScreenOutput())
; ************* text *****************
DrawText(10, 2, "les fleches bougent l'ensemble :",RGB(0,255,0))
; ********** dessins ************************
DrawingMode(#PB_2DDrawing_Outlined )
Circle(xc,xc,100,(RGB(255,0,0)))
LineXY(100, 100, 300,300, RGB(0,255,0))
; ******************************************
WindowEvent()
StopDrawing()
WindowEvent()
FlipBuffers():; affiche l'ecran
ClearScreen(RGB(0, 0, 0)) :;efface l'ecran
Until Event=#PB_Event_CloseWindow
Il faut savoir rire dans la tragédie et être profond dans la joie.