CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[c++] systeme de combat modifiable

BigGamer95
BigGamer95
Niveau 10
25 mai 2006 à 21:55:42

:salut:

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.)

:merci:

++

BigGamer95
BigGamer95
Niveau 10
25 mai 2006 à 21:58:32

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

vexover
vexover
Niveau 9
25 mai 2006 à 22:12:46

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)

BigGamer95
BigGamer95
Niveau 10
25 mai 2006 à 22:15:49

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

BigGamer95
BigGamer95
Niveau 10
25 mai 2006 à 22:29:10

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

dynoplasmma
dynoplasmma
Niveau 9
25 mai 2006 à 22:39:37

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.

vexover
vexover
Niveau 9
25 mai 2006 à 22:40:04

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 :

  1. define TAILLE_MAX 1000 // Tableau de taille 1000

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;
}

vexover
vexover
Niveau 9
25 mai 2006 à 22:49:17

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 ^^.

BigGamer95
BigGamer95
Niveau 10
25 mai 2006 à 23:45:59

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

BigGamer95
BigGamer95
Niveau 10
26 mai 2006 à 02:09:52

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 ^^

Virtuality
Virtuality
Niveau 8
26 mai 2006 à 09:18:53

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 :-p
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 :-)

godrik
godrik
Niveau 30
26 mai 2006 à 09:53:13

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.

BigGamer95
BigGamer95
Niveau 10
26 mai 2006 à 12:50:35

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)

BigGamer95
BigGamer95
Niveau 10
26 mai 2006 à 14:39:46

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 ^^

BigGamer95
BigGamer95
Niveau 10
26 mai 2006 à 19:10:42

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)

vexover
vexover
Niveau 9
26 mai 2006 à 19:49:20

pardon mais je me rapelle plus ce que c´est l´ID, c´est quoi ?

BigGamer95
BigGamer95
Niveau 10
26 mai 2006 à 20:18:18

id c´est le n° de l´objet, perso ou magie

vexover
vexover
Niveau 9
27 mai 2006 à 12:36:29

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 ++ ...

Virtuality
Virtuality
Niveau 8
27 mai 2006 à 13:01:58

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 :)

Virtuality
Virtuality
Niveau 8
27 mai 2006 à 13:03:42

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...)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment