Vincent Barrier
Univers Freebox.
2009/11/24 manatlan <mana...@gmail.com>:
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
eet -x simon.edj "elixir/main" simon.js
--
Cedric BAIL
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
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) ;-)
Clairement :-)
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
Registering loader: 'edje'.
Registering loader: 'text'.
Registering loader: 'eet'.
Registering security: 'cmp'.
Unregistering security: 'cmp'.
Registering security: 'remote'.
Unregistering security: 'remote'.
Registering security: 'let'.
Registering bindings: 'ecore-con'.
Registering bindings: 'ecore-job'.
Registering bindings: 'evas'.
Registering bindings: 'file'.
Registering bindings: 'ecore'.
Registering bindings: 'ecore-evas'.
Registering bindings: 'dir'.
Registering bindings: 'edje'.
Registering bindings: 'elixir'.
Registering bindings: 'eet'.
looking for bindings: elixir => 0xa7d0e0.
chdir to `.`.
Trying: 'eet' with 'simon.edj' [1 < 1 < 3].
sign init
Trying compiled version.
Failed.
looking for bindings: evas => 0x97c310.
looking for bindings: ecore => 0x683160.
looking for bindings: ecore-evas => 0x6de1e0.
looking for bindings: edje => 0xa54a4c.
looking for bindings: mix => (nil).
Je dois réinstaller Elixir ? Ou j'ai des libs pas installées ?
Merci d'avance,
Lineplus.
/home/marin/Bureau/simon/simon.edj:285: ReferenceError: Mix_OpenAudio
is not defined
Si tu as installe SDL_Mixer apres Elixir. Oui, il faut recompiler
elixir pour qu'il detecte et installe le binding SDL_Mixer.
--
Cedric BAIL
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