Retour à l'accueil
Accueil Aide Rechercher Calendrier Identifiez-vous Inscrivez-vous
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
23 Janvier 2019 à 02:22

Connexion avec identifiant, mot de passe et durée de la session
Règlement | Grades du forum | L'équipe de modération | Album photo | Chat
Rechercher:     avancée
Forums Zelda Solarus  |  Jeux amateurs  |  Aide & support  |  Topic: Comment faire un menu en event comme un zelda ? 0 Membres et 1 Invité sur ce sujet.
Pages: [1] Imprimer
Auteur Sujet: Comment faire un menu en event comme un zelda ?  (Lu 10304 fois)
Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« le: 11 Novembre 2010 à 13:31 »

Bonjour, J'aimerai bien de l'aide pour faire un arc , une bombe ou encore bouclier pour un système de combat a-rpg pour rmxp.
J'ai déjà fait mon système de corps à corps et mon système de monstre tout en évent.

Pouvais vous m'aidez.  :(
« Dernière édition: 19 Décembre 2010 à 19:31 par Perce krane » Journalisée

Helmasaur
Gerudo
*
Offline Offline

Messages: 2 811



WWW Courriel
« Répondre #1 le: 11 Novembre 2010 à 13:33 »

Tu veux bien programmer l'utilisation d'un arc, une bombe et un bouclier sous RPG Maker XP et non faire les graphs ?
Journalisée

Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #2 le: 11 Novembre 2010 à 14:04 »

Oui, les graphique son déja en ma possession.
Journalisée

Daru13
Conseiller J-A
Héros
*
Offline Offline

Messages: 5 583


Photoshop addict


Courriel
« Répondre #3 le: 11 Novembre 2010 à 17:06 »

SI tu as réussis à faire un système qui gère l'épée et les monstres en évents, tu ne devrais pas avoir ebaucoup de mal à coder la plupart des autres objets :).

Sans rentrer dans les détails, le principe est toujours le même à quelques trucs près : tu dois souvent calculer l'emplacement d'un évent (bombe, flèche, etc...) pour voir si un objet proche va être lié au premier objet (obstacle pour la flèche, mur fissuré pour la bombe, monstre ou projectile qui touchent Link pour le bouclier, etc...).
Comme pour un coup d'épée dans un buisson ou sur un monstre ^_^.

Pour t'aider, avant de te lancer dans la programmation d'un de ces objets qui te gênent, n'hésite pas à passer par du papier pour préparer ton algorithme : quels obstacles peuvent stopper une flèche, qu'est-ce qui peux être blessé ou détruit par une bombe et à quelle distance faut-il que ça se trouve de la bombe, etc....

Si tu es sur RMXP, tu peux éventuellement t'aider du RUBY pour te faciliter la tâche (attention, je ne parle pas d'utiliser des scripts trouvés ici et là, mais d'apprendre quelques bases sur le RUBY et de lire des tutos relatifs à ce qui t'intéresse (appui sur les touches, gestion d'un emplacement d'objet par rapport à un autre, etc...)).
J'avais pu éviter grâce à ça de devoir attribuer des variables de position à de nombreux objets pouvant réagir (à un coup d'épée ou une bombe par exemple), ce qui était un gain de temps considérable. Si ça t'intéresse, n'hésite donc pas à te renseigner sur le RUBY dans RMXP :).
Journalisée


    





yoshi04
Conseiller J-A
Sheikah
*
Offline Offline

Messages: 3 625


I can't hug every cat


WWW Courriel
« Répondre #4 le: 11 Novembre 2010 à 17:34 »

Il me semble que pour la détection de collisions avec un décor "dur" il n'y a pas d'événement natif sur RPG maker (VX je ne sais pas).
La solution en "events" quelque peu coûteuse : mettre des event sur chaque mur "dur" et faire des tests de position entre ta flèche et cet événement.
J'espère avoir été assez clair  ^^
Journalisée
Daru13
Conseiller J-A
Héros
*
Offline Offline

Messages: 5 583


Photoshop addict


Courriel
« Répondre #5 le: 11 Novembre 2010 à 17:43 »

Non il y a un moyen de faire ça, je ne sais plus précisément comment mais on peux attribuer un "numéro de terrain" aux tiles des chipset et ensuite récupérer ce numéro dans une variable, du coup en faisant un test sur la variable on peux se débrouiller pour savoir quels genres de tiles entourent le héros ou un évent divers, et réagir en conséquence ^_^.

Mais la méthode avec des évents partout est aussi possible, mais à mon avis elle doit être assez gênante pour les perfs, selon les maps :/.
Journalisée


    





yoshi04
Conseiller J-A
Sheikah
*
Offline Offline

Messages: 3 625


I can't hug every cat


WWW Courriel
« Répondre #6 le: 11 Novembre 2010 à 18:12 »

Ah dans ce cas il vaut effectivement mieux utiliser ta méthode :)
Journalisée
Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #7 le: 11 Novembre 2010 à 19:45 »

Je n'espère pas vous embêter avec sa, mais quelqu'un pourrai m'aidez surtout pour l'arc s'il vous plait.
Journalisée

Daru13
Conseiller J-A
Héros
*
Offline Offline

Messages: 5 583


Photoshop addict


Courriel
« Répondre #8 le: 11 Novembre 2010 à 20:04 »

Je n'utilise plus RMXP depuis un sacré bout de temps, donc la seule chose que je peux actuellement faire pour t'aider c'est te faire un petit algo simple. A toi de le retranscrire correctement dans RM par la suite, et de le modifier à ta guise bien évidemment ^_^.

-> Link tire une flèche, tu récupère la direction de Link et donc du tir.
-> Tu crées un événement (la flèche) dans la direction récupérée ci-avant. Pour l'animation et le déplacement à toi de voir.
-> Tu calcules (dès que la flèche est tirée tant qu'elle ne s'est pas plantée) le type de terrain attribué au tile devant la flèche, ainsi que la position des événements pouvant avoir une réaction avec la flèche (monstres par exemple).

Là, plusieurs possibilités :
a. Le type de terrain laisse passer la flèche.
b. Le type de terrain ne laisse pas passer la flèche, tu prépares l'arrêt de la flèche (et pourquoi pas une animation avec la flèche qui se plante par exemple).
c. L'événement laisse passer la flèche (faut gérer le passage de la flèche par dessus cet évent par contre).
d. L'événement que va rencontrer la flèche va avoir une réaction sur elle voir sur l'événement, tu prépare cette réaction (arrêt de la flèche par un coffre, monstre blessé, interrupteur-oeil activé...).

Voila, j'espère que cela pourra t'aider à réaliser me système de l'arc.
N'hésite pas à poser des questions, et bonne chance :).
Journalisée


    





Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #9 le: 11 Novembre 2010 à 20:38 »

je suis désoler mais j'ai pas vraiment compris. Le système de corps à corps a été fait a partir d'un tuto, donc plus facile a reproduire. :(
Journalisée

Daru13
Conseiller J-A
Héros
*
Offline Offline

Messages: 5 583


Photoshop addict


Courriel
« Répondre #10 le: 11 Novembre 2010 à 21:35 »

Si tu n'as pas le niveau pour réaliser à peu près seul un système d'épée, je te déconseille vivement de te lancer dans un ARPG comme Zelda, qui implique très souvent beaucoup de systèmes plus complexes à réaliser (tu en as déjà cité qui te posaient problème) ;).

Il n'existe pas de tuto réservé à RM(XP) qui explique pas à pas comment faire toute la partie technique du gameplay d'un Zelda, le mieux à faire est de commencer par t'entrainer plus sur RPG maker XP à réaliser divers systèmes pour arriver à la maitrise des éléments non-négligeables pour les gros projets comme sont les Zelda (variables et interrupteurs notamment, mais ce n'est pas tout).
Ensuite, avec une meilleur maitrise du logiciel et plus d'expérience, tu auras plus de facilité à te lancer dans des éléments comme l'arc :).

Commence aussi par expliquer quel point te gêne dans mon mini-algo, que j'essaie de le détailler ^_^.
Journalisée


    





Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #11 le: 11 Novembre 2010 à 22:31 »

Le gros problème ces quand un évent touche un autre évent
Journalisée

Daru13
Conseiller J-A
Héros
*
Offline Offline

Messages: 5 583


Photoshop addict


Courriel
« Répondre #12 le: 11 Novembre 2010 à 23:11 »

Pour ça, il te faut les coordonnées x et y des deux événements A et B, soit 4 variables (xA, yA, xB, yB).
Ensuite tu compares en fonction de la direction du projectile l'emplacement des deux objets.

Exemple dans le cas d'une flèche tiré vers le nord qui va être arrêtée par un coffre un peu plus haut :
Une fois la flèche tirée, il faut calculer en permanence la présence d'un événement au dessus de la flèche (qu'elle va donc rencontrer) pour agir en conséquence.

En ayant les 4 variables citées au début du post, A étant la flèche et B l'événement, il faut donc tester (xA=xB) ET (yA=yB+1).
Ce sera vrai quand la flèche sera une case en dessous du coffre ; ainsi quand une réponse positive sera renvoyée (vrai), il faudra que la flèche soit arrêtée.
Dans le cas de la flèche et avec cette méthode, il faut tester ça pour les événements (ce qui demande pas mal de variables par contre, c'est un inconvénient) ainsi que pour le type de terrain (si c'est un mur qui est devant la flèche il faudra l'arrêter, si c'est un sol normal elle continue).
Journalisée


    





jibtou
Zora
*
Offline Offline

Messages: 721


Zelda is the best game ever created...


Courriel
« Répondre #13 le: 12 Novembre 2010 à 11:19 »

Pour une condition de position comme te l'as expliqué Daru, tu peut créer quatre variable mais ça va prendre beaucoup de place dans tes variable si tu créer deux variables à chaque monstre^^
La solution est d'utiliser cette commande:

Dans l'event de ton monstre, tu créer une condition en mode "script" et tu marque la commande
Code: [Select]
$game_map.events[@event_id].x == $game_variables[1] and $game_map.events[@event_id].y == $game_variables[2]les variables 1 et 2 étant les coordonnées de ton projectile (respectivement x et y)

Les variables 1 et 2 sont celle de ta flèche par exemple et tu les rafraichis toutes les frames avec une boucle (faire prendre comme valeur pour 1 et 2 les valeurs des coordonnées X et Y de l'event "flèche")

En résultat, ton monstre va posée une condition: si mes variables de positions X et Y sont les même que celles de la flèche, alors..... et là tu met ce que tu veut ^^

J'espère t'avoir aidé, tu me dis si c'est pas clair :lol:
Journalisée

Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #14 le: 12 Novembre 2010 à 11:29 »

Merci grâce à vous je pense y arriver.
Une petite dernière question la boucle servira à chaque fois que j'appuie sur une touche.
Journalisée

jibtou
Zora
*
Offline Offline

Messages: 721


Zelda is the best game ever created...


Courriel
« Répondre #15 le: 12 Novembre 2010 à 19:16 »

Tout à fait :)
Tu créer un event commun qui va être le "lancement" de ton projectile. Dedans, tu met la condition d'appuis de la touche objet et dans cette condition, tu active un interrupteur "projectile tiré" . Sachant que l'objet Arc (par exemple) est dans ta main, l'interrupteur correspondant doit être activé! (dans ton menu par exemple)
Ensuite, tu créer l'event sur ta map (il devra etre sur chacune d'elle!) dans lequel il y aura tout les "projectiles". Dans une des pages de l'event en mode parallèle et avec condition de lancement l'interrupteur "Arc dans main" et l'interrupteur "projectile tiré" tu introduit ta boucle (un mouvement en avant, coordination entre variable de position et position du projectile sur la carte, vérification du n° de terrain de l'event (pour les collisions)et arrêt de l'objet si collision, le tout toutes les frames)
Dans une des page de ton monstre avec les mêmes conditions de déclenchement que l'arc, tu met la commande dont je t'ai parlé avant et si les positions de l'objet et du monstre sont les mêmes, alors dégâts sur le monstre^^

J'espère avoir été clair, c'est assez complexe comme système. M'enfin, si ton niveau d'event est suffisamment haut pour faire un Zelda sur RPG Maker xp, tu devrais pouvoir t'en sortir.
Journalisée

Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #16 le: 12 Novembre 2010 à 23:34 »

voilà j'ai chercher ai j'ai trouver un début de script
    Variable[0003:X bow]=Le Héros-Coordonnée X
Variable[0004:Y bow]=Le Héros-Coordonnée Y
Condition : La touche Y est préssée
    Téléporter : cet événement, Variables X[0003],Y[0004]

Fin condition
    condition : La touche Y est pressée
       condition : Le héros-direction == Bas
         Téléporter : cet événement, Variables X[0003],Y[0004]
               Déplacer : cet événement
      :Direction fixe ON
      : Apparence BOW ,0,2,0
      : vitesse 5
      : un pas vers le bas
      : un pas vers le bas
      : un pas vers le bas
      etc.......


   
« Dernière édition: 13 Novembre 2010 à 01:05 par Perce krane » Journalisée

jibtou
Zora
*
Offline Offline

Messages: 721


Zelda is the best game ever created...


Courriel
« Répondre #17 le: 12 Novembre 2010 à 23:53 »

J'ai rien pigé à ton script XD
Tu peut me dire d'où ça viens? Si c'est de toi, ya du boulot, désolé de te le dire :mellow:Parce que la condition de munition qui viens après le tir, l'appuie de la touche B et aussi aucun tracking de ton projectile... c'est pas cohérent :blink:
Journalisée

Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #18 le: 13 Novembre 2010 à 00:08 »

C une erreur c'est la touche Y.
édit: J'ai essayer toute la nuit sans résultat, Stp tu pourrai faire comme un petit tuto.
Merci d'avance.
« Dernière édition: 13 Novembre 2010 à 01:04 par Perce krane » Journalisée

Daru13
Conseiller J-A
Héros
*
Offline Offline

Messages: 5 583


Photoshop addict


Courriel
« Répondre #19 le: 13 Novembre 2010 à 01:41 »

Ton événement est incomplet, il faut vérifier les collisions (évents+terrains) en fonction de la direction de la flèche avant de la déplacer.
Aussi, tu places la flèche SUR le héros, ce qui est impossible et n'est pas ce qu'il faut faire : il faut la placer juste à côté de lui, en fonction de sa direction (x+1 pour la droite, x-1 la gauche, y+1 le bas et y-1 le haut). La dernière condition est également inutile, ou plutôt mal placée : tu devrais plutôt placer le bloc précédent das une condition vérifiant que le nombre de flèche est supérieur à 0 :).

Bref, comme l'a dit jibtou y'a encore du boulot pour l'arc :P.

Comme dit un peu plus tôt, si tu as du mal à réaliser ce genre de système sans une aide conséquente je te conseille vivement de t'entrainer un peu sur des systèmes plus simples avant, sinon tu risques de galérer pour certains trucs :/.
Journalisée


    





Hollow974
Tokay
*
Offline Offline

Messages: 146


Et oui les petits Dragons aussi évolue et s'améliore


Courriel
« Répondre #20 le: 13 Novembre 2010 à 05:42 »

Tu n'est pas obligé de faire tout par évent (sauf pour les collision) il y a des Scripts pour ça. C'est ce que j'utilise pour mon jeu par contre les évents ne sont pas de moi mais de "Project Zelda Engine" mais ils sont très facile a imité. J'essaierai de te faire un petit tuto dans la journée si tu veux.

PS: Si tu veux plus de précision n'hésite pas à me contacté par MP.
Journalisée

Chao
Héros
*
Offline Offline

Messages: 6 047


/人 ◕ ‿‿ ◕ 人\


Courriel
« Répondre #21 le: 13 Novembre 2010 à 07:23 »

Tu n'est pas obligé de faire tout par évent (sauf pour les collision) il y a des Scripts pour ça. C'est ce que j'utilise pour mon jeu par contre les évents ne sont pas de moi mais de "Project Zelda Engine" mais ils sont très facile a imité. J'essaierai de te faire un petit tuto dans la journée si tu veux.

PS: Si tu veux plus de précision n'hésite pas à me contacté par MP.

Les scripts quand tu ne les codes pas toi même (et surtout ne les comprends pas) c'est le mal.
C'est facile utiliser un script mais justement ce qui est facile n'a pas de mérite.
Journalisée

Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #22 le: 13 Novembre 2010 à 10:49 »

Je pense déjà commencé par un système plus simple style boomerang ou autre, ce qui me m'aidera plus tard pour l'arc.
Une question qui peut faire la différence. Comment fait-on pour éviter que l'évènement  se répète.
« Dernière édition: 13 Novembre 2010 à 11:55 par Perce krane » Journalisée

Hollow974
Tokay
*
Offline Offline

Messages: 146


Et oui les petits Dragons aussi évolue et s'améliore


Courriel
« Répondre #23 le: 13 Novembre 2010 à 13:30 »

Comment fait-on pour éviter que l'évènement  se répète.
Tu pourrais être plus précis STP ?
Journalisée

yoshi04
Conseiller J-A
Sheikah
*
Offline Offline

Messages: 3 625


I can't hug every cat


WWW Courriel
« Répondre #24 le: 13 Novembre 2010 à 13:33 »

Tu n'est pas obligé de faire tout par évent (sauf pour les collision) il y a des Scripts pour ça. C'est ce que j'utilise pour mon jeu par contre les évents ne sont pas de moi mais de "Project Zelda Engine" mais ils sont très facile a imité. J'essaierai de te faire un petit tuto dans la journée si tu veux.

PS: Si tu veux plus de précision n'hésite pas à me contacté par MP.

Les scripts quand tu ne les codes pas toi même (et surtout ne les comprends pas) c'est le mal.
C'est facile utiliser un script mais justement ce qui est facile n'a pas de mérite.


C'est surtout qu'en ne comprenant pas ce qu'il se passe, il n'arrivera jamais à progresser  ^^ Aussi demander de l'aide c'est bien, on passe tous (et encore ajd) par cette case là lorsque l'on essaie d'appréhender un nouveau domaine/problème. Mais il ne faut pas en rester là et tenter de s'en sortir par soit même avec l'expérience :)
Journalisée
Hollow974
Tokay
*
Offline Offline

Messages: 146


Et oui les petits Dragons aussi évolue et s'améliore


Courriel
« Répondre #25 le: 13 Novembre 2010 à 14:05 »

Tiens j'ai pensé que sa pourrais t'aider. ;)
http://yfrog.com/jvcharasboomerangp
Journalisée

Daru13
Conseiller J-A
Héros
*
Offline Offline

Messages: 5 583


Photoshop addict


Courriel
« Répondre #26 le: 13 Novembre 2010 à 14:18 »

Le boomerang n'est pas vraiment plus simple que l'arc à mon avis (surtout quand ça ne fais pas des lignes droites), c'est un système similaire (calcul du type de terrain, de la proximité avec des événements...).

Essaie de réaliser de systèmes un peu moins compliqués (pas forcément des objets, par exemple les cœurs, les rubis et le compteur...) voir même des qui n'ont rien à voir avec Zelda, le but étant juste d'arriver à maitriser les principes de bases pour créer des plus gros trucs ^_^.

Pour éviter qu'un événement se répète, la manière classique est d'activer un interrupteur x à la fin de cet événement, et de poser comme condition pour l'activation de cette événement que l'interrupteur x soit désactivé.
L'événement ne marchera alors qu'une seule fois.
Tu peux aussi utiliser une variables qui s'incrémente/prend des valeurs précises dans certains cas, mais commence déjà par les interrupteurs :).
Journalisée


    





Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #27 le: 19 Décembre 2010 à 19:40 »

Grâce à vous et à votre aide, j'ai réussi a faire mon arc, mon boomerang, un système de corps à corps par variable et des monstre qui tire des projectiles.
Tout a été fait sans tuto. Mais maintenant j'ai un autre problème, j'aimerai savoir comment faire un menu comme dans MC ou quand le curseur est sur un objet et qu'on appui sur la touche concernée l'objet s'équipe au héros.
 
 pouvais vous m'aidez.  :cry3:
Journalisée

Ka-Smeen
Gerudo
*
Offline Offline

Messages: 2 239



Courriel
« Répondre #28 le: 19 Décembre 2010 à 19:52 »

Le menu se fait avec des Pictures sur RM, le plus souvent. Une pour le fond du menu puis une pour chaque objet. Dès que tu obtiens un objet, ça active un switch qui permet l'affichage de l'icône de l'objet dans le menu. Pour le curseur par contre je sèche.. Un jeu sur les conditions d'appui de touches directionnelles et d'interrupteur, je crois. Mais ça se recentre aussi sur l'affichage du curseur via Pictures. ;)

Ensuite tu mets une condition d'activation aux systèmes. Par exemple, quand tu obtiens ton épée, tu fais activer l'interrupteur "Epée obtenue" ça te permet de sélectionner l'epée dans le menu, tu fais activer un autre switch "Epée assignée" et quand ce switch est activé ça active l'évènement commun de l'épée qui te permet de t'en servir.

Là c'est les grosses lignes, je laisse ma place aux pros pour le détail. ^^'

Journalisée
yoshi04
Conseiller J-A
Sheikah
*
Offline Offline

Messages: 3 625


I can't hug every cat


WWW Courriel
« Répondre #29 le: 19 Décembre 2010 à 20:49 »

Wouf m'a retrouvé ça ^^

Les liens suivant contiennent la version éditable de zelda spherdon sous rpg maker (et aucunement sous MMF )

Open source spherdon ==> ici
Ou ce lien là ==> ou là

En espérant de un quel les liens marchent et de deux que ça t'aide  :P



Tu auras un exemple tout fait :)

EDIT : Seul le lien megaupload marche on dirait, c'est presque incroyable depuis le temps  :P
« Dernière édition: 19 Décembre 2010 à 23:52 par yoshi04 » Journalisée
jibtou
Zora
*
Offline Offline

Messages: 721


Zelda is the best game ever created...


Courriel
« Répondre #30 le: 19 Décembre 2010 à 22:14 »

Là tu t'attaque à un gros morceau^^

Bah, je vais pas tout te dire, c'est très dure! Mais bon je vais tenter de faire le plus simple possible, tu compléteras toi même si tu vois des bug ou si j'ai pas précisé des trucs^^:
[spoiler]
Créer deux variables une curseur X et une Y et un interrupteur de possibilité d'ouverture du menu.

Tu met un event commun avec comme condition l'interrupteur correspondant à la possibilité d'ouvrir le menu.

Dedans, tu met: une condition: si la touche correspondante à ton menu est appuyé ( condition avec script:
Code: [Select]
Input.trigger?(Input::B) pour la touche x par exemple, sachant que B correspond à la touche X, tu peux le changer à ta guise)

Attends 10 frames

Tu affiche l'image du menu et les objets si le joueur les a et compagnie...

Ensuite tu dois mettre une boucle qui va agir temps que la touche du menu n'est pas ré-appuyée (je dis bien ré-appuyée, et non re-pressée!!)

Dans cette boucle, tu met quatre condition avec si la touche bas, si la touche haut, si la touche gauche et enfin, si la touche droite est pressée. bref, dans la condition de la touche haut, tu met variable Y:-1, pour le bas Y:+1, pour la gauche X:-1 et pour la touche droite, X:+1

Si la variable Y est supérieur au nombre de cases dans la longueur de ton menu, tu la remet à 1

Si la variable X est supérieur au nombre de cases dans la largeur de ton menu, tu la remet à 1

Créer deux variables Position X et Position Y

Ensuite, en fonction du nombre de case de ton menu, tu va refaire l'opération suivante un certain nombre de fois.

Si X=1 et Y=1 (par exemple) alors, tu fait prendre au variable Position X et Y du curseur la position sur l'écran de l'image du curseur correspondant à cette case. Si tu veux savoir sa valeur, ouvre l'image de ton menu avec Gimp ou Photoshop et regarde à quel position en pixel se trouve la case à laquelle tu veux faire correspondre la position du curseur.
Tu reporte les positions trouvées dans ton code pour les valeurs de Postion X et Y.

En résumé, tu viens de faire ça: si le curseur est sur la case "tant", alors, la position de mon curseur sur l'écran est "tant"

Toujours dans la double condition précédente, tu met ça:
Si le héros possède tel objet, alors, si la touche "selection" est appuyée, alors tu assigne l'objet correspondant (un interrupteur par objet) puis surtout, tu DÉSACTIVE tout les autres objets, comme ça tu peux pas en avoir deux à la fois dans ta main.

Tu répète l'action pour chaque objet

Tu reste dans la boucle principale et tout à la fin, juste avant que tu vois le "Fin de boucle", tu met: afficher une image "curseur" avec pour positions X et Y les valeurs des variables Position X et Y de ton curseur.[/spoiler]
Journalisée

Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #31 le: 19 Décembre 2010 à 23:47 »

Dsl je ne comprend pas jibtou. Ces peut être beaucoup demander et je comprendrai que tu refuse, mais tu pourrai me faire un petit tuto stp. :mrgreen:
Journalisée

jibtou
Zora
*
Offline Offline

Messages: 721


Zelda is the best game ever created...


Courriel
« Répondre #32 le: 20 Décembre 2010 à 13:45 »

Oué, bah je vais m'en occuper^^

Je fait le tuto cet aprem, je rééditerais ce post.
Journalisée

Perce krane
Kokiri
*
Offline Offline

Messages: 97



Courriel
« Répondre #33 le: 20 Décembre 2010 à 20:11 »

Merci, j'attends avec impatience  :D.
Journalisée

jibtou
Zora
*
Offline Offline

Messages: 721


Zelda is the best game ever created...


Courriel
« Répondre #34 le: 21 Décembre 2010 à 19:43 »

Bon voilà:

Ton menu ne peux pas se lancer tout le temps, ça pourrait faire des bugs! Donc tu créer un event commun en déclenchement parallèle avec pour condition de déclenchement l'interrupteur "Menu accessible"

Dans cet event, tu met:

[spoiler]

_Condition: si Script "Input.trigger?(Input::B)" alors: (je précise, le smiley c'est B+une parenthèse^^)
 _Effacer tous tes hud, toute les images présentes à l'écran
 _Arrêter tous les processus en cours en désactivant tout les interrupteurs qui risque de faire buguer le jeu ou risqueraient de faire continuer parallèlement au menu (genre tes objet en cours d'utilisation, les coups d'épée et compagnie)
 _Activer interrupteur "menu on" (cela te permet d'empêcher que les monstres t'attaquent ou que le héros puisse bouger)
 _Attendre 10 frames
 _Afficher une image: "Menu"
 _Variable "curseur Y" rendre égale à 1
 _Variable "curseur X" rendre égale à 1
 _Appeler un event commun: "Menu affichage objet" (on le fera après dans la suite du tuto)
 _Mettre une étiquette "Début"

 _Attendre 2 frames
 _Si la touche Bas est pressée, alors:
  _Variable "curseur Y": ajouter 1
  _Fin

 _Si la touche Haut est pressée, alors:
  _Variable "curseur Y": soustraire 1
  _Fin

 _Si la touche Droite est pressée, alors:
  _Variable "curseur X": ajouter 1
  _Fin

 _Si la touche Gauche est pressée, alors:
  _Variable "curseur X": soustraire 1
  _Fin

(imaginons que ton menu fait 3 cases de haut et 4 cases de large, il ne faut pas que le curseur dépasse!!:  )

 _Si la valeur contenue dans la variable "curseur Y" est inférieur à 1, alors:
  _Variable "curseur Y" rendre égale à 3
  _Fin

 _Si la valeur contenue dans la variable "curseur Y" est supérieur à 3, alors:
  _Variable "curseur Y" rendre égale à 1
  _Fin

 _Si la valeur contenue dans la variable "curseur X" est inférieur à 1, alors:
  _Variable "curseur X" rendre égale à 4
  _Fin

 _Si la valeur contenue dans la variable "curseur X" est supérieur à 4, alors:
  _Variable "curseur X" rendre égale à 1
  _Fin

Nous allons programmer le passage sur une case et l'activation de l'objet correspondant à cette même case. Imaginons que c'est la première case de l'inventaire et qu'elle contiens le boomerang)

_Si "curseur Y" =1, alors
  _Si "curseur X" =1, alors
   _Variable "Position X" rendre égale à 50 (par exemple)
   _Variable "Position Y" rendre égale à 100 (re par exemple, ces variable correspondront aux positions de ton curseur sur l'écran)
   Si "Boomerang obtenu" est activé, alors:
    _Afficher une image "Nom boomerang" ( le mot boomerang apparaît à l'endoit voulut dans le menu pour savoir sur quel Item tu passe)
   _Si la touche "C" est pressée, alors:
    _Activer interrupteur "Boomerang dans main"
    _Désactiver tous les autre objets de ta main (du dois répèter l'opération pour chaque objet pour ne pas avoir deux objets en même temps dans ta main)
   _Fin
  _Fin
 _Fin



Tu répète la commande en rouge pour chaque objet de ton inventaire (par exemple imaginons l'arc de position (1,2) dans ton menu, la position du curseur correspondante à cette case, le nom de l'arc, l'activation de l'arc et la désactivation des autres,etc...)

Une fois que tu as placer tous tes objets dans ton inventaire, tu fait ceci:

 _Afficher une image: "Curseur", avec comme position, les variables "Position X" et "Position Y"
 _Si script: "Input.trigger?(Input::B)", alors:
  _Désactiver l'interrupteur "Menu on" et afficher tes hud.
  _Effacer ton menu et ton curseur
  _Sinon:
  _Sauter vers l'étiquette "Début" 
  _Fin
_Fin (cette fin correspond à la fin de la première condition, celle de l’appuie de la touche X (celle avec le script bizzare  :D )
[/spoiler]

Voici le deuxième event commun à programmer, il te sert à afficher ou non les objets de ton inventaire en fonction de si tu les as obtenues ou pas. Tu le met en mode "appel" et tu le nome "Menu affichage objet", dedans, tu met:

[spoiler]
_Si "Boomerang obtenue" est activé, alors:
 _Afficher une image "Bommerang" aux position X et Y voulus dans le menu
 _Fin

Tu répètes la commande en vert pour chaque objet de ton inventaire
[/spoiler]


Et voilà, logiquement, ça devrait pas bugguer. Si oui, contacte moi par mp, dis moi le problème. Il y a une autre possibilité pratiquement identique mais qui fonctionne à coup sur mais qui est plus dure à faire.
Journalisée

Wouf
Hylien
*
Offline Offline

Messages: 1 116


C'est la faim !


Courriel
« Répondre #35 le: 22 Décembre 2010 à 09:42 »

Je n'ai pas RMXP sous la main, mais à première vue, ça me semble bon  :)
Le menu est prioritaire sur le reste, je pense que ça devrait aller dans la plupart des cas.
La touche B ouvre/ferme le menu.
La touche C équipe un objet.
On ne peut donc équiper qu'un seul objet à la fois !

Juste quelques détails pour toi, jibtou :

1) Plutôt que d'utiliser un interrupteur par objet pour savoir s'il est équipé ou non, on peut aussi utiliser une variable entière par objet équipé ;  chaque valeur codant pour un objet différent. Ensuite, on effectue un test de concordance des valeurs.
Genre pour 2 objets à équiper simultanément :

Code: (pseudo-code) [Select]
objet_equipe_1 = 3  // commentaire --> (3 <=> epee)
objet_equipe_2 = 1  // commentaire --> (1 <=> arc)

Ainsi tu économises des interrupteurs et tu évites de désactiver les autres objets (mutuellement exclusifs puisque dans la même variable). En revanche, une petite condition pour éviter d'équiper 2x le même objet est nécessaire  ^_^
Puis, c'est aisément extensible à plus d'un objet "équipable".

(Ce serait plus pratique avec des constantes pour identifier les valeurs des objets, mais bon ... faut passer par des commandes Ruby alors ^^. Quoique tu peux stocker des chaînes de caractères je crois ... bien qu'un peu moins optimisé, srtt lors des comparaisons).

2)
Quote from: jibtou
(cette fin correspond à la fin de la première condition, celle de l’appuie de la touche X (celle avec le script bizzare)
Je ne vois pas de touche X ailleurs dans ton script ^^
Je suppose que tu veux parler de l'appui sur la touche B qui sert à ouvrir le menu.

3) Ce serait pas plus simple d'indenter ton "Fin" au même niveau que tes conditions ?
Quitte à mettre des "." à la place des "espace" pour savoir directement à quel niveau d'indentation on se situe.


Voilà, que te dire de plus, si ce n'est : un beau script bien clair et organisé comme je les aime ;)
(N'y aurait-il pas moyen de l'adapter à la section tuto ?)
« Dernière édition: 22 Décembre 2010 à 10:35 par Wouf » Journalisée

Marre des pavés ? Marchez dans la boue!
ハハ、あなたは私の罠に落ちた!
jibtou
Zora
*
Offline Offline

Messages: 721


Zelda is the best game ever created...


Courriel
« Répondre #36 le: 22 Décembre 2010 à 15:46 »

Peut être bien que je peux en faire un vrai tuto^^

Mais, pour ce qui est de la confusion entre B et X, c'est normal: la touche B pour RPG Maker correspond à X sur le clavier :)

Pour les variables, c'est pas idiot, mais j'aime bien les interrupteur, j'ai un système de variables pour les bouteilles dans mon jeu et bahh.... c'est lourd, tu dois te tromper à aucun moment et puis, j'aime bien mettre un nom dessus, ça fait plus "ranger" et je m'y retrouve. Mais c'est pas bête!!
Journalisée

Pages: [1] Imprimer 
Forums Zelda Solarus  |  Jeux amateurs  |  Aide & support  |  Topic: Comment faire un menu en event comme un zelda ?
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 2.0.15 | SMF © 2006, Simple Machines LLC XHTML 1.0 Transitionnel valide ! CSS valide !
Zelda Solarus 2009Skin par Eidarloy
www.zelda-solarus.com