Vous auriez pu me dire qu'il y avait un bug lors de la saisie des
touches ;-)
c'est maintenant corrigé, et c'est jouable ... je vais aller faire
qques parties dans mon sofa ;-)
On 24 nov, 14:06, manatlan <manat...@gmail.com> wrote:
> Vous auriez pu me dire qu'il y avait un bug lors de la saisie des > touches ;-) > c'est maintenant corrigé, et c'est jouable ... je vais aller faire > qques parties dans mon sofa ;-)
> On 24 nov, 14:06, manatlan <manat...@gmail.com> wrote: >> Voilà, c'est fait à la hache, mais c'est fait ...
>> Et apparemment, je suis le premier ...
>> Je vous laisse deviner le type de jeu. C'est disponible ici :
> Merci ! c'est sympa ...
> ça lui donne effectivement un peu plus de visibilité ;-)
> (dommage que la version sonorisée déconne encore actuellement ;-( )
> Peux-tu faire un tutorial de comment réaliser un jeu ?
> En se basant sur ton "Simon" comme modèle ?
Malheureusement, il n'y a pas grand chose de plus à dire que dans le
tutorial officiel (http://elixir.freebox.fr/?section=documentation)
au lieu d'avoir un carré qui bouge, j'ai 4 carrés fixes
avec un simple mask (image trouée) par dessus (donc dans un layer
supérieur) pour donner l'illusion du classique simon.
Après, c'est peu ou prou la même gestion de touches que dans
simple.js ...
et une cinématique "joue/rejoue" (organisé par des timers et des
switchs).
Aussi, je me suis inspiré des exemples de jeux :
http://code.google.com/p/freebox-elixir/source/browse/#svn/trunk/jeux,
pour y tirer la façon de builder un edj (en mattant les makefiles),
pour y prendre la gestion du sons, ainsi que l'affichage de textes/
images (via les edc).
(J'ai même pu prendre du code JS de ma version web http://fr.ibraining.com/simon/,
puisque elixir se code en js)
J'ai un peu honte même, du code js ... il y aurait pas mal de boulot
pour le rendre présentable ;-) ... sinon, ce serait déjà fait.
Mais de là à faire un tutoriel sur "comment réaliser un jeu" ... j'ai
pas cette prétention ;-)
Cependant, j'ai déjà pratiquer du SDL (via pygame), et suis donc un
peu habitué à organiser du code de jeu. Mais bon la base de
"simple.js" est déjà une bonne base.
> Comment puis je faire pour l'essayer sur pc? Avec edje_viewer?
Si tu es sous linux, et que tu as installé elixir (et tout qui va
bien)
tu lances, en ligne de commande : "elixir simon.edj" ... et ça se
lance ...
(note que j'ai implémenter une façon d'y jouer sur PC, en utilisant
les touches Z,E,S & D ... ceci était surtout fait pour tester sur la
machine de dev)
>> Peux-tu faire un tutorial de comment réaliser un jeu ? >> En se basant sur ton "Simon" comme modèle ?
> Malheureusement, il n'y a pas grand chose de plus à dire que dans le > tutorial officiel (http://elixir.freebox.fr/?section=documentation) > au lieu d'avoir un carré qui bouge, j'ai 4 carrés fixes > avec un simple mask (image trouée) par dessus (donc dans un layer > supérieur) pour donner l'illusion du classique simon. > Après, c'est peu ou prou la même gestion de touches que dans > simple.js ... > et une cinématique "joue/rejoue" (organisé par des timers et des > switchs). > Aussi, je me suis inspiré des exemples de jeux : > http://code.google.com/p/freebox-elixir/source/browse/#svn/trunk/jeux, > pour y tirer la façon de builder un edj (en mattant les makefiles), > pour y prendre la gestion du sons, ainsi que l'affichage de textes/ > images (via les edc). > (J'ai même pu prendre du code JS de ma version web http://fr.ibraining.com/simon/, > puisque elixir se code en js)
> J'ai un peu honte même, du code js ... il y aurait pas mal de boulot > pour le rendre présentable ;-) ... sinon, ce serait déjà fait.
> Mais de là à faire un tutoriel sur "comment réaliser un jeu" ... j'ai > pas cette prétention ;-)
> Cependant, j'ai déjà pratiquer du SDL (via pygame), et suis donc un > peu habitué à organiser du code de jeu. Mais bon la base de > "simple.js" est déjà une bonne base.
J'ai pris un peu le temps de regarder le code de ton exemple. Tu devrais regarder un peu du cote de edje pour toute ton animation, car franchement tu as complexifie pas mal ton code javascript.
Avec edje, tu pourrais utiliser edje_object_signal_emit pour declencher le debut de l'animation et enlever tout le code lie a ca de ton javascript (Ca enlevera aussi une bonne partie du code pour gerer la creation des objets). Si j'ai le temps cet apres midi, je te fairais un exemple de edje qui fait ca. -- Cedric BAIL
> J'ai pris un peu le temps de regarder le code de ton exemple. Tu
> devrais regarder un peu du cote de edje pour toute ton animation, car
> franchement tu as complexifie pas mal ton code javascript.
Comment as tu fait pour retrouver les sources js? Avec edje_decc, je
ne retrouve que le .edc.
> > J'ai pris un peu le temps de regarder le code de ton exemple. Tu
> > devrais regarder un peu du cote de edje pour toute ton animation, car
> > franchement tu as complexifie pas mal ton code javascript.
> Comment as tu fait pour retrouver les sources js? Avec edje_decc, je
> ne retrouve que le .edc.
avec edge_decc, pareil, je n'ai eu que le edc, le bg.png et un
"build.sh" (qui recompile le edj ? cependant si y a pas le js, je me
demande comment ça peut marcher ?!!)
> Avec edje, tu pourrais utiliser edje_object_signal_emit pour
> declencher le debut de l'animation et enlever tout le code lie a ca de
> ton javascript (Ca enlevera aussi une bonne partie du code pour gerer
> la creation des objets). Si j'ai le temps cet apres midi, je te
> fairais un exemple de edje qui fait ca.
ah oui, serait très curieux de voir ça ...
(j'ai vu des edje_object_signal_emit dans les exemples de jeux, mais
j'ai pas tout suivi)
>> J'ai pris un peu le temps de regarder le code de ton exemple. Tu >> devrais regarder un peu du cote de edje pour toute ton animation, car >> franchement tu as complexifie pas mal ton code javascript.
> Comment as tu fait pour retrouver les sources js? Avec edje_decc, je > ne retrouve que le .edc.
pas que je sois un fan de simon, mais par le fait que certain commence
à bosser pour nous autres utilisateurs mais néanmoins Geek .
De plus à une époque lointaine je programmais sous basic (cpc 464 en
1988)
Par contre j ai une machine sous ubuntu je vais tester, prendre un
programme et le bidouiller....aie de longues soirées à prévoir!
>> Avec edje, tu pourrais utiliser edje_object_signal_emit pour >> declencher le debut de l'animation et enlever tout le code lie a ca de >> ton javascript (Ca enlevera aussi une bonne partie du code pour gerer >> la creation des objets). Si j'ai le temps cet apres midi, je te >> fairais un exemple de edje qui fait ca.
> ah oui, serait très curieux de voir ça ... > (j'ai vu des edje_object_signal_emit dans les exemples de jeux, mais > j'ai pas tout suivi)
Alors juste quelque commentaire un peu globaux.
Tout d'abord les background, meme avec de l'alpha, il vaut mieux les declarer en LOSSY, ca evite que le fichier edj genere n'est une taille colossal. En gros, utiliser la directive COMP quand c'est quelque chose qui va attirer le regard, ca vaut le coup.
Ensuite, il vaut mieux gerer un maximum d'objet et d'animation (d'effet) dans le edje. Ca limite le nombre de calcul dans le JS, diminue le temps d'initialisation et en plus ca permet de plus facilement changer le design de l'appli. Si tu veux voir la difference, j'ai mis en fichier joinds une serie d'image que tu peux utiliser pour changer le look de ton appli sans toucher a une seule ligne de ton JS. L'idee derriere cette technique, c'est qu'on peut proposer un theme plus ou moins complexe en fonction de la machine sur laquelle tourne elixir sans redevelopper la logique du jeu.
J'ai aussi diminue la zone ou se trouvait le texte. Car a chaque fois que tu le changes, tu vas declencher une mise a jour de tous les objets couverts. En mettant une zone qui couvre tout l'ecran, tu vas forcer une mise a jour de tout l'ecran alors que ce n'est pas necessaire. Bon ici, ca n'impact pas vraiment les perfs, mais dans un jeu plus complexe, ca vaut le coup :-)
Si tu veux comprendre l'enchainement des signaux edje, j'ai laisse un appel a edje_object_signal_callback_add en commentaire. Enfin si tu veux voir comment le framerate impacte les animations edje, tu peux jouer avec ecore_animator_frametime_set (Les animators sont des especes de timer qui arrivent tous au meme moment a interval regulier, ce qui est pratique quand on veut que toutes les animations soient synchronise :-) ).
Voila, c'est un truc vite fait. N'hesite pas a me poser des questions. -- Cedric BAIL
> > ah oui, serait très curieux de voir ça ...
> > (j'ai vu des edje_object_signal_emit dans les exemples de jeux, mais
> > j'ai pas tout suivi)
> Alors juste quelque commentaire un peu globaux.
déjà, merci à toi d'avoir pris tout ce temps pour me faire de l' "aide
sur mesure/adapté".
pour "ma défense" , il est vrai que pour releaser un simon vite
fait ... j'ai de loin pas plonger dans les doc, et pu appercevoir les
subtilités d'edge. Je n'ai fait que du hack ...
maintenant, grace à ton post, je vois/comprends bien les subtilités
d'edge, et autres briques d'enlightment.
> Tout d'abord les background, meme avec de l'alpha, il vaut mieux les
> declarer en LOSSY, ca evite que le fichier edj genere n'est une taille
> colossal. En gros, utiliser la directive COMP quand c'est quelque
> chose qui va attirer le regard, ca vaut le coup.
en fait, la directive LOSSY est là pour compresser (lossy avec
perte ?)
moi j'avais pris COMP, car c'est ce que je trouvais en général dans
les exemples ;-)
en plus, ça m'aurait permis de consommer moins de BP sur mon site (un
gae free) ... (1go today) ;-)
> Ensuite, il vaut mieux gerer un maximum d'objet et d'animation
> (d'effet) dans le edje. Ca limite le nombre de calcul dans le JS,
> diminue le temps d'initialisation et en plus ca permet de plus
> facilement changer le design de l'appli. Si tu veux voir la
> difference, j'ai mis en fichier joinds une serie d'image que tu peux
> utiliser pour changer le look de ton appli sans toucher a une seule
> ligne de ton JS. L'idee derriere cette technique, c'est qu'on peut
> proposer un theme plus ou moins complexe en fonction de la machine sur
> laquelle tourne elixir sans redevelopper la logique du jeu.
très interessant, je vais plonger dans ton edc demain pour
comprendre ...
là, je l'ai juste fait tourner localement, et effectivement les fade-
in/out le font carrément.
tout en coûtant moins cher au js. sympa !
le principe de séparation forme/contenu est bien vu.
> J'ai aussi diminue la zone ou se trouvait le texte. Car a chaque fois
> que tu le changes, tu vas declencher une mise a jour de tous les
> objets couverts. En mettant une zone qui couvre tout l'ecran, tu vas
> forcer une mise a jour de tout l'ecran alors que ce n'est pas
> necessaire. Bon ici, ca n'impact pas vraiment les perfs, mais dans un
> jeu plus complexe, ca vaut le coup :-)
c'est clair ...
pour ma part, je n'avais même pas chercher à comprendre comment
définir une zone qui n'englobait pas la totalité.
j'avais juste jouer avec les params pour que ça s'affiche où je
voulais.
> Si tu veux comprendre l'enchainement des signaux edje, j'ai laisse un
> appel a edje_object_signal_callback_add en commentaire. Enfin si tu
> veux voir comment le framerate impacte les animations edje, tu peux
> jouer avec ecore_animator_frametime_set (Les animators sont des
> especes de timer qui arrivent tous au meme moment a interval regulier,
> ce qui est pratique quand on veut que toutes les animations soient
> synchronise :-) ).
je jette un coup d'oeuil demain.
> Voila, c'est un truc vite fait. N'hesite pas a me poser des questions.
les images que tu as fournie ... tu ne les a quand même pas fait pour
moi ? (ce serait vraiment trop du sur mesure)
(peut être, préparez vous un simon ? (no soucis))
je tenterai bien, un simon, avec ces ressources ... mais bon ... ce
serait pas vraiment self-made ... ça serait pas pareil.
(et niveau légalité ? ... c'est des ressources "free.fr")
>> > ah oui, serait très curieux de voir ça ... >> > (j'ai vu des edje_object_signal_emit dans les exemples de jeux, mais >> > j'ai pas tout suivi)
>> Alors juste quelque commentaire un peu globaux.
> déjà, merci à toi d'avoir pris tout ce temps pour me faire de l' "aide > sur mesure/adapté". > pour "ma défense" , il est vrai que pour releaser un simon vite > fait ... j'ai de loin pas plonger dans les doc, et pu appercevoir les > subtilités d'edge. Je n'ai fait que du hack ... > maintenant, grace à ton post, je vois/comprends bien les subtilités > d'edge, et autres briques d'enlightment.
Oula, pas besoin de te "defendre". C'est plutot sympa d'avoir un premier jeu.
>> Tout d'abord les background, meme avec de l'alpha, il vaut mieux les >> declarer en LOSSY, ca evite que le fichier edj genere n'est une taille >> colossal. En gros, utiliser la directive COMP quand c'est quelque >> chose qui va attirer le regard, ca vaut le coup.
> en fait, la directive LOSSY est là pour compresser (lossy avec > perte ?)
Oui, c'est ca. A noter, que le LOSSY de edje gere la composante alpha.
> moi j'avais pris COMP, car c'est ce que je trouvais en général dans > les exemples ;-) > en plus, ça m'aurait permis de consommer moins de BP sur mon site (un > gae free) ... (1go today) ;-)
>> Ensuite, il vaut mieux gerer un maximum d'objet et d'animation >> (d'effet) dans le edje. Ca limite le nombre de calcul dans le JS, >> diminue le temps d'initialisation et en plus ca permet de plus >> facilement changer le design de l'appli. Si tu veux voir la >> difference, j'ai mis en fichier joinds une serie d'image que tu peux >> utiliser pour changer le look de ton appli sans toucher a une seule >> ligne de ton JS. L'idee derriere cette technique, c'est qu'on peut >> proposer un theme plus ou moins complexe en fonction de la machine sur >> laquelle tourne elixir sans redevelopper la logique du jeu.
> très interessant, je vais plonger dans ton edc demain pour > comprendre ... > là, je l'ai juste fait tourner localement, et effectivement les fade- > in/out le font carrément. > tout en coûtant moins cher au js. sympa ! > le principe de séparation forme/contenu est bien vu.
>> J'ai aussi diminue la zone ou se trouvait le texte. Car a chaque fois >> que tu le changes, tu vas declencher une mise a jour de tous les >> objets couverts. En mettant une zone qui couvre tout l'ecran, tu vas >> forcer une mise a jour de tout l'ecran alors que ce n'est pas >> necessaire. Bon ici, ca n'impact pas vraiment les perfs, mais dans un >> jeu plus complexe, ca vaut le coup :-)
> c'est clair ... > pour ma part, je n'avais même pas chercher à comprendre comment > définir une zone qui n'englobait pas la totalité. > j'avais juste jouer avec les params pour que ça s'affiche où je > voulais.
>> Si tu veux comprendre l'enchainement des signaux edje, j'ai laisse un >> appel a edje_object_signal_callback_add en commentaire. Enfin si tu >> veux voir comment le framerate impacte les animations edje, tu peux >> jouer avec ecore_animator_frametime_set (Les animators sont des >> especes de timer qui arrivent tous au meme moment a interval regulier, >> ce qui est pratique quand on veut que toutes les animations soient >> synchronise :-) ).
> je jette un coup d'oeuil demain.
>> Voila, c'est un truc vite fait. N'hesite pas a me poser des questions.
> les images que tu as fournie ... tu ne les a quand même pas fait pour > moi ? (ce serait vraiment trop du sur mesure)
Oula, non, je suis trop mauvais pour faire le moindre dessin :-) C'est notre infographiste qui m'avait fait ca en prevision de la sortie. Car ca faisait partie des petits sympa qui pouvait etre fait rapidement et facilement. Ca peut aussi etre une bonne source pour un tutorial simple. D'ailleur pour ceux que ca interresse, j'ai aussi les graphismes d'un mastermind.
> (peut être, préparez vous un simon ? (no soucis))
Nop. Je prepare autre chose :-)
> je tenterai bien, un simon, avec ces ressources ... mais bon ... ce > serait pas vraiment self-made ... ça serait pas pareil. > (et niveau légalité ? ... c'est des ressources "free.fr")
Yep, c'est du fait maison. Tu peux en faire ce que tu veux. -- Cedric BAIL
Merci, j'ai installé SQLite au passage, ensuite, j'ai téléchargé Elixir, le ./configure ne signalait rien de mauvais, mais quand j'ai fait le make, j'ai eu droit à quelques jolies insultes du compilateur :
ecore_module.c: In function ‘elixir_ecore_thread_run’: ecore_module.c:908: error: too few arguments to function ‘ecore_thread_run’ make[5]: *** [ecore_module.lo] Erreur 1 make[5]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/ modules/bindings/ecore » make[4]: *** [all-recursive] Erreur 1 make[4]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/ modules/bindings » make[3]: *** [all-recursive] Erreur 1 make[3]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/ modules » make[2]: *** [all-recursive] Erreur 1 make[2]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src » make[1]: *** [all-recursive] Erreur 1 make[1]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24 » make: *** [all] Erreur 2
> Merci, j'ai installé SQLite au passage, ensuite, j'ai téléchargé > Elixir, le ./configure ne signalait rien de mauvais, mais quand j'ai > fait le make, j'ai eu droit à quelques jolies insultes du > compilateur :
> ecore_module.c: In function ‘elixir_ecore_thread_run’: > ecore_module.c:908: error: too few arguments to function > ‘ecore_thread_run’ > make[5]: *** [ecore_module.lo] Erreur 1 > make[5]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/ > modules/bindings/ecore » > make[4]: *** [all-recursive] Erreur 1 > make[4]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/ > modules/bindings » > make[3]: *** [all-recursive] Erreur 1 > make[3]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/ > modules » > make[2]: *** [all-recursive] Erreur 1 > make[2]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src > » > make[1]: *** [all-recursive] Erreur 1 > make[1]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24 » > make: *** [all] Erreur 2
Ta version des EFL est soit trop recente, soit trop vieille par rapport a ta version des EFL. Si tu as recupere les EFL sur le SVN, alors utiliser la version SVN de elixir. Si tu as recupere les packages sur la page google, alors utilises la versions package de elixir. -- Cedric BAIL