Partagez
Aller en bas
avatar
XGuarden
Membre

Nombre de messages : 38
Age : 34
Localisation : Québec
Distinction : aucune
Date d'inscription : 19/12/2011

Résolu [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Dim 11 Mar 2012 - 3:34
Bonjour, je me suis mis au script sur RPG Maker Vx Ace. En fait, c'est plutôt facile finalement, falais juste que je me force un peu plus...

Voici ce que je fais présentement...
J'ai tenté de faire une cinématique d'un vaisseau qui flotte au dessus de la planète.
Au début j'ai utilisé le défilement de carte. Je me suis retrouvé face à l'évidence que le vaisseau ne suivait pas.

Ma solution(un peu mauvaise je crois) est de transformer le héros en vaisseau, le mettre en mode fantôme et le faire déplacer sur la carte.

Cette fois, je me retrouve devant le probleme suivant: 100 move route vers la droite... etc..
Inutile de dire que c'est laid.

Alors ma solution a été de créer un petit script "def walk_to".
AU début mon code étais simple et efficace. Mais malheureusement, le reste des évènement s’enclenchait avant même que le le joueur ait atteint la fin de son trajectoire.

Idée de génie.... je me complique la vie et fait une simulation complète du move route pour pouvoir mettre "wait" à false et ainsi qu'il n’exécute pas la fin du code avant son temps.

Apres une journée de code, voici mon résultat. Pouvez-vous m'expliquer pourquoi, il continue d’exécuter le suite du code sans jamais attendre que le joueur ait fini de faire le trajet?

Code:

  def walk_to(target,direction,step,wait)
    route = RPG::MoveRoute.new
    route.repeat = false
    route.wait = wait
    route.skippable = false
    route.list = []

    case target
    
      when -1            
        for i in 1..step
          route.list << RPG::MoveCommand.new(direction)
        end
        $game_player.force_move_route(route)  
      when 0
        
        character = get_character(0)
        
        for i in 1..step
          route.list << RPG::MoveCommand.new(direction)
        end  
        character.force_move_route(route)
    end

  end
Merci d'avance pour votre aide.
avatar
cator. lol
Membre

Nombre de messages : 164
Age : 27
Localisation : Cherche pas, tu me trouveras jamais.
Distinction : Zoophile à ses heures perdues, au torse poilu et qui chante YMCA
Frère de poils!
[Mist' Wink]
Maître du plantage d'arbres à femme : pour la sauvegarde des arbres et des petits oiseaux, vive la nature. [Balb' Wink]
crefadet le violeur du bois [Balb' ]
Date d'inscription : 02/02/2012

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Dim 11 Mar 2012 - 10:25
Et en faisant à la fois défiler la carte et déplacer le héros ?

Sinon, je ne suis pas scripteur mais...
Peut-être faudrait-il insérer une condition booléenne telle que "tant que le joueur n'est pas arrivé à tel point, alors..." enfin je ne m'avance pas trop non plus ^^
avatar
superbabou77
Membre

Nombre de messages : 70
Age : 23
Distinction : aucune
Date d'inscription : 05/03/2012

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Dim 11 Mar 2012 - 10:27
Désolé mais je ne m'y connait pas en scripts...
avatar
XGuarden
Membre

Nombre de messages : 38
Age : 34
Localisation : Québec
Distinction : aucune
Date d'inscription : 19/12/2011

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Dim 11 Mar 2012 - 14:59
EN fait, la technique du boolean avec la position du joueur j'ai essayer. Mais dès que je met ce genre de condition, le joueur ne bouge tout simplement plus.
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Lun 12 Mar 2012 - 11:12
J'ai pas tout compris , faut avouer .

Mais si ce que tu veux , c'est attendre que le personnage ait fini de bouger , tu peux le faire avec un test sur : $game_player.moving? qui te renvoie TRUE si le perso est en train de bouger .
avatar
XGuarden
Membre

Nombre de messages : 38
Age : 34
Localisation : Québec
Distinction : aucune
Date d'inscription : 19/12/2011

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Lun 12 Mar 2012 - 17:24
$game_player.moving? m'a été super utile par le passé mais dans ce cas ci, ce n'est pas approprié.
C'est dans un script. Je dois pouvoir l'utiliser également sur un évènement.
En plus, le problème est davantage que le reste du code s’exécute tout de suite.
Apres la ligne: $game_player.force_move_route(route)
Il retourne directement dans l’évènement qui la appelé et exécute la suite du code avant
même que la commande move_route ne soit terminé.
Quand on crée un move_route a partir d'un évènement, il est possible de dire au code de finir le move_route
avant de continuer l’exécution du code. Mais dans un script directement, je n’arrive pas a faire attendre la fin du mouve_route avant de continuer l’exécution du code.
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Lun 12 Mar 2012 - 17:53
Houla ....

Dans un script ? oui mais qui modifie quelle classe ?
Parce que je vois dans Game_interpreter que la commande pour attendre semble etre :
Code:

    Fiber.yield while ....
comme dans command_201 .
avatar
XGuarden
Membre

Nombre de messages : 38
Age : 34
Localisation : Québec
Distinction : aucune
Date d'inscription : 19/12/2011

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Mar 13 Mar 2012 - 6:45
dricc Merci beaucoup!!!! C'étais en plein ça qu'il me fallais! Décidément, ton personnage va se retrouver quelque part dans mon jeu. Ça fait une semaine que je cherche cette commande! =:0)
avatar
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' Smile]
Date d'inscription : 13/05/2009

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Dim 15 Juil 2012 - 20:26
Demande résolue ? Merci de l'indiquer dans le titre, sinon ce sera un avertissement lors du prochain nettoyage de la section.
avatar
XGuarden
Membre

Nombre de messages : 38
Age : 34
Localisation : Québec
Distinction : aucune
Date d'inscription : 19/12/2011

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Lun 16 Juil 2012 - 2:46
En fait, je n'ai pas trouvé comment fermer un post.
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

le Lun 16 Juil 2012 - 11:04
Edite le premier post . Et change le titre en mettant [résolu] devant . pas forcément évident , j'en convient .
Contenu sponsorisé

Résolu Re: [résolu]MoveRoute en script. Code continue avant la fin du déplacement

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum