Messagerie


Apparition ennemis

217 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur iOS Exporteur Android Exporteur HTML5
mercredi 14 août 2019 à 23:33

Bonjour a tous,


Je suis sur un nouveau projet de shoot them up pour android, histoire de me refaire la main.


Je voudrais faire un systéme de vague d'ennemis, qui viendrais affronter le joueur, chaque groupe d'ennemis de la vague suit un cheminement spécifique par vague.

Je vous expose donc comment j'ai procédé pour créer les ennemis :

J'ai créé deux actifs distincts  avec plusieurs mouvements cheminements. Pour la vague 1, cheminement 1; vague 2, cheminement 2, etc...

J'ai donc créer des groupes d'événements qui s'activent a chaque fin de la vague précédente.

Dans ces groupes d'événements, je viens fixer mes ennemis sur mon actif, j'ai créé tous mes ennemis en amont a côté de la scène au préalable, puis ils suivent donc le chemins de l'actif auxquels ils sont rattachés, avec le bon mouvement activé aussi.


Tout fonctionne, c'est une simple ébauche, mais je me demande si je ne me suis pas compliqué la tache avec cette méthode, et si vous avez une méthode plus simple.


Je vous laisse le mfa.


Merci !

Pièces jointes
Xenon3K
763 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
jeudi 15 août 2019 à 10:24

C'est pas mal de mettre les différentes vagues dans des groupes, par contre au bout d'un moment tu risque d'avoir des milliers de lignes de code juste pour tes vagues. L'idéale je pense est de faire un fichier (ini par exemple) qui indique l'ordre des vagues:

Tu as plusieurs groupes avec des noms explicites comme par exemple "5_ALIEN_SHIPS", "4_BLUE_SPIDERS" et dans ton fichier ini tu as

WAVE_1=5_ALIEN_SHIPS
WAVE_2=4_BLUE_SPIDERS

217 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 15 août 2019 à 10:43

Je maîtrise pas du tout le fichier ini, je ne sais même pas comment l'utiliser, je vais me pencher dessus, merci 


[EDIT] on peut utiliser le fichier ini sous android ? le but est de faire de ce jeux un apk pour android

Modifié le jeudi 15 août 2019 à 11:27 par Darwin
MrSinaf
32 messages
Fusion 2.5 Dev
jeudi 15 août 2019 à 11:30

Salut,

Tu devrais déjà penser un peu à ranger tout ça. Dans "l'éditeur d'événements", fait un clique droit sur un objet et fait "insérer un dossier objet", tu regroupe tout les mêmes ennemis dans des dossiers "Alien_ships", "Blue spiders", etc..
Ca sera déjà un peu plus visible et plus agréable pour créer.

Ensuite, non... Tu ne t'ai pas compliqué la tâche. Tu l'as énormément simplifié.
Comme a pu dire @Xenon3K; "...au bout d'un moment tu te retrouve avec des milliers de lignes de code...".
Ton objectif, ça serai de les minimiser au maximum (on peut appeler ça de l'optimisation), pour permettre avant tout de ne pas te perdre et en cadeau éviter de se décourager dans une montagne de lignes.

Le fichier ini est une bonne idée, mais tu pourrais aussi faire tout ça de façons aléatoire, ça minimiserai tes lignes, mais tu aurais moins de contrôle pour le choix d'ennemis.
Ensuite tu pourrais mettre dans un fichier (ini, si tu le souhaite), tout les paramètres de tes ennemis pour donner un exemple:

[Blue spiders]
Vies= 150
Vitesse= 40
Dégâts= 30
[Alien Ships]
Vies= 300
Vitesse= 20
Dégâts= 50

Comme tu peux le constater j'utilise toujours les mêmes paramètres pour que je n'ai qu'une ligne pour récupérer la vies/vitesse/dégâts de tout les ennemis.

(C'est ce que fait GTA V et GTA Online, pour leurs véhicules, ils ont juste une même liste pour tous les véhicules terrestre à compléter pour qu'une voiture soit différente d'une autres (Et après ils font sa modélisation.).
Ca limite dans un points, mais ça facilite dans un autre. A l'ajout des véhicules, ils n'ont pas à rajouter des codes par centaines, non... Ils doivent compléter le formulaire, créer sa modélisation et enfin ajouter +1 au nombres de véhicule.)



C'est ce que je fais constamment de mon côté; comme je crée 2 jeu l'un de survie, bac-à-sable (et l'autre avec plein de mini-jeux), j'ai besoins qu'un seul actif et seulement quelques lignes pour permettre de regrouper tout ce qui peut être un obstacle (mur, porte, etc...).


Dans un autre projet (celui avec les mini-jeux) j'avais fais ceci:

Ca me permet de charger une map aléatoire, sur n'importe quel mini-jeu.
Bon après il y a 3 lignes différente;
-la première c'est pour le tutoriel du mini-jeu.
-la seconde c'est pour que si le joueur avait déjà été là il charge la même map qu'il avait laissé
-la troisième permet que si il n'a pas une map à charger, il regard le nombre de map disponible, en prend une en aléatoire et la charge.


Je ne connais pas ton niveau sur Fusion 2.5, alors je ne sais si tu es capable de comprendre et d'utiliser ceci^.
Mais si tu souhaite le comprendre, pour pouvoir l'utiliser je pourrais te faire un tutoriel complet.

Ce qui est intéressant de pouvoir utilisé seulement 3 lignes différentes, pour charger, sauvegarder n'importe quelle map sur n'importe quelle mini-jeux et ça peu importe le nombre, en comptant même la difficulté (si il est en Facile, Normal, Difficile).

Dans ton cas ça serai de charger tout les paramètres qu'un ennemis peut avoir en seulement quelques lignes, et tout ça peut importe le nombre d'ennemis que tu crée !


Sur-ce, bonne chance à toi !

Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
jeudi 15 août 2019 à 11:54

Oui le fichier INI et compatible Android.

il y a pas une méthode c est celle ou tu la comprends le mieux et que du et a l'aise.

217 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 15 août 2019 à 12:05

Merci pour ton long message très instructif.


Je suis débutant, j'ai fait les tuto fourni par clickteam, j'ai fait aussi pas mal de tuto des membres du forum (Patrice et Kloug y sont pour beaucoup dans mon apprentissage) et j'ai fini mon premier projet, un jeux de plate-forme simpliste.


Je n'avais pas poussé la réflexion aussi loin, c'est très intéressant de lire tout ça. Le problème dans mon esprit c'est lors de la création de l'ennemis quand il vient se fixer sur l'actif qui sert pour les déplacements.

Si je dis "créer BlueShip a (0;0) sur actif déplacement" et "toujours fixer coordonnées relatif a actif déplacement" , je n'arrive pas a créé un deuxième bleu ship relatif a mon actif déplacement (pour qu'il suivent le mouvement toujours) mais avec d'autres coordonnées.

En début de scène

    -Créer [BleuShip] a (0;0) de actifDeplacement

   -Créer [BleuShip] a (30;0) de actifDeplacement

    -Créer [BleuShip] a (0;30) de actifDeplacement

Toujours

    -Fixer [BleuShip] a (0;0) de  actifDeplacement

     -Fixer [BleuShip] a (30;0) de  actifDeplacement 

     -Fixer [BleuShip] a (0;30) de  actifDeplacement


C'est quelque chose comme ça que j'aimerais faire, sauf que j'ai bien conscience qu'on parle du même objet, et qu'avec cette méthode (le "toujours") ça fonctionne pas; on dit au même objet de se positionner a plusieurs endroit différents en somme.

Du coup je n'ai pas trouvé d'autres techniques que de créer plusieurs BleuShip1, 2 , 3... pour pouvoir les fixer indépendamment a la coordonnée voulu par rapport a l'actif déplacement.

Ceci afin d'avancer un peu dans le projet, de me refaire la main aussi avec l'interface, et pas trop me décourager.

J'ai tendance a passer des jours voir semaines, a chercher a optimiser des lignes de codes, sans forcément y arriver vu mon faible niveau, du coup j'avance pas sur mon jeu et ça me décourage parfois. Donc parfois je fais avec mes connaissance pour voir a quoi ça pourrait ressembler.


Je vais donc bien me pencher sur vos exemples et refondre le projet.

Et oui, désolé pour la tronche du mfa, c'est sale, pas rangé, sans commentaires... bref, je vais faire le ménage aussi de ce côté la hihi.


MrSinaf
32 messages
Fusion 2.5 Dev
jeudi 15 août 2019 à 13:45

Hey !

Alors pour ton problème de fixer le même actif sur plusieurs endroits différent est plutôt assez simple à régler.

Ce que tu peux faire, c'est de créer une variable (ou valeurs, c'est la même chose pour moi). En le nommant "ID" (par exemple), ensuite tu fais quelque chose de ce genre:

Ainsi la valeurs ID de ces 5 actifs, seront différent de l'un et de l'autre (Tu peux faire ça aussi avec une boucle).
Ensuite tu n'a plus qu'à faire ceci:

Et voilà ! Chacun de tes actifs suivront la sourie avec chacun leur position !

En cadeau je te donne ce ".mfa", pour que tu puisse voir le résultat


Alors bien-sur...
Il ne fait que suivre la sourie, mais t'as cas changer ça pour qu'ils suivent ton actif.
C'est un moyen comme un autre, mais pour mieux personnaliser tes placements, je peux te faire un autre ".mfa", pour t'expliquer comment y procéder (avec un fichier ini).

A toi de voir, si tu es intéressé de procéder ainsi.


Je tiens juste à répondre à @Emmanuel sur:

"il y a pas une méthode c est celle ou tu la comprends le mieux et que du et a l'aise."

J'ai envie de dire totalement: NON !
Après c'est mon avis, mais je pense que c'est mieux d'essayer ou du moins de comprendre des méthodes plus difficile, mais avec un résultat concluant, qu'être toujours dans le tord en voulant être à son aise !

C'est en bravant les difficultés, qu'on ait capable de faire des choses extraordinaire, que plutôt vouloir avoir quelque chose qu'on comprend déjà où est à l'aise pour faire quelque chose d'ordinaire.

Chacun, travail comme il souhaite, mais je trouve stupide de vouloir faire quelque chose qu'on connait déjà. Sinon je te le demande à quel moment on évolue ?!

Sa ne fais même pas 6 mois que je suis sur "Fusion 2.5", j'ai jamais codé autre chose que sur Scratch (et encore, je n'avais fais qu'un simple petit jeu).
Je travail tout les jours pour créer quelque chose de plus grand, qu'hier. En voulant comprendre quelque chose, que je ne comprenais pas.
Pour preuve, voici une vidéo où j'ai pu apprendre ce qu'est un "Tableau": https://www.youtube.com/watch?v=gxTMoB0SJ7A
(Tu connais surement :)) Et je l'ai vu, et je me poser des questions il y a un mois (pour preuve il y a un commentaire.).
Et en même pas une semaine, mes questions ont été répondu par un GRAND OUI, car je l'avais fait.

Bref,
Tout ça pour dire qu'en voulant comprendre et faire des choses difficiles, j'ai pu très vite évoluer.

"Donc NON, il y a des méthodes, choisi celle qui t'apprendra le plus, et à ce moment, tu sera à l'aise !"

Bonne chance !

217 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 15 août 2019 à 23:34

Merci beaucoup, MrSinaf ! 

J'ai bien décortiqué ton mfa et tes exemples, je comprends mieux comment je pourrais me servir des boucles.

Mais par contre ton screen de ton mfa pour ton mini-jeux, je comprends vraiment pas grand chose, je vois que tu récupère le contenue de tes variables selon différents paramètres, mais où as-tu appris a écrire les expressions des actions sous cette forme ? 


Enfin, j'adore ta façon de nommé tes actifs dans ton mfa ;)

Encore merci

MrSinaf
32 messages
Fusion 2.5 Dev
vendredi 16 août 2019 à 02:15

Oui...j'aime bien donner des noms un peu farfelu pour mes actifs, mais je fais ça seulement dans les exemples (sinon je me perds), bref,

Content que ça pourrait t'aider, pour la suite, surtout n'hésite pas si t'as d'autre problèmes/questions :).



Mais... Je ne suis pas tout à fais sur d'avoir compris ta question dans ton 3°ème paragraphe.
Alors, je vais répondre sur ce que j'ai compris:



" je comprends vraiment pas grand chose, je vois que tu récupère le contenue de tes variables selon différents paramètres"

En vérité; je n'aurais pas dû te faire montrer ceci. Car c'est dans un de mes grand projets et donc ça fonctionne seulement dans ma logique.

L'exemple que je t'ai envoyé avais pour but d'être compréhensible et donc rien de compliqué.
Alors que là... bah mon objectif c'est d'arrivé à MON résultat souhaité et...rien d'autre. Je n'avais pas prévu de le partager. (surtout qu'il y a des choses à revoir. (comme le fais qu'il ajoute plusieurs fois la même "Key", ce qui n'ai pas nécessaire.))
Si j'ai voulu te faire montrer ceci, c'est tout simplement pour te montrer à quel point écouter mes conseils peut t'aider.

Et c'est pour ça aussi que je donne l'exemple de GTA, car c'est tout de même le 3ème jeu le plus vendu au monde. Pour te dire; "Regard, ce que tu peux faire, et la preuve que ce n'est pas idiot R* (développer de GTA) le fait !".
C'est un peu une PUB, pour que tu puisse t'intéresser sur mon exemple.

C'est après la virgule que je ne comprends pas vraiment ce que tu souhaite exprimer. Je récupère...en faite ça dépend. Bon décortiquons SEULEMENT la première ligne (t'inquiète pas ils fonctionnent tous plus ou moins de la même manière):

Bon, les conditions parlent d'elles même, "Mode", c'est pour savoir si le joueur va (comme ici) dans comment (Pour savoir "Comment jouer a ce mini-jeu ?".) ou Jouer (Le mini-jeu sans tuto, et avec plusieurs niveau.).

Alors maintenant, nous avons:


"BlowFish", permet de crypter/décrypter un fichier. Donc ceci^, permet de décrypter le fichier "0.lvl". Qui est et sera toujours le niveau pour le mode "comment", de chaque mini-jeu disponible.
Comme tu peux le voir il y a un chemin à suivre pour mieux le comprendre voici où peut se trouver ce fichier "0.lvl":

Tu comprends mieux ? "Apppath$" va signifier l'emplacement de mon application, puis va dans le dossier "Mini-jeux" et dans un dossier portant le nom stocker dans Nom jeu ("actif"), pour finalement aller dans "levels" pour retrouver notre fichier "0.lvl".
Ainsi je n'ai plus qu'à mettre le bon "Nom jeu", pour qu'il décrypte le bon fichier



Maintenant vu qu'on mon fichier est un faite un tableau, je n'ai plus qu'a charger mon tableau (au même emplacement), de recrypter le fichier (sinon c'est c**...) et enfin de démarrer une boucle pour qu'il place les bon actifs, au bon endroit.

BON ! J'ai essayé t'expliquer au mieux...mais...Il faut entrer dans ma logique et comprendre ce que je souhaite faire. Vraiment si besoins je peux te faire un réel tuto complet et fais pour être compréhensible avec si souhaité plus ou moins la même mécanique qu'ici^.
Tu n'as qu'a me demander :D !


"mais où as-tu appris a écrire les expressions des actions sous cette forme ? "

Heu... chez moi ?! Oo... Ah, surement tu me demande comment ? Et si j'ai us l'aide d'un site ou d'une personne ?
Tout seul :) !
Comme je savais que c'était possible bah... j'ai tout fais pour y arriver !
Je vais répondre à une question que tu risque de me poser; "Mais, comment as-tu su que c'était possible."
The Escapist !
Si tu ne connais pas, c'est un jeu créé sur Clickteam Fusion, et j'ai envie de dire LE MEILLEUR, car c'est le seul, qui sort vraiment du lot. Va regarder ce qu'est le "1" sur internet (car oui, il y a un 2, mais... ce n'est pas sur Clickteam), si tu ne connais pas ce jeu.

Et en faites comme ce jeu à la possibilité qu'on puisse créer nos propre map, bah je me suis dis:
"Donc, il y a un moyen de faire en sorte qu'on puisse jouer sur une nouvelle map sans que le développer est imaginé qu'elle puisse existé."
Et donc voilà pourquoi, j'ai tout fais pour trouvé une solution pour me permettre de créer autant de niveau que je souhaite, sans même devoir rajouter 1 seul ligne.
Bon au dépars je faisais des trucs c**, comme sauvegarder ma map dans un fichier ini, alors qu'un tableau le fait plus rapidement et mieux ! Mais voilà, je l'ai fais...


J'espère que ça a pu répondre à tes/ta question, si t'en a d'autre n'hésite pas !
Ce mois-ci j'ai prévu de sortir une démo de mon premier jeu qui est "NoHuman" (Oui son nom, vient de mon côté misanthrope), j'essaye d’accomplir un exploit qui ne se verra même pas dans le jeu *snif...* c'est le fais d'utiliser toujours les même actifs (il y a en 5) pour faire TOUT les mini-jeux !
Après bien-sur le jeu est plus complet que ça et si tu es intéressé par mes travaux, celui sera un petit aperçu.

Sinon en parallèle je crée un jeu VRAIMENT oser sur Clickteam, mais qui me demande beaucoup plus de temps vu ce qu'il offre :). Mais plus d'infos là-dessus après la démo présenté de NoHuman.


Encore une fois: Si tu as un problème avec les explications ou tu veux plus d'infos sur quoi que ce soit n'hésite pas !
Je sais que je blabla beaucoup, mais je suis passionné sur ce que je fais et ce que je dis. Dis toi au moins que j'use de mon temps rien que pour toi :D.
J'espère vraiment qu'un long message ne te gène pas, surtout que je fais attention à mes fautes d'orthographe :). J'essaye vraiment de faire en sorte que tu ais envie de comprendre, donc si souhaité je minimiserais mes phrases (mais ils seront moins précis, et non concluants). Mais comme tout le monde disent :
"Si tu veux vraiment apprendre, on ne compte pas lignes que Sinaf utilise pour t'expliquer."
(Oui...tout le monde dit ça !)

Sur-ce bonne chance !

Modifié le vendredi 16 août 2019 à 02:16 par MrSinaf
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 9 visiteurs au total

Derniers messages