medACK
Messages postés30Date d'inscriptiondimanche 20 juillet 2008StatutMembreDernière intervention 7 octobre 20091 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és69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 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és69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 septembre 2009 20 janv. 2008 à 17:32
Plus la peine puisque j'ai rajouté Xengine .Normalement c'est compilable.
ElChristus
Messages postés5Date d'inscriptionmardi 4 avril 2006StatutMembreDernière intervention20 janvier 2008 20 janv. 2008 à 12:24
Il n'y a toujours pas le fichier xengine.a !!!
cs_Darksheep
Messages postés69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 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és173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 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és69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 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és56Date d'inscriptionvendredi 14 avril 2006StatutMembreDerniè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és69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 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és69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 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és173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 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és3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 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és56Date d'inscriptionvendredi 14 avril 2006StatutMembreDerniè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és3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 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és56Date d'inscriptionvendredi 14 avril 2006StatutMembreDerniè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és69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 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és3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 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és56Date d'inscriptionvendredi 14 avril 2006StatutMembreDerniè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
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és173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 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.
22 sept. 2008 à 15:22
je te propose de lui intégrer du son ça le rendra plus complet, tu peux utiliser fmod elle est très simple.
29 janv. 2008 à 11:51
20 janv. 2008 à 17:32
20 janv. 2008 à 12:24
14 janv. 2008 à 05:09
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.
13 janv. 2008 à 19:08
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...)
13 janv. 2008 à 18:01
13 janv. 2008 à 15:56
ses se que j esais de faire mais j ai pas
finit mon 2d graphics sa va venir...
13 janv. 2008 à 07:31
De plus je vais faire une maj pour mettre les sources de mon Xengine aujourd'hui.
12 janv. 2008 à 21:14
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
12 janv. 2008 à 20:59
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.
12 janv. 2008 à 18:00
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)
12 janv. 2008 à 17:41
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
12 janv. 2008 à 17:33
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.
12 janv. 2008 à 17:16
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
12 janv. 2008 à 16:33
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.
12 janv. 2008 à 16:01
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.
12 janv. 2008 à 15:48
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++)
12 janv. 2008 à 14:03
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.