les vacances arrivent, j´ai suivi les cours en SDL, essayé quelque fonction (comme le saut, le tir d´un vaisseau) qui me permettent donc de faire un jeu
mais maintenant quel jeux?
J´ai choisis de reprendre mon ancien systeme de combat, qui m´avait permi d´apprendre a geré les .h et tant d´autre truc (mon plus grand truc en mode console)
mais rajouté des graphisme n´est pas vraiment utile, j´ai aussi choisis qu´il soit vraiment organisé en plusieur fichier et entierement parametrable :
- fichier principal, main.cpp reunissant et lancant les autres fichier (le main)
- main.h comportant les declaration de toutes les fonctions
- jeux.cpp contenant les fonction elle meme, les attaque devenant des fonction pour evité de toujorus les copié collé, et obtenir dans le fichier principal des tour de jeux plus clair
et en fichier texte :
- personnage.txt contenant chaque personnage et ses carcteristique, chaque ligne se presentant comme :
id, nom, lvl, PV de base, PV de base, force de base, defense de base, image(gif)
exemple :
0 "jack le warrior" 150 25 34 43 jack.gif
et le programme recupe donc les variable dans l´ordre correspondant (et "de base" correspond a la valeur pour le lvl 1, et ca augmentera tout seul selon le lvl)
l´id 0 correspond au joueur, et les id suivant aux adversaire (donc xhoix de l´adversaire)
-fichier magie.txt et objet.txt, presenté a peu pres pareil
id nom effet
exemple :
5 potion HP_utilisateur+=50
donc creation de toute variable du jeux sous une version _utilisateur ou _adversaire (selon leur cible) afin de gerer facilement la cible et l´effet pour un utilisateur peu connaisseur
- fond.txt : chaque ligne presenté sous la forme
id image(jpg)
voila pour l´instant comment je vois mon projet
ca m´apparendra 2 truc principaux (et ptet plus)
- m´organisé en plusieur fichié et pour un grand projet
- gerer les fichiet.txt et les rendre facilement comprehensible a la fois pour l´utilisateur et le programme
Bon tout ca m´ammene a vous posé une question,
quand j´y serai a ce point, y´a t´il une methode pour que le programme detecte combien ´element contient chaque fichier texte pour ne pas en creer dans le jeu plus que nessessaire et finalement planté?
si j´arrive, le tout donne donc une sorte de mugen mais combat au tour a tour lol
quel conseil me donneriez vous avant de comencé? est ce que ma gestion de fichier est correct? ou comment m´organisé a la place?
que pensez vous de ce projet? (trop grand ou realisable, interresant ou pas, etc.)
++
j´ai oublié de dire qu´il n´y aura pas de gestion d´equipement, j´ai deja prevu beaucoup (trop?) de truc ^^
et j´ai aussi oublié de decrire l´interface :
le combat en haut, en bas la barre de menu comme les combat rpg maker,
dans cette barre, partie gauche : le menu, partie droite : texte et liste de magie/objet selon le choix (donc le programme detectera combien de magie/objet y´a dans le fichier texte, puis les affichera par page (6 par page par exemple)
tout les choix se feront par le clavier (en tappant 1, 2, 3, etc.), pas de curseur
je crois n´avoir rien oublié la
j´ai pas piger tu veux faire ça en console d´application Oo ? ou en utilisant une librairie graphique ? sinon j´ai pa svraiment compris ta question tu veux savoir comment compter le nombre de caractere qu´il y a dans un fichier texte c´est ça ?
si c´est ça il faut que tu utilise la fonction fgetc avec une boucle do, while, le prototype de la fonction donnera :
int fgetc(FILE* pointeurSurLeFichier);
le code source serait donc :
int caractereActuel = 0;
do
{
caractereActuel = fgetc(fichierALire); // On
lit le caractère
caractereAcuel++// on incremente la variable.
} while (caractereActuel != EOF);
// On continue tant que fgetc n´a pas retourné EOF
(fin de fichier)
j´utiliserai SDL ^^
sinon, pas le nombre de caractere, mais d´element (objet, magie ou perso)
par exemple dans le fichier objet :
0 potion HP_utilisateur+50
1 acide HP_adv-50
2 dopage force_utilisateur+10
et donc, en lisant ce fichier texte le programme doit detecté 3 objet (et si on en rajoute par la suite, il en detectera plus, pareil si on en enleve)
et dans le code, ils seront gerer par leur id
http://www.progworld.info/combat2.rar
voila la version que j´avais fait en mode console
dans celle la, il n´y a qu´un fichier texte contenant l´experience
ca peut deja te donné une idée de ce que je veux avec ca + la description
Interressent tout ca ^^
Je te souhaite bonne chance.
Moi aussi j´ai pensé a faire une partie graphique de mon systeme de combats rpg, mais je ne pense pas le faire.
Pour trouver le nombre de ligne dans un fichier, tu peux peu etre faire une boucle while avec une valeur qui s´incremente a chaque tours, tu releve chaque ligne (m´enfin je sais plus si ca marche comme ca...)
Et quand c´est NULL, tu sors de ta boucle...
J´en suis vraiment pas du tout sure, jsuis pas tres habitué a gerer les fichiers.
haaa je sais, c´est casiment pareil que pour les caratères, sauf qu´il faut que tu utilise la fonction fgets ( à ne pas confondre avec celle que j´ai cité tout à l´heure qui s´apellait fgetc ^^)qui permet de lire une chaine dans un fichier. on lira enfaite ligne par ligne, il faut donc que tu mette 1 element par lignes
le prototype est :
char* fgets(char* chaine, int nombreDeCaracteresALire, FILE* pointeurSurFichier);
on utilise donc les condition if, et une define .
et le code serait cette fois :
int main(int argc, char *argv[])
{
long compteur = 0;// on crée une variable qui
nous servira a compter le nombres de ligne et donc le nombre d´éléments.
char chaine[TAILLE_MAX] = ""; // Chaîne vide d
e taille TAILLE_MAX
if (fichier != NULL)
{
fgets(chaine, TAILLE_MAX, fichier); // On
lit maximum TAILLE_MAX caractères du fichier, on stocke le tout dans "chaine"
compteur++; // on incremente la variable.
}
return 0;
}
j´ai tester ton mode en console d´apllication . c´est pas mal du tout, les propabilités sont bien géréeset je ne vois pas de bug , à part à la fin, mon adversaire avait atteint -7 point de vie et j´ai encore du lui asseiné un coup pour le tuer ^^.
lol bizarre ce bug, j´essayerai de ne pas en laissé dans la version graphique
demain je commencerai a reunir les images nessessaire, a preparé quelques unes des fonction (dont les attaques) que j´aurez juste a appellé dans le fichier principal au moment voulu
je pense que le plus dur, ca va etre l´organisation (c´est pas mon fort), car si je veux bien gerer les fichier texte faut que je prevois a l´avance toute les variable, + leur version en _utilisateur et _adversaire
ensuite prevoir toute les fonction dont j´aurai besoin (attaque, degat, reussite de l´attaque, etc. depandant du lvl)
dé que j´sentirai que j´ai rien oublié je commencerai la prog ^^
Il y a qq temps je développait un jeu d´avion 2d et j´ai procédé à peu près de la meme façon.
J´avais un fichier text par level, avec toute la description du niveau de a à z qui était lu par le programme, ensuite je prévoyais de faire pareil pour les ennemis, mais j´ai stoppé le dév par manque de temps, et surtout, j´ai trouvé qu´en 2d et étant donné que la sdl ne gère pas les rotations, les animations étaient vraiment trop lourdes (les planches de persos).
Bon ça c´est mon histoire tout le monde s´en fout ![]()
Mais pour dire qu´en tout cas ça fonctionnait bien et c´est bien pratique ![]()
J´espère que tu t´en sortira avec les animations de tes persos (pourquoi du gif au fait? ).
Bonne chance ![]()
quelque part l´idée de ce genre de chose, c´est de prévoir des sprites "prétournés" pour l´affichage.
Soit tu les stocke sur le disque dur, soit tu les génère au démarage de l´application.
l´animation est l´unique point pour lequel j´ai rien prevu pour le moment
pour l´animation j´vais voir comment marche celle de rpg maker, comme ca, je pourrai reprendre leurs ressources, et apres la magie ou l´objet dans le fichier texte, je rajoute une derniere donné qui sera l´animation
ainsi l´anim sera aussi personnalisable
mais avoir l´image ne peut dit pas encore comme c´est geré dans rpg maker lol (enfin je vais faire quelque essay voir ce que ca donne)
mise a part l´anim, je resoud peu apeu mes probleme theorique (j´me doute que quand je commencera la prog y´en aura d´autre lol)
par exemple pour l´effet des fichier texte, au lieu de faire _utilisateur ou _adv j´ai trouvé plus simple :
PV[0] pour le 0, ou [id_adv] pour l´adv, et id_adv prendra automatiquement (au debut du combat) la valeur id_perso (donc si vous combattez l´adv 10, ce sera [10]
l´utilisation des id resous la plupart de mes probleme qui m´ont empeché de modifié grandement la version en mode console ^^
lol pour l´instant, j´ai du mal a me decidé par quoi commencé
j´ai fait une liste des variable sur un doc txt (j´ai du en oublié en plus), ce soir je crée le projet avec SDL et SDL font, puis les fichier .cpp et .h que j´ai besoin (main.cpp, jeux.cpp, jeux.h)
ce sera deja ca de fait
et apres, ba j´verrai lol (de toute facon, une fois lancé c´est bon, c´est le depart lol)
pardon mais je me rapelle plus ce que c´est l´ID, c´est quoi ?
id c´est le n° de l´objet, perso ou magie
ha ok merci ^^, mais tu veux dire le numero d´objet possédés ou sont en adresse dans la memoire vive ? Parce que moi pour l´instant je programme surtout en C, et assez peu en C ++ ...
l´ID c´est tout et c´est rien en même temps. C´est toi qui lui donne sa valeure. Un exemple, en php, tu imagine que tu as un forum, et bien dans ta base de donnée, la ou sont stockés les messages, chaque message à un identifiant (id), et cet id s´incrémente de 1 à chaque message. Ca permet d´identifier chaque message à l´aide d´un n°.
La c´est pareil, il donne un n° à chaque objet, perso, magie qui va lui permettre de les identifier.
Enfait c´est tout bête ![]()
Et pour répondre à ta question, non ça n´a rien à voir avec la RAM, ton programme s´occupe de ce genre d´allocations presque tout seul (pour faire simple, mais c´est pas tout à fait ça...)