Quelques questions générales ...
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Quelques questions générales ...
Bonjour,
J'ai trois petites questions à vous poser :
1 Comment savoir si on est dans un OpenScreen ou dans un OpenWindowedScreen ?
2 Comme je suis en train de faire une console (type Quake screenshot1 - screeenshot2), j'aurais besoin de savoir si il y ait mieux de gérer les évènements via callback ou via thread pour un jeu ?
3 Sinon possibilité de faire un callback dans un OpenScreen?
Merci & A bientot
J'ai trois petites questions à vous poser :
1 Comment savoir si on est dans un OpenScreen ou dans un OpenWindowedScreen ?
2 Comme je suis en train de faire une console (type Quake screenshot1 - screeenshot2), j'aurais besoin de savoir si il y ait mieux de gérer les évènements via callback ou via thread pour un jeu ?
3 Sinon possibilité de faire un callback dans un OpenScreen?
Merci & A bientot
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
-Bonne question1 Comment savoir si on est dans un OpenScreen ou dans un OpenWindowedScreen ?

Code : Tout sélectionner
Proc OpenWindowedScreen(param)
OpenWindowedScreen(blabla)
Is_OpenWindowedScreen.b = 1
endproc
Perso, j'utilise rarement les threads et encore moins les callbacks pour les évenements. mais peut être qu'ils ont leurs avantages.2 Comme je suis en train de faire une console (type Quake screenshot1 - screeenshot2), j'aurais besoin de savoir si il y ait mieux de gérer les évènements via callback ou via thread pour un jeu ?
Aucune idée3 Sinon possibilité de faire un callback dans un OpenScreen?

@++
Mauvaise réponse ^^Cpl.Bator a écrit :-Bonne question1 Comment savoir si on est dans un OpenScreen ou dans un OpenWindowedScreen ?moi , je ferais une fonction qui appelle l'une d'elle, et lors de l'appel de ma fonction, tu définis une variable 1 ou 0.
Faut toujours partir du principe qu'il n'a pas accès à cette info, sinon je pense qu'il ne demanderais pas
Code : Tout sélectionner
Procedure IsScreenWindowed()
!Extrn _PB_Screen_Windowed
!MOV eax, dword [_PB_Screen_Windowed]
ProcedureReturn
EndProcedure
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Merci DrDri, c'est ce qu'il me fallait.
SInon quelqu'un pour la question 2 ?
SInon quelqu'un pour la question 2 ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
bah tu peux faire comme tu veux... si tu crée une callback il faut utiliser la fenêtre de l'écran (je peux te faire une proc pour le plein écran et pour le mode fenêtré tu gères)
sinon un thread, pourquoi pas... tu peux aussi gérer directement ca dans ta boucle principale, en fait c'est plutôt l'affichage que je gère dans un thread moi ^^
Dri
sinon un thread, pourquoi pas... tu peux aussi gérer directement ca dans ta boucle principale, en fait c'est plutôt l'affichage que je gère dans un thread moi ^^
Dri

-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Question 2
Tu fais réference a des jeux comme Quake, ou tu avais ta console, alors que le jeux derrière
continuait a vivre sa vie. Donc deux taches bien distinctes qui s'execute en meme temps.
(meme si bien sur il y a dialogue entre les deux)
Donc dans ce cas je dirais les Threads. Seul le partage des ressource peut parfois poser
des soucis, mais rien d'insurmontable...
Je vois plutot les callback comme une possibilité de permettre a un utilisateur de définir
ses propre procedures, qui seront appelées par exemple par une API, dans le cas de certaines
action précises, comme des sprite qui entrent en collisions et qui appeleraient une procedure
particulière qui aura été définis par les concepteurs du jeux. Mais leur execution restent
synchrone, et donc il faut judicieusement les employer...
Tu fais réference a des jeux comme Quake, ou tu avais ta console, alors que le jeux derrière
continuait a vivre sa vie. Donc deux taches bien distinctes qui s'execute en meme temps.
(meme si bien sur il y a dialogue entre les deux)
Donc dans ce cas je dirais les Threads. Seul le partage des ressource peut parfois poser
des soucis, mais rien d'insurmontable...
Je vois plutot les callback comme une possibilité de permettre a un utilisateur de définir
ses propre procedures, qui seront appelées par exemple par une API, dans le cas de certaines
action précises, comme des sprite qui entrent en collisions et qui appeleraient une procedure
particulière qui aura été définis par les concepteurs du jeux. Mais leur execution restent
synchrone, et donc il faut judicieusement les employer...
Force et sagesse...
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Merci Dri & TMykeDr. Dri a écrit :bah tu peux faire comme tu veux... si tu crée une callback il faut utiliser la fenêtre de l'écran (je peux te faire une proc pour le plein écran et pour le mode fenêtré tu gères)
sinon un thread, pourquoi pas... tu peux aussi gérer directement ca dans ta boucle principale, en fait c'est plutôt l'affichage que je gère dans un thread moi ^^
Dri
@Dri : Penses tu qu'il est possible d'avoir dans une boucle principale, le cube tournant et dans un thread, l'affichage d'un sprite(3D) sur la pièce 3D (comme ici) ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
je dirais que oui c'est possible mais je sais pas si c'est "safe"
bah sinon je vais te dire comment je gère moi
boucle principale :
réception des évennements
thread gestion :
réception des entrées clavier/souris/joystick
calculs divers selon les entrées (déplacements collisions etc)
joue les sons selon les évennements (son déplacement, son collision, son explosion etc)
thread video :
affiche en boucle selon l'état du programme et joue
Dri
bah sinon je vais te dire comment je gère moi
boucle principale :
réception des évennements
thread gestion :
réception des entrées clavier/souris/joystick
calculs divers selon les entrées (déplacements collisions etc)
joue les sons selon les évennements (son déplacement, son collision, son explosion etc)
thread video :
affiche en boucle selon l'état du programme et joue
Dri
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Aurais tu un code sur ce que j'ai proposé ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
UNe scene 3D dans la boucle principale... et un sprite 3D d'afficher dans le thread..., si cela ne t'ennuie pas.
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net