fan games creator Index du Forum

fan games creator
Le forum de fan games creator (FGC)

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 



 Bienvenue 
                                                                     revenir au site
Jeu de billard en 2D
Aller à la page: <  1, 2
 
Poster un nouveau sujet   Répondre au sujet    fan games creator Index du Forum -> Equipe de FGC -> Etat des lieux
Sujet précédent :: Sujet suivant  
Auteur Message
ponggb
Membre de l'équipe de FGC

Hors ligne

Inscrit le: 17 Oct 2009
Messages: 86
Localisation: france

MessagePosté le: Lun 12 Avr - 17:47 (2010)    Sujet du message: Jeu de billard en 2D Répondre en citant

Encore une mise à jour :

Nous avons commencé à coder, je viens de finir d'intégrer la fonction Gagne_ou_perdu au jeu, et froogy est en train de coder Menu1, Menu2, et est en train de faire l'interface, j'espère qu'il pourra me passer tout ça dans la soirée pour que je puisse faire les boutons.

Moi de mon côté comme dit plus haut j'ai intégré et légèrement modifié la fonction Gagne_ou_perdu, j'attends les fonctions Menu1 et 2 et j'ai aussi réfléchi au code et aux variables à utiliser et je suis en mesure de vous donner les prototypes des fonctions ainsi que quelques constantes en préprocesseur et un meilleur résumé du fonctionnement du jeu :


les prototypes :

void Menu1 (void);

void Menu2 (SDL_Surface *ecran);

void Controle (int mode_de_jeu, SDL_Surface *ecran);

void IAcontrole (int mode_de_jeu, SDL_Surface *boulesR, SDL_Surface *boulesC, SDL_Rect *posboules,
SDL_Surface *queue, SDL_Surface *ecran);

int Collisions (int mode_de_jeu, SDL_Rect *posboules, SDL_Surface *ecran);

SDL_Surface* Score (int incremente);

void Gagne_ou_perdu (int g_ou_p, int p_ou_t, SDL_Surface *ecran);


les constantes :

#define LIMITE_NORD
#define LIMITE_SUD
#define LIMITE_EST
#define LIMITE_OUEST

Elle sont encore vierge mais ce sont les constantes qui symbolisent les limites de la table de billard (du carré vert plus précisément) et comme cela englobe aussi les poches de la table (qui ne seront donc pas atteintes) il faut encore que je trouve un moyen de les matérialiser par des constantes ou des variables pour que Collisions les reconnaissent et les gèrent.


Le résumé de fonctionnement du jeu :


Tout d'abord il faut vous dire qu'il aura une variable boulesR de type SDL_Surface, symbolisant toutes les boules rouges, et un tableau de 7 variables boulesC de type SDL_Surface, symbolisant toutes les boules non rouges (n'étant pas de la même couleur elles ne peuvent pas être représentées par une seule variable). Ensuite il y aura un tableau de 22 variables posboules (pos pour position) de type SDL_Rect, qui gerera la position de toutes les balles sur le terrain. Toutes les variables cités plus haut seront déclarées dans Controle. Il y aura bien sur d'autre variables (pour la queue, l'image de fond ou les boutons) mais ce n'est pas la peine de les expliquer ici car elles ne comprennent aucune ambiguïtés.


Bon maintenant le résumé :


L'exécutable est allumé : lancement de Menu1 dans le main => dans celui-ci la variable écran est créée, 2 choix, jouer ou quitter, sélectionnables avec les touches 1 ou 2 ou en cliquant dessus (boutons) => si quitter => l'exécutable se ferme, EXIT_SUCCESS, sinon => appel de Menu2 avec envoi de ecran, 4 choix :

1- Partie en 1 contre 1
2- Partie en 1 contre 2
3- Tournoi en 1 contre 1
4- Tournoi en 1 contre 2

sélectionnables avec les touches 1, 2, 3 ou 4 ou en cliquant dessus (boutons), => appel de Controle en lui envoyant ecran et mode_de_jeu (1, 2, 3 ou 4) symbolisant le choix choisi (la numérotation est d'ailleurs identique) => le joueur joue => appel de Collision avec envoi de ecran et de mode_de_jeu (explication par la suite) et de posboules pour les collisions => si point, appel de score avec envoi de 1 (qui incrémentera le score grâce à une condition dans la fonction), => puis on reviendra dans Collision grâce à un "return;" placé à la fin de score (je sais c'est une fonction void mais "return;" de retourne rien) => puis Collisions détermine à qui c'est de jouer => c'est la que ça se complique => en effet dans mon ancien résumé Collision appelé IAcontrole si c'était à l'ordinateur de jouer, ou Controle si c'est au joueur, hors pour appeler IAcontrole il faut lui fournir tout les paramètres demandés dans son prototype, paramètres qui ne seraient qu'encombrant et inutile pour Collision, j'ai donc trouvé une alternative :


Collision détermine à qui c'est de jouer => si c'est à l'ordinateur => collision renvoi 1 (return 1) et on reviens par conséquent dans Controle, à l'endroit ou on avait appelé Collision => juste après cet appel on appellera IAControle (pas besoin de condition puisque si l'on atteint cet appel c'est que Collision aura obligatoirement retourné quelque chose) => ce n'est pas à l'ordinateur de joueur => Collisions ne retournera donc rien (pas de return mis) => et Collision appellera Controle en lui envoyant les paramètres dont la fonction à besoin (mode_de_jeu et ecran, d'où l'envoi de ces variables dans Collisions).


=> si c'est à l'ordinateur de jouer et que la fonction IAcontrole est appelée, celle-ci fera donc comme contrôle, elle fera jouer l'IA puis appellera Collisions qui appellera score si point puis qui retournera dans Collisions qui déterminera à qui c'est de jouer, etc. Collisions aura aussi une condition qui déterminera quand une partie est terminée et qui appellera donc Gagne_ou_perdu en lui envoyant 0 (perdu) ou 1 (gagné) pour son paramètre g_ou_p (gagné_ou_perdu), 0 (partie fini) ou 1 (tournoi non terminé), pour son paramètre p_ou_t (partie_ou_tournoi), et en lui envoyant ecran => Gagne_ou_perdu affichera donc un message en fonction de si l'utilisateur a gagné ou non => pour finir, la fonction appellera Menu1 si la partie est fini => ou Controle si c'est un tournoi et qu'il reste encore des/une partie(s) à faire.


En conclusion nous restons dans une boucle entre Controle, IAcontrole et Collisions qui ne se terminera que par un clic sur la croix rouge ou par la fin de la partie/ du tournoi.


EDIT : Quelques précisions, toutes les images seront des windows bitmap, ont n'aura donc pas besoin de SDL_image par contre on aura besoin de SDL_TTF pour afficher le score et le message de fin par exemple, et aussi, l'écran aura constamment la taille de la table de snooker de birdimol, c'est à dire 740*390 pixels.
_________________


Revenir en haut
Publicité






MessagePosté le: Lun 12 Avr - 17:47 (2010)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Birdimol
Membre de l'équipe de FGC

Hors ligne

Inscrit le: 23 Fév 2010
Messages: 52
Localisation: Charleroi BELGIQUE

MessagePosté le: Mar 13 Avr - 12:33 (2010)    Sujet du message: Jeu de billard en 2D Répondre en citant

Ça fait plaisir de voir que ça avance !  Okay
_________________


Revenir en haut
ponggb
Membre de l'équipe de FGC

Hors ligne

Inscrit le: 17 Oct 2009
Messages: 86
Localisation: france

MessagePosté le: Mar 13 Avr - 13:39 (2010)    Sujet du message: Jeu de billard en 2D Répondre en citant

Oui c'est vrai, même si, encore une mise à jour : froggy ne m'a pas recontacté hier, j'attends encore ses fonctions Crying or Very sad
_________________


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 06:18 (2018)    Sujet du message: Jeu de billard en 2D

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    fan games creator Index du Forum -> Equipe de FGC -> Etat des lieux Toutes les heures sont au format GMT + 1 Heure
Aller à la page: <  1, 2
Page 2 sur 2

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com