Aïe aïe aïe...
Faire de l'objet est stupide ? Tout mettre dans une fonction c'est mieux ? Franchement tu me fais peur là. Tu devrais peut-être revoir tes ambitions de développement de jeu vidéo à la baisse et te former davantage... Autant se passer d'objet, ça peut tenir la route. On en a pas tout le temps besoin, et des langages ne s'y prêtent pas / mal. Autant, se passer de faire des fonctions, et dire que c'est stupide de faire de l'objet... Là j'ai du mal à te suivre.
Bon, soit je m'exprime mal, soit j'ai fait fausse route jusqu'à présent. Soit tu manques de recul en programmation pour comprendre des notions un chouilla abstraites .
En gros, avec la méthodologie et le raisonnement que tu as :
- Tu dois copier / coller des instructions à chaque fois que tu en as besoin ( car pas de fonction )
- Quand tu veux modifier un "comportement", une action : tu dois la modifier autant de fois qu'elle se trouve dans ton code. Supposons qu'il y a 5 façons d'avoir un message à l'écran : le perso clique sur un npc, sur une maison, sur le bouton d'aide, le perso meurt, le perso passe un level. Tu vas devoir aller à chacun de ces endroits dans ton code et faire les mêmes modifs
- Vu que tu fous tout dans un même fichier ( ce qui n'est pas un tort lorsqu'on passe en production, mais là le prob est d'ordre conceptuel ), c'est la grande joie pour s'y retrouver dans un grand nombre de lignes de code, toutes interdépendantes les unes des autres.
- Tu ne cherches pas à comprendre comment marche javascript, pourquoi la fonction sleep ne se prêterait pas à ton problème, pourquoi il y a une fonction setTimeout, pourquoi c'est pas comme PHP, pourquoi il faut éviter les boucles while bloquantes. Donc forcément, ta paresse te conduit dans des impasses où il faudra toujours utiliser des rustines pour t'en sortir.
Ce ne serait pas plus simple d'avoir des fonctions moveTo, afficherMsg, cacherMsg etc ?
Le premier bout de code que j'ai posté avec setTimeout, ne répond-il pas néanmoins à ta problématique ?
Le deuxième bout de code parle d'une fonction qui retarde les fonctions. Comme setTimeout, sauf que c'est plus propre, plus lisible. L'exemple parle de fonction anonyme donc c'est pas génial. Mais en gros, au lieu de faire
setTimeout("maFonction('test')", 200);
Tu fais
maFonction.defer(200, ['test']);
Defer est ajouté au prototypes des fonctions, on le retrouve donc dans toutes les fonctions.
Et vite fait, pour le premier point :
J'ai cru comprendre que dans ton jeu, le joueur pourra cliquer avec sa souris, comme c'est le cas presque partout sur Internet. Donc je trouvais ça bizarre de "désactiver les liens" comme solution pour l'empêcher d'interagir avec le jeu. Parce qu'après faut réactiver les liens. Mais décidément, on n'a pas la même conception des choses. Je respecterai la tienne quand tu mettras ton jeu en ligne...
Mais je te souhaite tout de même bonne chance pour la suite, et je continuerai à te marteler le cerveau pour que tu factorises ton code
Faire de l'objet est stupide ? Tout mettre dans une fonction c'est mieux ? Franchement tu me fais peur là. Tu devrais peut-être revoir tes ambitions de développement de jeu vidéo à la baisse et te former davantage... Autant se passer d'objet, ça peut tenir la route. On en a pas tout le temps besoin, et des langages ne s'y prêtent pas / mal. Autant, se passer de faire des fonctions, et dire que c'est stupide de faire de l'objet... Là j'ai du mal à te suivre.
Bon, soit je m'exprime mal, soit j'ai fait fausse route jusqu'à présent. Soit tu manques de recul en programmation pour comprendre des notions un chouilla abstraites .
En gros, avec la méthodologie et le raisonnement que tu as :
- Tu dois copier / coller des instructions à chaque fois que tu en as besoin ( car pas de fonction )
- Quand tu veux modifier un "comportement", une action : tu dois la modifier autant de fois qu'elle se trouve dans ton code. Supposons qu'il y a 5 façons d'avoir un message à l'écran : le perso clique sur un npc, sur une maison, sur le bouton d'aide, le perso meurt, le perso passe un level. Tu vas devoir aller à chacun de ces endroits dans ton code et faire les mêmes modifs
- Vu que tu fous tout dans un même fichier ( ce qui n'est pas un tort lorsqu'on passe en production, mais là le prob est d'ordre conceptuel ), c'est la grande joie pour s'y retrouver dans un grand nombre de lignes de code, toutes interdépendantes les unes des autres.
- Tu ne cherches pas à comprendre comment marche javascript, pourquoi la fonction sleep ne se prêterait pas à ton problème, pourquoi il y a une fonction setTimeout, pourquoi c'est pas comme PHP, pourquoi il faut éviter les boucles while bloquantes. Donc forcément, ta paresse te conduit dans des impasses où il faudra toujours utiliser des rustines pour t'en sortir.
Ce ne serait pas plus simple d'avoir des fonctions moveTo, afficherMsg, cacherMsg etc ?
Le premier bout de code que j'ai posté avec setTimeout, ne répond-il pas néanmoins à ta problématique ?
Le deuxième bout de code parle d'une fonction qui retarde les fonctions. Comme setTimeout, sauf que c'est plus propre, plus lisible. L'exemple parle de fonction anonyme donc c'est pas génial. Mais en gros, au lieu de faire
setTimeout("maFonction('test')", 200);
Tu fais
maFonction.defer(200, ['test']);
Defer est ajouté au prototypes des fonctions, on le retrouve donc dans toutes les fonctions.
Et vite fait, pour le premier point :
J'ai cru comprendre que dans ton jeu, le joueur pourra cliquer avec sa souris, comme c'est le cas presque partout sur Internet. Donc je trouvais ça bizarre de "désactiver les liens" comme solution pour l'empêcher d'interagir avec le jeu. Parce qu'après faut réactiver les liens. Mais décidément, on n'a pas la même conception des choses. Je respecterai la tienne quand tu mettras ton jeu en ligne...
Mais je te souhaite tout de même bonne chance pour la suite, et je continuerai à te marteler le cerveau pour que tu factorises ton code