XENA : MOTEUR DE RPG

Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008 - 12 janv. 2008 à 14:03
medACK Messages postés 30 Date d'inscription dimanche 20 juillet 2008 Statut Membre Dernière intervention 7 octobre 2009 - 22 sept. 2008 à 15:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45388-xena-moteur-de-rpg

medACK Messages postés 30 Date d'inscription dimanche 20 juillet 2008 Statut Membre Dernière intervention 7 octobre 2009 1
22 sept. 2008 à 15:22
beau travail, je suis en train de faire un moteur et je te félicite pour le tien.
je te propose de lui intégrer du son ça le rendra plus complet, tu peux utiliser fmod elle est très simple.
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 septembre 2009
29 janv. 2008 à 11:51
A oui ne vous servez donc pas du ficher projet de code::block pour compiler, creez vous même votre projet, puis rajoutez manuellement tous les fichiers sources et lib manquantes : SDL,SDL_IMAGE, SDL_GFX,SDL_TTF
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 septembre 2009
20 janv. 2008 à 17:32
Plus la peine puisque j'ai rajouté Xengine .Normalement c'est compilable.
ElChristus Messages postés 5 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 20 janvier 2008
20 janv. 2008 à 12:24
Il n'y a toujours pas le fichier xengine.a !!!
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 septembre 2009
14 janv. 2008 à 05:09
humm mouais c'est vrai que je dois encore travailler sur les déplacements de la cam, mais tu remarqueras que quand le player s'approche du bord de la map,ce sont ses coordonnées x et y qui sont modifiés, et pas l'offset de la map.
Mais c'est vrai que le player n'est pas toujours au centre de l'écran , même quand il est en milieu de map.J'arrangerais ça dans une mise à jour.
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
13 janv. 2008 à 19:08
Ouais, quand je disais que je savais que c'était pas ton moteur, je parlais de ceux qui sont déjà actuellement sur le site.
Je viens de tester l'exe, c'est assez énorme, je suis fan du concept de passer derrière certaines tiles. Ca m'a donné envie de me remettre a mon moteur (qui fait a peu près les mêmes choses que toi, mais qui ne possède pas d'éditeur de map)... bref cela me fait plusieurs choses à coder tout ça.
Par contre, pour le scrolling, je le fais différemment: chez toi, dès qu'on se déplace, le personnage reste au centre de la carte, et c'est monde se déplace en sens inverse (enfin, en gros, vu qu'on modifie juste l'offset).
Je préfère n'effectuer ce déplacement du monde que si le personnage se trouve dans une certaine zone de l'écran: s'il se trouve dans un rectangle au centre (qui fait la moitié de la fenêtre), le monde est immobile, et c'est le personnage qui se déplace dans la fenêtre. Si le personnage se trouve à l'extérieur de ce rectangle, alors on déplace le monde d'autant qu'il faut pour qu'il retourne dans le rectangle.
C'est le système de déplacement que tu peux retrouver dans des jeux comme secret of mana ou autres, et que je trouve plus agréable à exploiter que le tien (mais bon, c'est peu être car j'y suis habitué, et puis, les gouts et les couleurs...)
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 septembre 2009
13 janv. 2008 à 18:01
moi mon astuce c'est un objet camera qui contient les offset_x et offset_y (décalage de la map par rapport au bord 0,0 de l'écran)
f_l_a_s_h_b_a_c_k Messages postés 56 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 1 février 2009
13 janv. 2008 à 15:56
tres cool le scrool
ses se que j esais de faire mais j ai pas
finit mon 2d graphics sa va venir...
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 septembre 2009
13 janv. 2008 à 07:31
Juste pour dire que depuis que j'ai tout réinstallé tout recompilé (devcpp+sdl+sdl_image+sdl_ttf+sdl_gfx) je n'ai plus ce probleme d'écran bleu ..(peut être était-ce un probleme de version de dll)
De plus je vais faire une maj pour mettre les sources de mon Xengine aujourd'hui.
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 septembre 2009
12 janv. 2008 à 21:14
"Oui oui, je me doutais bien que c'était pas ton xengine :)"
labsus ? c'est mon xengine!
si tu veux le bidouiller plus, je peux t'envoyer le xengine.j'ai pas rajouté les sources de Xengine sinon ça fait plus de 1mo
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
12 janv. 2008 à 20:59
Oui oui, je me doutais bien que c'était pas ton xengine :)
Pour le .a ben il manquera quand même les fichiers .h du dossier xengine pour compiler, il rale à cause de ça actuellement chez moi.
Mais bon, même si le code marche pas, il est suffisamment clair pour être compréhensible.
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 janv. 2008 à 18:00
Mais non puisqu'à 5 ON QUITTE LA BOUCLE.
Assez de blabla, voici un exemple concret:

for (int i = 0; i < 5; i++)
cout << i << endl;

Que sera t-il affiché à la console ?
0
1
2
3
4

Il est afficher 5 nombres (de 0 à 4) et non 6 (de 0 à 5)
f_l_a_s_h_b_a_c_k Messages postés 56 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 1 février 2009
12 janv. 2008 à 17:41
MMMmmmmmmmmmmmm!
je sais plus
est que 5<5 je coit qu'il va aller jusqu'a 6 6<5

ok meme s il arrete a 5

0 1 2 3 4 5
1 2 3 4 5 6
t a toujour besoin de 6 espace

mal de tete
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 janv. 2008 à 17:33
Ben non.

for(int i=0;i<MAX_TILESET;i++)

Tant que i est PLUS PETIT (pas plus petit ou égal) que MAX_TILESET (donc 5).

Il va tourner de 0 jusqu'à 4, car à 5, il quitte la boucle.
f_l_a_s_h_b_a_c_k Messages postés 56 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 1 février 2009
12 janv. 2008 à 17:16
compte avec moi SAKingdom

MAX_TILESET 5
tileset_name[MAX_TILESET]
ta 5 place memoire ok de 0 a 4 (0,1,2,3,4) =5

for(int i=0;i<MAX_TILESET;i++)
il va compter tant que i < 5 donc 6 il va arreter

0 1 2 3 4 5
1 2 3 4 5 6 moi se me donne 6 place memoire ici!

tu vient de planter !

ou tu peut faire
for(int i=0;i<(MAX_TILESET-1);i++)
le compte est bon

MAX_CELLS 255 pareil
cs_Darksheep Messages postés 69 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 15 septembre 2009
12 janv. 2008 à 16:33
Salut ;
Donc dsl pour l'exe_rename je croyais l'avoir mis!
Je ne pense pas avoir fait de dépassement de mémoire, je vais encore relire.
-Bizarre que vous n'arriviez pas à la compiler, n'oubliez pas de linker la lib Xengine.a fournie dans le zip !
cyberboy : "je ne l'ai pas trouvé sur le site (a par une source de 2003 de moteur 3d),"
XENGINE, je parle de "MON" Xengine, c'est à dire "le moteur" que j'ai codé en SDL, j'ai fait une lib.
Je le posterais juste pour qu'on me donne un avis dessus.C'est une librairie de fonctions,avec dans l'entête des includes SDL_gfx, SDL_image, SDL_ttf ... +des classes qui masquent l'api SDL + des fonctions de déssins, des bouttons, des scrollbars, (codés par moi et c'est beurk pour l'instant, elles sont déssinés avec des primitives)
Sinon le temps de réinstaller devc++ (code::block et vista vont vraiment pas ensemble) je recompile et je reposte.

Cyberboy-> il n'y a qu'une seule couche de collision , par contre il y a 3 couches d'affichages, regarde la tructure CELL, dans map.h.
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 janv. 2008 à 16:01
for(int i=0;i<MAX_CELLS;i++) 0 1 2 3 4 ... 254
for(int j=0;j<MAX_CELLS;j++) 0 1 2 3 4 ... 254
Le compte est bon.

"+1 juste pour etre sur que tu depasse pas la memoire"
Bof bof. Si bien géré, ne devrait pas être nécessaire. Sinon, faudrait réviser le code.
f_l_a_s_h_b_a_c_k Messages postés 56 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 1 février 2009
12 janv. 2008 à 15:48
moi non plus j ai pas etais capable de la compilier,
aimerais voir le exe aussi...

et pour etre sur que sa bug pas je mettrais

+1 juste pour etre sur que tu depasse pas la memoire

CELL cell[MAX_CELLS+1][MAX_CELLS+1];
SDL_Surface * tileset[MAX_TILESET+1];
TILESET_NAME tileset_name[MAX_TILESET+1];

#define MAX_CELLS 255
#define MAX_TILESET 5

je crois que sa debord ici sur la memoire
for(int i=0;i<MAX_CELLS;i++) <max_cell 0 1 2 3 4 5 6
for(int j=0;j<MAX_CELLS;j++)
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
12 janv. 2008 à 14:03
Ca a l'air assez excellent, mais j'ai pas réussi à compiler, vu qu'il manque tout le dossier xengine pour cela.
je ne l'ai pas trouvé sur le site (a par une source de 2003 de moteur 3d), et en googlant je trouve plein de trucs qui n'ont rien à voir.
J'espère que tu vas le rajouter (avec l'éditeur, ce serait génial! il est codé avec quelle API pour le fenetrage ?), parce que ça à l'air de bien défoncer.
Par contre pour le moment, c'est assez difficile de se prononcer, vu que ça ne compile pas et qu'il n'y a pas d'exe pour tester...
J'avais jamais pensé à faire 3 layer pour le rendu, et de gérer les collisions à partir de ça... Mon "moteur de rendu" de maps gère une seule couche donc forcément on peut pas passer à travers les arbres.
Quelques idées d'améliorations: dans l'entête du fichier (la où tu stocke les infos sur la taille etc... rajoute une info sur le fichier de tiles utilisé (ou même mieux, les fichiers): comme ca, même si c'est plus chiant à gérer, tu pourras dès que tu les auras avoir plein de tiles différentes dans les maps sans trop faire de modifications.
J'attends un exe (le site n'accepte pas les .exe, il faut le renommer en ._xe par exemple) pour en dire plus.
Rejoignez-nous