je voudrais savoir si il est possible de metre des fct dans une structure:
je montre un exemple pour etre plus clair.
"
struct XXX
{
int bla;
float bli;
void fct(x,y) {....};
};
"
et ensuite de faire appel a cette fct de la maniere suivante.
"
struct XXX variable;
variable.fct(a,b);
"
ou bien faut-il que je me debrouille autrement merci.
Merci pour les sources. Tu sais les debutants s´en fouttent de la qualité du code, ils veulent des examples pour s´inspirer. Peu importe la qualité du code ( et puis les variables globales c´est pas bien mechant, on en a tous fait un jour).
je voudrais savoir si il est possible de
metre des fct dans une structure
C´est exactement le principe du C++ ![]()
D´ailleurs pour la petite histoire, " struct" en C s´est transformé en " class" en C++. Une classe c´est un object avec des données et des fonctions. On peut aussi dire que c´est une struct avec des fonctions.
Par contre en C c´est pas possible, faut que tu passes en C++. Fondementalement ca change rien du tout pour toi de compiler en C++ ( tu peux compiler du pure C en C++). Tu peux garder ton programme en C et te definir une classe XXX ( de maniere identique a ce que tu as ecrit avec ton struct, faut juste ajouter un constructeur et un destructeur ( vides dans ton cas, mais ils doivent etre la) et hop.
je t´ai envoyé le mail...
sinon je reviendrait lundi pour te poser des questions sur les
" fct dans les structures"
car c´est le week end et je vais glander un peu
ca me changera de la fac(
)
Mail bien recu. Merci.
Je vais regarder ca et je le mettrais en ligne sur la page NGCK, avec un autre casse brick fait par un NGCKman aussi ![]()
voici les structures auxquelles j´ai pensé pour mon nouveau jeu.
-jeu de shoot horizontal
- une page d´intro ou on choisit l´avion qu´on veut
- un gameplay a la " IKARUGA" un des jeux sortit a la toute fin ( meme si elle est eternelle) de la dreamcast
- deux " camps" blanc et noir les noirs ne peuvent toucher que les blancs et inversement
( cependant les ennemis ne se touchent pas entre eux)
- plusieurs type d´ennemis ( volant et roulant au sol) / / ici je pense que la meme structure marcherai pour tt les types d´ennemis ; voir plus bas.
- possibilité de changer de couleur ( donc de camp) en appuyant sur une touche.
- le joueur est soumis aux meme pb que les ennemis: il ne peut toucher les ennemis de sa couleur.
- possibilité d´utiliser une BOMBE qui tue tt le monde.
- chaque avion a ses propre caracteristiques de tir, vitesse, hp, . ..
- les missiles ( voir struct avion) seraient des " bombe" qui tombent a la verticale et explose au sol ou au contact d´un ennemis.
1) un tableau d´ENNEMIS
2) un tableau de TIR ENNEMIS
3) un tableau de TIR DU JOUEUR
4) avancement du jeu ( qui fait apparaitre les ennemis au fur et a mesure du jeu)
5) données du joueur ( de type struct avion)
6) nb de vies,pts, et autre variables comune att les jeux.
============================================
struct tir
{
unsigned char couleur;// 1 ou 0
float x,y; / /position
float dir; / / angle de tir
float vit; / /vitesse du tir
};
==================================================
=========
stuct avion / / avion cotrolé par le joueur
{
float x,y; / / position sur l´ecran
unsigned char couleur; / / 1 ou 0
int dernier_tir; / / nb d´image depuis le dernier tir
unsigned char hp; / / nb de point de vie
unsigned char type; / /n° du sprite a afficher
unsigned char bouclier; / /1 ou 0
unsigned char bombe; / / 1 ou 0
unsigned char missile; / / nb de missile
int freq; / / fréquence des tir ( en images)
int missil_max; / /nb max de missil transportable
float vitesse;
void tir ( )
{
instruction permetant de créer ( metre dans un tableau les nouveaux tirs)
}
}
============================================
struct ennemis
{
float x,y; / / position sur l´ecran
unsigned char couleur; / / 1 ou 0
int dernier_tir; / / nb d´image depuis le dernier tir
unsigned char hp; / / nb de point de vie
unsigned char type; / /n° du sprite a afficher
void trajectoir ( &,&)
{
Divers instruction changeant les coordonées
( sinusoïde,hyperbole,...)
}
void tir ( struct tir tab[NB_TIR])
{
instruction permetant de créer ( metre dans un tableau les nouveaux tirs)
}
}
==================================================
=============
voila je pense que ça devrait me suffir pour commencer a ecrire le programme
j´utilise des " unsigned char" car le prof de C nous a dit que le type booléen n´existait pas en C et que " unsigned char" servait a stocker un nb entre 0 et 255 et que c´était le type qui prend le moins de place en memoire.
si les choix de mes types ne sont pas les plus pertinent merci de me le faire savoir.
C´est tout un programme ton projet. Fait bien attention a decrire le maximum de truc avant de commencer et a ecrire sur papier l´architecture de ton programme. Car si tu commence direct par le code, tu ne verra plus jamais ton programme " de loin" et au final ca va etre du n´importe quoi ( ca arrive a tous les programmeures ca, enfin les mauvais
)
Je te conseil d´avancer par etape. La description du jeu telle que tu l´a faite, fait peur, car il y a beaucoup de choses. Pourquoi ne pas segmenter le probleme. Version1 : Juste un vaisseau joueur. Version 2 : Un vaisseau joueur qui tire, Version 3 : Vaisseaux enemis, Version 4 : Vaisseaux Enemis tir egalement. Version5 : On peut changer de couleur, etc , etc . .. Ca aide beaucoup a avancer plus vite ce genre de progression.
Sinon pour les bool/char, tout est permis.
Moi je fais un int. Ca prends plus de place memoire, mais c´est plus rapide a traiter sur les processeur modernes. ( Le processeur doit faire plusieurs operation pour acceder a un char).
merci de répondre si vite.
je prend note de ta remarque sur les bool/char.
et je vais metre des int comme tu dis car je n´ai pas de pb de memoire mais plutot de vitesse.
>>Pourquoi ne pas segmenter le probleme. Version1 : Juste un vaisseau joueur. Version 2 : Un vaisseau joueur qui tire,
ca tombe bien car en attendant ta réponse j´ai commencer a programer ( pour le moment tt été sur papier) et j´ai fait une premiere version qui gere 1 avion qui bouge et un fond qui défile
et je pensais justement a le faire tirer.
pour le moment j´en ai beaucoup plus sur feuille ( 2pages) que sur mon prog ( 15-20 lignes)
Tu as la bonne methode. Maintenant comme on dit : " Yapuka"
salut a tous
le lien marche pas chez moi ( sauf le dernier )
bon alors apres deux jours de programation assez intenses ( jusqu´a 5h30 lundi soir) j´ai fini la plupart des fonctions de base de mon jeu de shoot.
les colisions entre tirs et unitées fonctionnent impecable
les mvt du joueur et des ennemis aussi.
de meme pour le changement de couleur.
il manque plus que la colision direct entre joueur et ennemis.
ensuite il faudra que je fasse un truc pour faire venir les ennemis par vague successives mais je ne vois pas du tout commen faire pour le moment.
je vous donne une démo contenant:
-1 avion ( les 2 autres sont pres mais je n´ai pas de sprite)
-2 type d´ennemis ( je vais en faire d´autres)
- gestion des couleur.
tt est expliqué dans le fichier . txt donné avec le jeu.
j´ai aussi fait une bombe mais elle n´est pas utilisable dans la démo ( je ne lui ai pas affecté de touche)
les avion en haut de l´ecran symbolise la vie restante ( 1 avion=100 hp).je sais ca fait tres moche mais c´était juste pour voir si mon systeme de perte/gain de vie marchait.
le joueur regagne de la vie en se faisant toucher par les tir ennemis de sa couleur et en perd sinon.
le joueur ne peut toucher que les ennemis qui ne sont pas de sa couleur.
le jeu redemare tt de suite a la mort du dernier ennemis ou du joueur(ce qui permet de ne pas redemarer la demo tt le temp).
Il y a un truc bizard en haut a gauche de l´écran; un sprite de camion qui apparait de temps en temps, je ne sait pas d´ou il vient et je n´arrive pas a le faire partir. ? ???
pour le moment le jeu est super confus(bcp de tir)
mais c´est juste pour voir si ca rame ( et puis ca me fait marrer)
je vous met le lien qui je l´espere va marcher ( car j´ai pas mal de pb de serveur en ce moment...)
http://www.info.univ-angers.fr/pub/letouzey/
ou
http://www.info.univ-angegers.fr/pub/letouzey/shoot.zip
Wha mortel . ..
T´as bien bossé.
Je suis imprésionné par la capacité du moteur NGCK
, mais pour moi j´ai un ecran 800x600, donc pense a moi pour faire le jeu et fais un version 800x600 ![]()
NGCK n´est pas vraiment un moteur. C´est un petit programme qui fourni des fonctions trés simplifiées pour debutter ( genre AfficheCarre). Quand quelqu´un a terminé la methode complete NGCK, il peut ensuite bidouiller le NGCK pour creer ces propres fonctions. C´est ce qu´a fait guyver2.
C´est une sorte d´introduction a une lib graphique ( SDL ou GaeIncubator suivant les versions de NGCK).
Lapintade > > Quel sont les autre version appart le volume light(easy).
J´ai fait que la version " easy". Je voulais faire la suite, mais je me rends compte qu´aprés avoir fait tous les exos, les " eleves" arrivent a voler de leur propre ailes ( en faisant un cass brique ou autre chose). Donc pas besoin d´un volume supplementaire. ( ou alors si j´ai beaucoup de demande je le ferais, mais pour le moment c´est pas le cas).
je suis bien content que ca vous plaise ! !!
=>pandamark
le jeu EST DEJA en 600*800
sinon c´est juste une version d´essais(la versin finale sera en plein ecran)
je me suis rendu compte en essayant ce matin que le vaisseau rouge ne pouvait pas mourir donc je vais revoir ca.
j´ai trouvé comment utiliser les autres touche du clavier donc je vais pouvoir remetre la bombe.
dans une deuxiemme version qui devrait etre dispo cet aprem vers 18H.
par contre vous avez du remarquer que le principal defaut du jeu et son manque total de classe donc ( étant donné que je n´ai absolument aucun talent de graphiste) je fai appel a vous si possible pour m´envoyer des sprites d´avions ou d´ennemis ( 50*50px max) en blanc et noir ( ou juste une couleur et je ferais un negatif. merci
je metrais cet aprem
guyver2 > > J´ai réussis à battre le vaisseau rouge, mais il a fallu que je sois à la couleur opposé du vaisseau(blanc).
Je regarde ce soir dans ma collection de sprites...
" son manque total de classe"
non au contraire je le trouve super ![]()
http://spriting.simgames.net/NSA/Sheets/adv2as.gif ici tu trouveras des avions de toute couleur et la http://spriting.simgames.net/NSA/Sheets/adv2.gif des vehicule sur terre tous d´advance wars ![]()