30

rov> c'est cool 8), merci!!!!

mon site sur GP32news

le site de la DONUT TEAM

Le forum Jeux videos

31

merci tt le monde smile

putain Sluger regarde la doc et les exemples, c la pour ca .....

je veut bien aider sur un prblm particulier mais pas tt expliquer pas a pas, sinon j'aurais pas fait la doc ^^

extrait de la license (readMe.nfo) :
do not contact me for support, it's easy to use, there is doc, many exemples and you got a brain


bon, matte la demo 2 : afficher une anim, la deplacer avec le stick et auto scrooler la map sur cette anim.
la l'anim est une boule, remplace la par ton avion, fait la bouger toute seule vers l'avant et voila.

qt t'aurra reussi a faire ca, ben crée d'autre anim (enfin objets gfx), pour les mechants, pour les tirs, pour les bonus, ....
apres regarde la demo pixel pour voir comment activer ou non une anim, tester les colisions ect ...

si g le temps je porterais ou referais la demo du shoot avec la nouvelle version de la lib ^^
et la le mec il le pécho par le bras et il lui dit '

32

extrait de la license (readMe.nfo) : do not contact me for support, it's easy to use, there is doc, many exemples and you got a brain


c'est foutue pour moi, mon "brain" est mort... dehors
mon site sur GP32news

le site de la DONUT TEAM

Le forum Jeux videos

33

lol exelent grin
et la le mec il le pécho par le bras et il lui dit '

34

sluger -> si tu comprends rien ben c'est pas la peine de te lancer dans un shoot.
ca va etre trop long et trop compliqué.
faut d'abord apprendre les bases => potasser de la doc theorique. Cherche
sur le net a "game dev tutorial" ou "game coding tutorial", "tilemap tutorial", ...
ensuite essaie de faire des trucs simple :
1 BG, 1 Sprite, interaction avec le stick, puis collision, ...

faut savoir que les shoot comme la plupart des autres jeux consoles fonctionnent
en tile, car les consoles elle meme tournent presque tout le temps avec un mode
vidéo par tile (plusieurs plans parfois, ...).
enfin je parle de la génération 8/16bits (nes -> 1 BG de tile + 64 Sprites,
snes -> jusqu'a 4 BGs de tile + 128 Sprites et mode spécial 7, genesis pareil, ...).

si tu veux de la doc en francais, cherche du cote des communautes amateur de dev
de RPG avec les outils freeware (j'ai plus de nom mais y a plein de petits moteurs style
RPGmaker). Y a plein de tutoriel qui explique les bases des tiles/sprites/collisions, ...

35

et la le mec il le pécho par le bras et il lui dit '

36

je vais potasser tout ca !

pas la peine de s'enerver, c'est juste que j'ai un peu de mal.
arrête de picoler, tu pourras plus tirer droit !

37

g mis a jour le shoot a la derniere version de la lib

http://procvor.free.fr/gdl/release/
et la le mec il le pécho par le bras et il lui dit '

38

je soutiens Sluger smile
moi meme j'ai du mal mur
avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

39

merci, ca fait plaisir de se sentir aimé... mourn
arrête de picoler, tu pourras plus tirer droit !

40

gdl n'est vraiment pas dure a utiliser ...

faut juste comprendre la prog orienté objet

voila un mini exemple de moteur utilisant gdl, je peut pas faire plus simple

#include "Gdl.h"

#define NB_BALLS 150 // nombre de boules

short balle_a_suivre = 0 ;

main
{
// creation des objets (gfx pour les sprites et anim, map pour les map et font pour les fontes)

struct map my_map ; // on cree une map

stuct gfx balls[NB_BALLS] ; // on cree des boules

// chargement des objets (definition des tailles, couleur de transparence, images sources, tableaux pour les map, ...)

set_map(&my_map, ...... ) ; // definition de la map

for(cpt=0;cpt<NB_BALLS;cpt++) load_anim(&balls[cpt], ....) ; // definition des boules

do { // boucle du jeux

refresh_key() ; // mise a jour des codes touche

if(up_front(16)) // si front montant sur L
if(balle_a_suivre) // si on suis pas la premiere balle
balle_a_suivre -- ;

if(up_front(128)) // si front montant sur R
if(balle_a_suivre<NB_BALLS-1) // si on suis pas la derniere balle
balle_a_suivre ++ ;

ia_des_boules() ; // deplacement, colision, ...

folow_gfx(&my_map,&balls[balle_a_suivre],60,60,80,80) ; // scrool automatique de la map pour suivre la boule #balle_a_suivre

afficher_map(&my_map) ; // on affiche la map

for(cpt=0;cpt<NB_BALLS;cpt++) play_anim_on_map(&balls[cpt],&my_map,0,0) ; // affichage des boules


count_and_draw_fps() ; // affiche le fps
flip_screen() ; // bascule les buffer d'ecran et de travail

} while(!instant_key(256)) ; // si appui sur start, on quite

GpAppExit() ; // reboot

}
et la le mec il le pécho par le bras et il lui dit '

41

arg comme c trop mal passé :/
et la le mec il le pécho par le bras et il lui dit '

42

#include "Gdl.h"  #define NB_BALLS 150 // nombre de boules  short balle_a_suivre = 0 ;  main  {       // creation des objets (gfx pour les sprites et anim, map pour les map et font pour les fontes)             struct map my_map ; // on cree une map             stuct gfx balls[NB_BALLS] ; // on cree des boules             // chargement des objets (definition des tailles, couleur de transparence, images sources, tableaux pour les map, ...)       set_map(&my_map, ...... ) ; // definition de la map             for(cpt=0;cpt<NB_BALLS;cpt++) load_anim(&balls[cpt], ....) ; // definition des boules       do            { // boucle du jeux                 refresh_key() ; // mise a jour des codes touche                                 if(up_front(16)) // si front montant sur L                 if(balle_a_suivre) // si on suis pas la premiere balle                 balle_a_suivre -- ;                                 if(up_front(128)) // si front montant sur R                 if(balle_a_suivre<NB_BALLS-1) // si on suis pas la derniere balle                 balle_a_suivre ++ ;                       ia_des_boules() ; // deplacement, colision, ...                       folow_gfx(&my_map,&balls[balle_a_suivre],60,60,80,80) ; // scrool automatique de la map pour suivre la boule #balle_a_suivre                       afficher_map(&my_map) ; // on affiche la map                       for(cpt=0;cpt<NB_BALLS;cpt++) play_anim_on_map(&balls[cpt],&my_map,0,0) ; // affichage des boules                             count_and_draw_fps() ; // affiche le fps                 flip_screen() ; // bascule les buffer d'ecran et de travail                  } while(!instant_key(256)) ; // si appui sur start, on quite       GpAppExit() ; // reboot  }

avec ca, c'est mieux
avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

43

ui, merci smile

maintenant vous comprenez mieux comment gdl marche ?
et la le mec il le pécho par le bras et il lui dit '

44

moi g un bleme. je comprend a peu pres les programmes mais c la compilation qui me bloque sad sad sad (avec 3 compilateurs j'y arrive pas...) svp quel compilateur vous utilisez et ou placer bien comme il faut les librairies ??!! en faite, ce qui serai super pour un newbie comme moi, c un tuto pour compiler une des demos de gdl.
Tu ne le sais pas encore, mais tu es deja mort ...

45

gdl a été testé sous sdt (ce que j'utilise moi), gcc, et g testé sous ads mais j'avais pas tt les fct 16 bit donc ca marchais pas .... mais ca devrais passer sans prblm pour qq qui a bien configuré ses libs

pas a pas avec sdt :
telecharger sdt et ses fichier de config

installez sdt, allez ds le rep /bin/config de sdt et mettez y les fichier de config
prenez le work_en.zip, decompressez le qq part, dedans il y a un rep project

mettez y b2fxec + ses dll, et creez un nouveau repertoire, du nom de la demo a compiler, now prenez les fichier de la demo (rep 'common' et 'gp') et mettez les ds le repertoire crée pour cette demo

allez ds /gp/ du rep, ouvrez le 'template.apj', sdt s'ouvre, allez ds le rep release du rep gp, lancez del.bat, puis compilez sous sdt

normalement pas d'erreur, un template.axf est généré
lancez le make_fxe.bat, ca va creer le fxe, reste plus qu'a le lancer :-)

si sa compile pas sous sdt et que ads est installé, supprimez les 2 compilo, puis reinstallez sdt
et la le mec il le pécho par le bras et il lui dit '

46

Merci beaucoup wink !!! j'essaye de suite. CA MARCHE grin grin t'es un boss !!!
Tu ne le sais pas encore, mais tu es deja mort ...

47

franchement , elle est trés bien ta Gdl , j'ai regardé un peu vite ,mais le code à l'air trés propre , un bon point , ceci dit , je ne m'en servirais pour la bonne raison que si on veut progresser le plus vite possible en C , bah se taper tout de A à Z , comme à la base je suis infographiste ,j'ei besoin de maîtriser se que je fais et c'est quand même plus intérressant et surtout plus passionnant wink , mais je la garde sous la main ,quand même ,pour me guider si je suis bloqué.

petite remarque tout de même , n'hésite pas à me corrigé si j ai tort ,

tu fais bcp de tableaux de structures , donc de l'allocation en dur et pas forcement tjs utilisée , ce qui me fais dire qu'on pourra pas s'enservir pour des trucs lourds (je me trompe surment mais vu que tu imposes des limitations (assez confortables )un peu partout ) , même si la gp a 8 mo de ram tu pense pas qu'il faudrait opter pour une gestion dynamique de la ram ?

48

"si on veut progresser le plus vite possible en C , bah se taper tout de A à Z"

c clair que pour progresser, faire ses propres fct c bc mieux.
mais si chaque personne voulant programmer qq chose devais reinventer la roue, il sortirais pas souvent des jeux ^^

"tu fais bcp de tableaux de structures , donc de l'allocation en dur et pas forcement tjs utilisée , ce qui me fais dire qu'on pourra pas s'en servir pour des trucs lourds (je me trompe surment mais vu que tu imposes des limitations (assez confortables )un peu partout ) , même si la gp a 8 mo de ram tu pense pas qu'il faudrait opter pour une gestion dynamique de la ram ?"

ui il y a bc de gaspillage de ram
style creer 100 objets gfx, charger les mm images dedans, ect c pas top, y faudrais un tableaux de position ds l'objets, pour en creer des copie..
ca viendra pi etre par la suite

les limitations de chaque objects sont configurable par des #define ds stucture.h
une gestion dynamique de la ram pour les tableau d'images serais bc mieux (lock me l'avais dailleur dit il y a pas mal de temps), je le ferais plus tard (mais bon, avec 8mo de ram, c la fete qt mm ^^)

'ce qui me fais dire qu'on pourra pas s'en servir pour des trucs lourds' bah la ram n'est pas gérée dynamiquement mais les stuctures prenne pas tant de place que ca, la limite est loin ...

le vrai prblm, c les fct d'affichage par transparence de gp qui sont vraiment lente, ce qui peut faire attendre un vblank de plus au flip_screen et donc divisé le fps par 2 si trop d'images sont affichées :/
et la le mec il le pécho par le bras et il lui dit '

49

ouverture du forum gdl : forums/340 smile
et la le mec il le pécho par le bras et il lui dit '

50

Gdl 0.4c r1 out ^^

en taffant sur lapinou g vu un gros bug de lecture d'anim, la derniere frame d'une anim animé en 123123 (donc le 3), n'etait jamais affiché ^^'''''

c fixé et dispo la : http://procvor.free.fr/gdl/release/
et la le mec il le pécho par le bras et il lui dit '

51

Gdl 0.4d out ^^

la recherche de la taille reelle des frames marche maintenant parfaitement smile
g ajouté de nouvelle fonction de fonte et le support a draw_text et draw_text_rl du saut de ligne (avec le char '\n')
et la le mec il le pécho par le bras et il lui dit '

52

continu comme ca, ne t'arrete surtout pas smile
avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

53

salut rov

c'est cool tt le monde se met a utiliser Mappy maintenant :-)

54

fag -> lol, si je m'arrette, pour faire lapinou smile

jycet -> ué, mappy a l'air d'etre devenu le standart pour faire des map sur gp, il est ds ton tuto, ds celui de rico et ds gdl smile
par contre c un logiciel qui ne brille pas par son ergonomie ..... :/
et la le mec il le pécho par le bras et il lui dit '

55

bigeyes

Gdl 0.4e out ! smile

corections de petit bugs, qq fonctions en plus...
mais surtout, save et load de map en fichier externe ! smile
et la le mec il le pécho par le bras et il lui dit '

56

rov :
gdl n'est vraiment pas dure a utiliser ...
faut juste comprendre la prog orienté objet


En effet, la lib n'a pas l'air d'etre tres difficile a utiliser, les noms de fonctions sont clair, le code est a peu pres lisible et les performance sont plutot bonne.

Cependant je comprend pas trop ta remarque sur la prog orienté objet car d'apres ton exemple c'est pas du tout orienté objet.

Sinon 2, 3 trucs pour ameliorer.
Tout d'abord pour les allocations, le mieux est de mettre en place une sorte de library de data (pour les bitmap, anims, sons etc ...) avec pourquoi ton propre file system virtuel ou tu pourrais directement accédé a une donné grace a un chemin d'acces.
Pour la gestion de la transparence, pourquoi pas simplement mettre en place la technique du "une frame sur deux". C'est pas le plus elegant mais au moins les performance sont identique. Ensuite a l'utilisateur de choisir le methode de transperence qu'il veut utilise pour chaque sprite.
Arretez de m'appeler serge !

57

moi je trouve que c orienté objet (malgré que ce soit du C)
il y a des 'objets' fontes map et banque d'anims ...

en C++ on ecrirais my_map.draw() ; la c draw_map(&my_map) ; seul l'appel change, pour moi le principe est le meme, donc je trouve que c de la prog orientée objet ^^

dailleur au debut je voulais ecrire gdl en C++ mais g jamais trouvé sdt 2.50 ...... donc c ecrit en C grin
Tout d'abord pour les allocations, le mieux est de mettre en place une sorte de library de data (pour les bitmap, anims, sons etc ...) avec pourquoi ton propre file system virtuel ou tu pourrais directement accédé a une donné grace a un chemin d'acces.


c prevu, la premiere etape etait le fichier map, le reste viendra par la suite smile

si qq a du code chargant des .bmp ou .png ou gif animé ou .... je suis preneur ^^

sinon, pour les allocation, ca ne cres tj pas ds les objets juste ce qui est necessaire mais bon, c des pointeur vers les images (qui elles sont allouées dynamiquement) donc au pire ca doit prendre qq dizaines de ko de plus que necessaire, ca sa sera fixé heu je c pas quant ^^
Pour la gestion de la transparence, pourquoi pas simplement mettre en place la technique du "une frame sur deux". C'est pas le plus elegant mais au moins les performance sont identique. Ensuite a l'utilisateur de choisir le methode de transperence qu'il veut utilise pour chaque sprite.


gdl ne supporte pas la transparence 'transparence' avec un niveau d'opacité
l'user peut qt meme afficher des sprites, map ou anim 'transparent' (avec une frame sur 2)
il suffit de faire if(nflip) play_anim(...) ;

et si on utilise par exemple un gprectfill pour effacer l'ecran, le fps passe obligatoire a 48 et ca clignote severe :/
a 50~53 fps ca passe a peu pres ....

sinon, petite remarque sur le forum, je viens de passer a opera
et qt on selectionne du texte et qu'on clique sur cite pour 'encadrer' ce txt, ben ca fait portnawak et colle 3 fois tt le contenu du post ://
et la le mec il le pécho par le bras et il lui dit '

58

rov :
moi je trouve que c orienté objet (malgré que ce soit du C)
il y a des 'objets' fontes map et banque d'anims ...

en C++ on ecrirais my_map.draw() ; la c draw_map(&my_map) ; seul l'appel change, pour moi le principe est le meme, donc je trouve que c de la prog orientée objet ^^


Il faut appeler un chat un chat. C'est pas parce que mon chien a quatre pattes comme un chat que c'est un chat. Suivant ton principe n'importe quel langage est orienté objet car on peut considéré n'importe quelle variable comme un objet.
C'est pas pour parraitre chiant, mais il faut au moins etre clair smile
gdl ne supporte pas la transparence 'transparence' avec un niveau d'opacité
l'user peut qt meme afficher des sprites, map ou anim 'transparent' (avec une frame sur 2)
il suffit de faire if(nflip) play_anim(...) ;


C'est justement ce que je dis, ca serait bien d'integrer directement cette gestion dans la lib. C'est un détail et ca prends 2s a l'utilisateur, mais au final c'est grace a de petit detail comme ca qu'on a une lib super agreable a utiliser.
Arretez de m'appeler serge !

59

mouais

mais en tout cas pour qq qui connais le principe de l'objet, utiliser gdl est bc plus intuitif ^^

pour la transparence, ué ca sera ds la prochaine version smile
et la le mec il le pécho par le bras et il lui dit '

60

C'est pas trop le fait de connaitre l'orienté objet, c'est plus que tes fonction ont une nomenclature reflechie et c'est ce que beaucoup de monde oublie de faire.

Si tu voulais faire du pseudo orienté objet tu pourrait simplement avoir dans tes structure des pointeur sur tes fonctions avec une fonction constructeur qui initialise ces pointeur de fonction. Ensuite l'utilisateur pourrait meme raccorder ses propore fonction dans ta lib.
Arretez de m'appeler serge !