Pages: 1
Je soumets à vos neurones aguerris un petit problème ^^!
Je travaille sur un petit jeu vidéo, un FPS en vue subjective. http://ricord.ultra-book.com/book
Le jeu en lui même constitue un sketch puis j'ai préparé un second sketch, une petite intro animée qui lorsque l'on clique doit lancer le jeu. Donc je dispose de deux sketchs distincts!
Comment parvenir à ce résultat sans fusionner les sketchs et me tordre à nouveau le cerveau?
1) lecture du sketch 1 (animation)
2) évènement: "clique" par exemple
3) lecture du sketch 2 (jeu)
Merci!
Hors ligne
Hello,
tu devrais regarder de ce côté : http://www.openprocessing.org/sketch/6573
ça ne devrait pas être top dur à mettre en oeuvre
Chouette univers graphique en tout cas, j'aime beaucoup !
Je suis aussi pas mal intéressé par la création de jeux avec processing mais je n'en suis pas encore là, du coup j'ai hâte de voir ce que ça va donner.
bon code et tiens nous au courant
Hors ligne
Merci pour ta réponse... La solution semble se trouver là... encapsuler chaque sketch dans une classe, le tout piloté par un sketch "maître"...
http://processing.org/discourse/beta/nu … 46601.html
Pénible ^^!
Hors ligne
Hé bin j'ai beau gesticuler rien à faire... je vais préciser mon problème!
Un sketch "maître" doit appeler des sketchs "esclaves" à l'aide d'un évènement clavier ou souris.
Les sketchs esclaves sont pourvus d'un setup et d'une méthode draw, il faut donc éviter le conflit...
Si quelqu'un peut m'aider à rédiger ce bazar le coup de pouce sera grandement apprécié!
Hors ligne
Je ne comprends pas bien quel est le pb que tu rencontres.
Selon l'exemple de OpenProcesing :
- il te faut un nouvau sketch qui sera ton sketch maitre ici c'est sketch_in_space.pde tu peux donc l'utiliser comme template.
- pour tes autres sketchs il suffit de les encapsuler dans une classe comme tu le dis :
class monSketch extends SketchInSpace {
// l'ensemble de ton sketch doit être ici ici (y compris le draw() et le setup(), les déclarations préalables ainsi que les classes relatives à ton code)
}
- ensuite tu réalises les changement imposés dans sketch_in_space.pde en remplaçant les noms des sketches par les tiens. (en te référant à la ligne commentée //create sketches qui crée un tableau stockant les ref des sketches que tu veux faire tourner).
- enfin tu t'assures d'avoir bien les fichiers control.pde (gestion de la souris ou du clavier), screen_cords.pde (des fonction permettant d'adapter la taille de tes sketches a ton sketch principal), et sketch_jockey.pde (la classe permettant de lire les sketches dans le sketch principal) dans ton dossier de travail
et normalement c'est bon, si j'ai le temps j’essaierai de le faire de mon côté, quel type de pb tu rencontres ?
Après effectivement je n'ai pas encore essayé donc tout ça c'est de la théorie...
Hors ligne
Hé bien je vais essayer tout ça... merci!
Hors ligne
j'ai testé l'encapsulage... à partir de sketch_in_space...
Pas très concluant car ce sketch transpose sur une surface 3D (manipulable à l'aide de PeasyCam) différents sketchs. Certes on peut "zapper" d'un sketch à l'autre mais mes sketchs étant eux-mêmes des environnements 3D cela devient vite la pagaille! et quoi qu'il arrive ça ne marche pas...
N'y a-t-il donc aucune solution toute bête pour "switcher" d'un sketch à l'autre à l'aide d'un évènement tout simple?
Au risque de recevoir des cartes arduino sur la g***** ... dans le genre Action Script??
on (press) {
play ( );
}
Hors ligne
et ils disent quoi sur le forum officiel ?
Hors ligne
J'ai trouvé... ça! qui semble une solution abordable...
http://processing.org/discourse/beta/nu … 404.html#6
Hors ligne
il me semble que c'est a peu près la même chose
un array(List) qui stocke les références des sketchs et de classes héritées qui étendent une classe principale ( et override(nt) le draw) , l'implémentation ici est plus claire et plus élégante je trouve (classe abstraite et interface c'est classe ^^ ). C'est vrai que dans l'autre exemple c'était un peu plus confus.
edit (pour info)
en faisant joujou j'ai remplacé la condition du draw principal à savoir :
if (time - currentDuration > currentDrawer.GetDuration())
{
currentDrawerIdx++;
currentDuration = time;
(...)
par
if (mousePressed)
{
currentDrawerIdx++;
mousePressed = false;
(...)
et les sketchs sont "switchés" en cliquant sur la souris, du coup y' a plus qu'à empaqueter ton code là dedans et ça devrait être bon
Dernière modification par Berenger (2012-09-12 01:08:26)
Hors ligne
Voilà qui est mieux en effet ... et plus élégant ^^!
Je bidouille le tout et je fais suivre mes explorations!
Xanks!
Hors ligne
Pages: 1