Page 1 sur 2
multitache plien ecran "CA MARCHE "
Publié : sam. 24/juil./2004 14:36
par Marcus
j'y croyais plus , enfin trouvé
Code : Tout sélectionner
; ---------Multitache plien ecran Marcus.Zone 2004 ---------------
InitSprite() :InitSprite3D(): InitKeyboard() : InitMouse()
Global xx.f ,p.f ,relire.b
xx=0 :p = 2: relire=0
Declare Charger_sprites()
OpenScreen(640, 480, 32, "poker")
While Quit = 0
ExamineKeyboard()
If IsScreenActive() And ScreenDeActivated = #False
If relire =0 : Charger_sprites() : relire =1 : EndIf
ClearScreen(0, 80, 0)
If Start3D()
xx + p
If xx > 359 : xx=0 : EndIf
RotateSprite3D(1, xx, 0)
DisplaySprite3D (1, 80, 75, 255)
Stop3D()
EndIf
DisplaySprite(1,400,100)
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor(255,255,255)
Locate(110,240)
DrawText("Sprite3D")
Locate(430,240)
DrawText("Sprite2D")
FrontColor(0,0,255)
Locate(10,10)
DrawText("Test multitache plien écran 'Marcus.Zone 2004' ")
Locate(10,400)
FrontColor(255,255,0)
DrawText("TAB+ALT pour retour windows ")
Locate (10,440)
DrawText("puis Click sur 'Poker' dans la barre des tache pour revenir ici !")
StopDrawing()
ElseIf IsScreenActive() And ScreenDeActivated = #True
ScreenDeActivated = #False
relire =0
Else
ScreenDeActivated = #True
Delay(10)
EndIf
FlipBuffers()
If KeyboardPushed(#PB_Key_Escape) : Quit = 1 : EndIf
Wend
End
Procedure Charger_sprites()
LoadSprite(1, "poker.bmp", #PB_Sprite_Texture)
CreateSprite3D(1, 1)
Sprite3DQuality(1)
EndProcedure
sprite:
http://perso.wanadoo.fr/marcus.zone/images/poker.bmp
Merci à tous pour vos remarque qui m'ont incité à chercher encore
Toutes mes excuses à Fred
Oui c'est le Meilleur ton Pure

Publié : sam. 24/juil./2004 15:20
par Flype
génial marcus.
je suis content que tu ai enfin trouvé une réponse à cette #@^¤ de restriction...
ce que tu nous montres là prouve d'ailleurs qu'il ne s'agit pas d'une limitation de pure mais plutot comment bien programmer sur windows...
Publié : sam. 24/juil./2004 15:43
par Patrick88
beuh, si tu garde le alt appuyé après le le alt-tab, l'écran window passe dans la résolution de ton programme et la fenetre de ton app apparait, seul solution tuer poker par le gestionnaire de tâche
patrick
Publié : sam. 24/juil./2004 16:13
par Marcus
bien vu ! effectivemnt tu as raison Patrick
cela n'est pas du à mon code , mais plutot avec tout les pliens ecrans en Pure !
Du travail pour Fred quoi !
ceci dis il faut s'y éterniser sur la touche alt pour retourner ce bug !
mais bon ça fait suer quand m^m

Publié : sam. 24/juil./2004 16:25
par Chris
Tiens, bizarre, sur le mien, ça ne fait pas ça. (XP)
Si je maintiens la touche Alt, ça fait un petit flash ou on voit apparaitre le programme qui tourne sous Windows, (par exemple, l'éditeur de Pure), à chaque fois que j'appuie sur Tab.
Lorsque je relache la touche Alt, le prog en plein écran se met en icône dans la barre de tache, mais sans modifier la résolution de Windows.
Et quand je cliques sur l'icône, le prog plein ecran se réaffiche normalement, et poursuit son éxécution.
Bref, pour moi, ça marche pile-poil.
Bravo, bon boulot
Chris

Publié : sam. 24/juil./2004 16:34
par Chris
Tu as essayé de mettre le FlipBuffer avant le If IsScreenActive(). ?
L'aide dit qu'il faut le mettre avant, j'ai essayé, et je n'ai plus le phénomène de flash.
Le prog plein ecran se réduit directement dans la barre de tache, au lieu d'attendre le relachement de la touche Alt.
Chris

Publié : sam. 24/juil./2004 17:05
par Marcus
non sa fait pareil !
le probleme est que l'icone de la tache n'apparait pas avec les autres dans le fenetre au milieu de l'ecran , celle qui deroule les tab+alt
??
si le jeu a une resolution plus petite que le bureau, on n'a plus acces a la barre des taches qui n'aparait plus a l'ecran car trop basse !
mystere !
desidement on s'en sortira jamais :
j'ai modifié le code suivant ta remarque chris:
Code : Tout sélectionner
; ---------Multitache plien ecran Marcus.Zone 2004 ---------------
InitSprite() :InitSprite3D(): InitKeyboard() : InitMouse()
Global xx.f ,p.f ,relire.b,multitache.b
xx=0 :p = 2: relire=0:multitache=1
Declare Charger_sprites()
OpenScreen(640, 480, 32, "poker")
While Quit = 0
ExamineKeyboard()
FlipBuffers()
multitache = IsScreenActive()
If multitache = 1 And ScreenDeActivated = #False
If relire =0 : Charger_sprites() : relire =1 : EndIf
ClearScreen(0, 80, 0)
If Start3D()
xx + p
If xx > 359 : xx=0 : EndIf
RotateSprite3D(1, xx, 0)
DisplaySprite3D (1, 80, 75, 255)
Stop3D()
EndIf
DisplaySprite(1,400,xx)
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor(255,255,255)
Locate(110,240)
DrawText("Sprite3D")
Locate(430,240)
DrawText("Sprite2D")
FrontColor(0,0,255)
Locate(10,10)
DrawText("Test multitache plien écran 'Marcus.Zone 2004' ")
Locate(10,400)
FrontColor(255,255,0)
DrawText("TAB+ALT pour retour windows ")
Locate (10,440)
DrawText("puis Click sur 'Poker' dans la barre des tache pour revenir ici !")
StopDrawing()
ElseIf multitache = 1 And ScreenDeActivated = #True
ScreenDeActivated = #False
relire =0
Else
ScreenDeActivated = #True
Delay(10)
EndIf
If KeyboardPushed(#PB_Key_Escape) : Quit = 1 : EndIf
Wend
End
Procedure Charger_sprites()
LoadSprite(1, "poker.bmp", #PB_Sprite_Texture)
CreateSprite3D(1, 1)
Sprite3DQuality(1)
EndProcedure
Publié : sam. 24/juil./2004 18:03
par Patrick88
humm , bétement... as tu essayer de desassembler le programme blitz, histoire de voir quel appel à quelle fonction il faisait... voir comment il fait ?
je sais que c'est pas facile, mais si blitz le fait pourquoi pas pb ...
patrick
Publié : sam. 24/juil./2004 18:20
par Chris
Chez moi, ce code marche parfaitement.
La résolution est changée en 640 x 480 quand Poker fonctionne, je retourne bien en 1024x768 après le Alt+Tab quand le prog est minimisé, et l'icone et la barre de taches sont bien visibles.
Le passage en mode "Windows" se fait sans attendre le relachement de la touche "Alt".
Quand je cliques sur l'icone de Poker, il retourne en 640x480, et poursuit son fonctionnement.
C'est le premier code, avec pour seule différence le FlipBuffers() qui est déplacé tout de suite après ExamineKeyboard().
Sans doute une histoire de pilote de carte graphique.
La mienne : GEForce 4 MX420, 64 Mo, résolution 1024x768, en 16 bits
Testé également sur un portable,
Carte ATI Rage AGP 2X, 8 Mo, résolution 1024x768, en 16 bits
Code : Tout sélectionner
; ---------Multitache plien ecran Marcus.Zone 2004 ---------------
InitSprite() :InitSprite3D(): InitKeyboard() : InitMouse()
Global xx.f ,p.f ,relire.b
xx=0 :p = 2: relire=0
Declare Charger_sprites()
OpenScreen(640, 480, 32, "poker")
While Quit = 0
ExamineKeyboard()
FlipBuffers()
If IsScreenActive() And ScreenDeActivated = #False
If relire =0 : Charger_sprites() : relire =1 : EndIf
ClearScreen(0, 80, 0)
If Start3D()
xx + p
If xx > 359 : xx=0 : EndIf
RotateSprite3D(1, xx, 0)
DisplaySprite3D (1, 80, 75, 255)
Stop3D()
EndIf
DisplaySprite(1,400,100)
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor(255,255,255)
Locate(110,240)
DrawText("Sprite3D")
Locate(430,240)
DrawText("Sprite2D")
FrontColor(0,0,255)
Locate(10,10)
DrawText("Test multitache plien écran 'Marcus.Zone 2004' ")
Locate(10,400)
FrontColor(255,255,0)
DrawText("TAB+ALT pour retour windows ")
Locate (10,440)
DrawText("puis Click sur 'Poker' dans la barre des tache pour revenir ici !")
StopDrawing()
ElseIf IsScreenActive() And ScreenDeActivated = #True
ScreenDeActivated = #False
relire =0
Else
ScreenDeActivated = #True
Delay(10)
EndIf
If KeyboardPushed(#PB_Key_Escape) : Quit = 1 : EndIf
Wend
End
Procedure Charger_sprites()
LoadSprite(1, "poker.bmp", #PB_Sprite_Texture)
CreateSprite3D(1, 1)
Sprite3DQuality(1)
EndProcedure
Publié : sam. 24/juil./2004 18:56
par Marcus
chez moi sa merde si l'on satarde avec la touche alt !
as tu testé en maintenant la touche alt et relachant simplement la tab ?
Publié : sam. 24/juil./2004 18:59
par Chris
Oui, pas de problème!
Publié : sam. 24/juil./2004 19:10
par Marcus
mystere ?
je suis avec windows 2000 et toi Patrick ?
Publié : sam. 24/juil./2004 19:59
par Patrick88
j'ai pas reéssayé avec le code de chris, 2 secondes , j'essaye....
hum, idem, si je m'attarde sur la touche tab, ça chiotte...
idem, win2000 sp4 - geforce4 ti 4200
patrick
Publié : sam. 24/juil./2004 21:24
par Flype
aucun pb chez moi avec xp avec la version de marcus et la modif de chris
Publié : dim. 25/juil./2004 1:43
par Marcus
nickel sa marche ,
t'avais raison Chris c'etait le drivers graphique
j'ai mis le derniers nvidia 61.76
Patrick , j'ai aussi win2000 sp4 - geforce4 ti 4200
http://www.touslesdrivers.com/index.php ... _code=5603
Marcus content
le mauvaises langues diront "c'est pas souvent"
