Messagerie


Un p'tit coup d'pouce? S'il vous plaît?

Beignet
dimanche 17 avril 2016 à 18:00
Bien l'boujour amis Clickeurs.

Ce sont les yeux emplis de larmes, le cœur lourd et l'âme en peine que je me tourne vers vous pour m'aider et me conseiller dans l'élaboration d'une mécanique de jeu. Petit jeu que j'ai à réaliser sous Clickteam Fusion 2.5 et dans le cadre de mes études universitaires.

Pour vous expliquer succinctement le gameplay de mon jeu il est assez proche de celui de Duck hunt. Des cibles apparaissent aléatoirement à l'écran et nous devons les abattre avant qu'elles n'atteignent le côté opposé de l'écran. La différence réside tout de même dans le fait que notre avatar est visible à l'écran et ne se déplace et tire, à l'instar d'un Space Invaders, que sur un unique axe et nous devons donc l'aligner avec la cible à abattre.

Si tout le reste fonctionne comme une horloge (déplacement du personnage, cadence de tir, collisions, etc... ), j'aurais besoin de votre aide pour programmer les cycles d'apparition des cibles.

Un bon schéma valant parfois mille discours je me suis permis de vous en faire un afin de vous aider à visualiser mon problème.



Nous avons donc notre scène de jeu (encadré noir), notre avatar (bonhomme rouge) qui se déplace sur un unique axe (double flèche verte) et qui ne peut tirer que dans une unique direction (flèche horizontale orangée) afin d'abattre les cibles qui tombent du haut de l'écran. Et ce sont pour ces dernières que j'aurais besoin de votre aide.

Je souhaiterais que la cible 1 (en rouge) soit recréée et tombe aléatoirement toute les 4 secondes par exemple. Enfin, pour être plus précis je voudrais que la cible 1 enclenche sa chute aléatoirement dans un laps de temps qui se répéterait toute les 4 secondes. En gros la même cible peut très bien se suivre avec 1 seconde d’intervalle, puis la fois suivante avec 3 secondes. Mais qu'au moins une chute soit enclenchée en moyenne toute les 4 secondes. Je voudrais aussi qu'elle me choisisse à chaque fois une position "X" aléatoire se trouvant sur l'axe bleu en dehors de la scène. Enfin, la cible 2 (orange) obéira aux mêmes règles que la première avec des valeurs différentes, sauf que je souhaiterais que son entrée en jeu ne se fasse que 45 secondes après le début de la partie.

C'est là que c'est beau, propre et économique. C'est que mon jeu comporte pas moins de 7 cibles différentes avec des vitesses de chutes elles aussi différentes, déjà rentrées dans leurs propriétés, mais une fois que vous m'aurez expliqué le moyen de programmer ces "boucles" de chutes pour les deux premières cibles décrites plus haut il en sera de même pour les cinq autres, j'en aurais juste à en modifier les valeurs.

Voilà, j'espère ne pas avoir été trop long, j'ai lu dans les conditions générales du forum d'entraide qu'il valait mieux être le plus concis possible mais je tenais vraiment à vous décrire le gameplay global de mon prototype afin de vous aider à visualiser mon problème. 

Je vous remercie par avance et vous souhaite une bien belle journée.  ;)
Patrice
2784 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 17 avril 2016 à 19:35
Moi j'aurai utilisé X chances sur Y
Sachant que le jeu tourne en 60fps, 4 secondes ça fait 240.
Donc une chance sur 240 de créer une cible.

Pièces jointes
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 17 avril 2016 à 20:50
À mon avis, je n'utiliserais pas une boule à proprement parlé.

Pour commencer je ferait un objet actif qui servira de spawner. Puis, disons qu'on va appeler l’apparition de la cible Spawn.
• Lors de l’événement Spawn, on déplace le spanwner, on crée une cible sur le spawner puis on lance l'événement spawn au bout d'un temps aléatoir entre 1 et 4000 milisecondes.
Beignet
dimanche 17 avril 2016 à 21:02
Aaaahhh!!! Super! Merci pour la réponse rapide et l'envoie de l'exemple "mfa".

Ça fait trois jours entiers que je passe sur ce problème là des cibles et étant loin d'être expert du soft j'étais malgré tout arrivé au résultat que je voulais, mais c'était loin d'être aussi propre et efficace que ce que vous m'avez proposé.

Comme quoi, l'évidence a parfois du mal à sauter aux yeux.

Par contre parmi mes très nombreuses tentatives un problème demeurait. Ma première cible, dans un soucis de proposer une difficulté progressive, est particulièrement lente à descendre et met dans tous les cas bien plus de 4 secondes à arriver au bas de l'écran. Et dans mon souhait de créer la cible sur une coordonnée aléatoire de l'axe "x" se trouvant au dessus de la scène, la position "x" de la cible était recalculée durant sa chute. Ce qui apporte une difficulté absurde et injuste et qui n'était de toute manière pas un effet désiré. J'avais pensé insérer deux fois le même actif pour effectuer des rotations dirons nous, mais ça ne résolvait pas vraiment le problème et ce doublon de la même cible "noyait" l'écran une fois les autres entrées en jeu.

Si vous, ou un autre clickeur avait une solution ou des recommandations à me donner pour arriver à un résultat bien plus propre que ce que j'ai réussi à avoir avec mes petits doigts pour qu'une fois que la cible a entamé chute qu'elle reste droite dans sa course pendant qu'une autre (du même actif) est créée sur une coordonnée choisie aléatoirement  sur l'axe "x" se trouvant au dessus de la scène.

Merci et bonne soirée.
Beignet
dimanche 17 avril 2016 à 21:09

À mon avis, je n'utiliserais pas une boule à proprement parlé.

Pour commencer je ferait un objet actif qui servira de spawner. Puis, disons qu'on va appeler l’apparition de la cible Spawn.
• Lors de l’événement Spawn, on déplace le spanwner, on crée une cible sur le spawner puis on lance l'événement spawn au bout d'un temps aléatoir entre 1 et 4000 milisecondes.


Oh! Excusez-moi il y a eu une réponse entre temps.

Vous voulez dire que je devrais insérer un actif qui créé la cible, et ce serait la position de ce même premier actif qui changerai aléatoirement sur l'axe "x" avant de "lâcher" la cible à un moment aléatoirement choisi dans ce laps de temps de 4 secondes.

très bonne idée. Mais j'aurais par contre besoin d'un actif pour chacune de mes six autres cibles différentes qui entrent progressivement en scène au long de la partie.

Mais l'idée serai de programmer un "lanceur" en quelque sorte, dont la position change?
Kloug
1497 messages
Fusion 2.5
dimanche 17 avril 2016 à 21:47
Salut,

Ex cible:
https://www.dropbox.com/s/pbtyi9pnfue4jvi/Ex%20Cible.mfa?dl=0

A+
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
lundi 18 avril 2016 à 08:29
Tu peux faire ça avec le même spawner pou toutes les cibles, ça ne pose pas de soucis.

Je fais un exemple après mon café.

[edit] Café pris, voilà l'exemple :
Modifié le lundi 18 avril 2016 à 09:14 par Seyjin
Pièces jointes
Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
lundi 18 avril 2016 à 11:17
Bonjour
Autre exemple sant se prend  la tête  ;)
mais j ai trouve un BUG regarde si on utiles le mouvement Contrôle sourie pour le joueur et que on clique pour fait  tir un objet rien se passe  ??? et si on le supprime le contrôle sa marche vous pouvais me confirme de votre cote pour savoir si c est bien un bug.
j ai installe la dernier version Beta 285.2 voire si ça fait la même chose pour se qui sont en version normal comme ça je pour le metre dans BOXBUG Merci
Modifié le lundi 6 mai 2019 à 10:04 par Emmanuel
Pièces jointes
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
lundi 18 avril 2016 à 11:29
Salut salut,

Ce n'est pas un bug. Si tu utilise un mouvement à la souris, le clic gauche devient le bouton de tir 1.
Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
lundi 18 avril 2016 à 11:46
Merci Seyjin j avais complètement oublié ça  ::)
Beignet
mercredi 20 avril 2016 à 21:04
Yes! Merci à vous tous pour votre aide! Ca fonctionne du feu de Dieu!  :bravos

Merci à Patrice pour son exemple mfa sur l'utilisation du "X chances sur Y au hasard". A Seyjin pour m'avoir inspiré l'idée d'un "lanceur" dont le positionnement change aléatoirement et sur lequel se fixe la position des cibles avant d'être lancées.

Et merci aussi aux autres.  ;)

Bon, pour être honnête, à l'exception de l'exemple mfa de Patrice je ne me suis pas servi des autres. Une fois l'idée du "lanceur" inspirée j'ai cherché à programmer ça tout seul, vu que ça se passe dans le cadre de mes études universitaire l'intérêt est que j'apprenne un maximum par moi-même, mais merci encore de m'avoir aiguillé.

Du coup j'ai aussi trouvé la solution pour l'entrée en jeu progressive des cibles suivantes, en regroupant les conditions qui programme leur création sur la position du lanceur en groupes d’événements qui sont désactivées en début de scène et qui s'activent une fois le "timer" arrivé à "x" secondes de la partie.

Du coup ça fait une belle courbe de progression comme dans un Mister Game&Watch Fire.

Merci encore pour votre aide, et désolé de ne pas être venu vous informer plus tôt que ça fonctionnait comme une horloge, j'ai été pris par d'autres projets tout aussi importants pour la fac.

Est-ce que, comme dans certains forums, il faut mettre le topic comme étant "résolu" ou un truc comme ça?
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
mercredi 20 avril 2016 à 21:15
Une fois l'idée du "lanceur" inspirée j'ai cherché à programmer ça tout seul, vu que ça se passe dans le cadre de mes études universitaire l'intérêt est que j'apprenne un maximum par moi-même, mais merci encore de m'avoir aiguillé.


Tu as tout à fait raison d'avoir fait comme ça. C'est mieux pour comprendre ce que l'on fait.

Il n'y a pas de statut Résolu.
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 10 visiteurs au total

Derniers messages