Vous n'êtes pas identifié.
C’est mieux ça
Concernant ton pb vérifie si la macro correspondant a DrawBmp de gxlib.h n’est pas en commentaire. Mais je pense que pour le moment ç’est pas un pb.
projectile *pile_projectile = NULL;
unitee_mobile *pile_unitee_mobile = NULL;
Les Listes et les piles sont 2 choses différentes, ça ç’est juste pour éviter les confusions…
Les déclarations des fonx de ton main.c mets les dans un fichier main.h, ça allégera le .c
unitee_mobile *element = malloc ( sizeof ( unitee_mobile ) );
Pas bon, il faut caster le pointeur fournit par malloc() (avec un petit p_ devant les pointeurs, en fin la je chipote..):
unitee_mobile *p_element;
p_element=( unitee_mobile *) malloc ( sizeof ( unitee_mobile ) );
Je te conseille de tester toutes tes fonx les unes après les autres dans la fonction principales.
Et d’afficher le contus de la liste avec des printf(…) pour voir si a chaque pointeurs ou champs sont correctement modifiés.
Tu vois pour l’instant t’a pas besoin d’utiliser les fonx graphique.
Hors ligne
salut
1) la macro correspondant a DrawBmp de gxlib.h n’est pas en commentaire
2)
Les déclarations des fonx de ton main.c mets les dans un fichier main.h, ça allégera le .c
oui mais pour l'instant ça me permet de retrouver les éléments de mes listes et de pouvoir corriger rapidement mes fonctions, mais ne t'inquiète pas j'avais l'intention de le faire après, je mettrais aussi mes déclarations de listes dans ce fichier.
3)
Je te conseille de tester toutes tes fonx les unes après les autres dans la fonction principales.
Et d’afficher le contus de la liste avec des printf(…) pour voir si a chaque pointeurs ou champs sont correctement modifiés.
oui je l'ai fait et tout fonctionne
voili voilou, bon aller, je continue
Dernière modification par phcorp (04 Jul 2007 12:35:46)
Hors ligne
ahh c'est relou cette fonction gxDrawBmp qui ne fonctionne pas, ça me démotive complètement
je pense ne comprends pourtant pas où est le problème, la fonction n'est pas en commentaire dans le lib et mon code est bon... peut-être qu'il y a autre chose à initialiser
j'ai essayé séparément dans un fichier test et même chose, ça coince
Dernière modification par phcorp (05 Jul 2007 10:21:49)
Hors ligne
j'ai pas mal de projets en route en ce moments, pas que sur G100 !
donc pour l'instant je m'y consacre et je reprendrais ce prog plus tard :s
tu peux me donner son msn par MP stp ?
Dernière modification par phcorp (10 Jul 2007 13:50:22)
Hors ligne
problème résolu, merci à :
- vic pour l'adresse msn de julien/orwell
- julien/orwell pour son aide et son travail
Dernière modification par phcorp (12 Jul 2007 05:03:25)
Hors ligne
C’était quoi le pb ?
En ce qui concerne les nuages tu n’as pas besoin de les gérer avec des listes vu que ils ne sont pas ajouté/supprimé régulièrement. Un tableau de structure « nuage » suffit et ne ralentira pas la vitesse du jeu.
J’ai en quelques idées pour ton jeu :
Tu peux faire une liste chaînée pour les ennemis et une liste pour les amis (et une pour les projectils).
En suite tu fais les fonx :
LancerUneAttaque (struct unitée *p_attaquant,struct unitée *p_téteDeListeAttaqué) ;
//in : @ de la structure unitée attaquante
// @ de la tête de liste des unités attaquées
//role : SI unité est un Boot ALORS intelligence artificiel SINON contrôle unité au clavier
Comme ça, ça serait possible d’augmenter l’équipe du joueur avec des Boots (+ou- fort) lorsque il gagne une bataille en insérant de nouvelles unités dans la liste amie et en gérant toutes ces unités avec cette fonx . Peut être même de jouer a 2.
Cette fonx pourrait aussi bien gérés des unités amies que ennemis
Et les unités d’une même équipe pourraient s’entre attaqué, rajouter une 3em équipe…. (Enfin plein de possibilités bien sympathique pour faire un sénario)
L’écran de la G100 est trop petit pour afficher plus de 5 ou 6 unités, il faudrait envisager un scroll horizontale qui serait schématisé par le mouvement d’un décor de fond (côte, colline, plage… ), avec 5 couleurs ça devrait le faire
Qu’est que t’en pense ?
Ps : déplace ton sujet dans Tech de prog
Hors ligne
bonjour
C’était quoi le pb ?
plusieurs pb :
1- image mal codée pour gxdrawbmp
2- problèmes avec les listes chaînées tous résolus grâce à l'aide de julien
Qu’est que t’en pense ?
ce que j'en pense :
1- hors de question de faire du multi, trop relou de jouer à deux sur une caltoche...
2- pk créer une liste différente pour les ennemis et les amis ? à l'origine c'est ce que je voulais faire mais maintenant que j'ai ce système, ça ne changerait pas grand chose
3- un bot, oui, pourquoi pas mais un voire maximum deux sinon c'est le bordel. de plus l'IA ralentirait considérablement le prog mais c'est une idée intéressante, peut-être dans une prochaine version
4- paye ton scrolling ! pour moi on ne peut le faire qu'en asm et l'asm je le met où je pense ( ç'est à dire ? dans tes chaussettes ! )
Ps : déplace ton sujet dans Tech de prog
Certes mais comment faire ?
Hors ligne
code mis à jour mais problème :
les projectiles ne s'affichent pas !
j'explique :
les projectiles ont une caractéristiques dommages ( 1 -> détruit amis, 2 -> détruit ennemis ).
il sont pour l'instant crées depuis la fonction ia_ennemis
leur mouvement et leur affichage se fait dans la même fonction affichage_projectiles
de plus j'ai l'impression que la fonction de détection des collisions entre projectiles et unitée mobiles/amies ne fonctionne pas
et donc je ne comprends pas ce qui cloche :s
Dernière modification par phcorp (12 Jul 2007 10:16:06)
Hors ligne
Oui, il manquait un paramètre dans ia_eneni () pour indiquer l'adresse de la téte de liste des projectiles.
Donc forcement les projectiles ne pouvaient pas être affiché puisque la liste envoyé a la fonx d'affichage n'était pas initialisée.
http://perso.orange.fr/vic.vic/ph.zip
(Verifie quand méme ce que j'ai fait, je connais pas trop l'ensamble de ton prog...)
Visiblement il y a un pb avec les trajectoires/suppression des projectiles. A corriger avant de continuer
La fonx détection collision en en commentaire car elle bloque tout (bug).
EDIT :
J'ai aussi mis un fond, il est fait à l'ache mais ça fait déja bien. Il y a l'image pour que tu l'ajuste au niveau de l'eau.
Dernière modification par Vic (12 Jul 2007 13:27:03)
Hors ligne
Hors ligne
le background j'avais déjà l'intention d'en faire un mais je m'en étais pas encore préoccupé...
wahh le décor est vraiment trop beau ^^ je pourrais te le prendre ?
sinon j'ai compris pour le prob merci beaucoup ça m'a vraiment aidé
Hors ligne
ia_ennemis fixed
detection_des_colisions_amis fixed
j'ai ajouté une fonction d'augmentation/baisse de la vitesse du jeu
il reste :
- les tirs amis
- la barre de vie de l'unitée amie
- le menu
et c'est tout !!!
EDIT :
peut-être :
- armes spéciales
- bonus
- boss
Dernière modification par phcorp (13 Jul 2007 07:00:39)
Hors ligne
bug remarqué : lorsque la position x de unitee_mobile == position x de unitee_amie : "tir en rafale" -> à corriger ?
existe-t-il une fontion d'affichage de texte en mode graphique ? celà mintéresserait pour l'affichage du score...
Dernière modification par phcorp (13 Jul 2007 13:02:40)
Hors ligne
existe-t-il une fontion d'affichage de texte en mode graphique ? celà mintéresserait pour l'affichage du score...
Il y a un GxString dans le wiki rubrique 5 couleurs.
Ça ne résoudra pas ton bug mais :
unitee_mobile *element = malloc ( sizeof ( unitee_mobile ) );
Pas bon, il faut caster le pointeur fournit par malloc() (avec un petit p_ devant les pointeurs, en fin la je chipote..):
unitee_mobile *p_element;
p_element=( unitee_mobile *) malloc ( sizeof ( unitee_mobile ) );
Dernière modification par Vic (14 Jul 2007 07:29:07)
Hors ligne
Attends un peu avant de le diffuser, Il faut optimiser la taille de l’exe et faire des testes intensif.
Je ne pense pas que printf() soit utile, cette fonction prends énormément de place vu que t’a GxString. Généralement on évite le #include <stdio.h> sur G100 (utilisé juste pour la mise au point).
« casio2.h » n’est pas utile non plus getch() est dans « dos.h »
ta méthode est la mêm que la mienne ...?
Non, ç’est pas pareil, et ta méthode n’est pas fonctionnelle.
Voici le prototype de malloc() :
Void* malloc (size_t size) ;
Le paramètre de sortie est un pointeur void donc il faut le transformer en pointeur sur type (int, char, typdef…). Un pointeur void n’est pas directement utilisable il faut les caster.
Reporte toi a l’aide de TC3 (help/index/malloc) ç’est expliqué.
Lorsque on fait des allocation dynamique il faut bien faire attention à ce que l’on fait sous peine de se retrouver avec une fuite de mémoire (ralentissement) ou un code qui s’autodétruis (bugs inexpliqués).
Dans ton cas la fonx free() ne sait pas ce qu’il faut effacer donc elle n’effacera pas tout.
Si non j’ai essayé le jeu, il est trés fluide même quand l’écran est remplis d’objets et il est assez difficile.
Hors ligne
salut
oui la taille de l'exe, 32 ko c'est vraiment beaucoup je vais donc l'optimiser
ok je change pour malloc
le je est fluide oui, on peut augmenter/baisser la difficulté en augmentant/baissant la vitesse
Hors ligne