AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez | 
 

 [VX] Déplacement par demi-case

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Mage Lv.11
Mage Lv.11
avatar


Masculin Age : 22
Inscrit le : 21/03/2009
Messages : 508

MessageSujet: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 11:43

Bonjour tout le monde!
Voici un script que je viens de faire:
___Ce script permet de faire des déplacements plus réalistes:
___Grâce à ce script, le joueur pourra faire 2 pas dans une case au lieu de 1 pas par case.
___Il se déplacera 2x moins loin, mais aussi vite qu'avant !!


Nom du script: Real Movement

Version: 3

Créateur: moi, Re00be

Explications: Le joueur se déplace 2x fois moins loin, il peut faire 2 pas dans une seule case.
Tous les bugs de passabilité sur les objets sont corrigés. La passabilité est comme avant!


Testé & Fonctionnel


Script à placer au dessus de Main:
Code:
#================================================
#      Real Movement          version 3
#          Script réalisé par Re00be
#
#    Déplacements plus réalistes
#    Adapté pour le logiciel RPG Maker VX
#-----------------------------------------------------------------------------
#  Ce script permet de faire des déplacements plus réalistes:
#      Grace à ce script, le joueur pourra faire 2 pas dans une case au lieu de 1 pas par case.
#    Il se déplacera 2x moins loin, mais aussi vite qu'avant !!
#    Passabilité complètement corrigée
#    Tous les problèmes liés aux objets où le héros pouvait marcher dessus ont étés corrigés
#
#  Un conseil:  Si vous ne m'aitrisez pas les script, ne touchez pas aux lignes de code!
#================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# Déplacement vers le bas
#--------------------------------------------------------------------------
  def move_down(turn_ok = true)
    if passable?(@x, @y+1)                  # Si Passable vers le bas
      turn_down if turn_ok
      @y_bis = @y+1
      if passable?(@x+0.5, @y_bis)                  # Si passable à droite (pour passabilité)
        turn_down
        @y += 0.5
        increase_steps
        @move_failed = false
      end
    else                                    # Sinon (Impassable)
      turn_down if turn_ok
      check_event_trigger_touch(@x, @y+1)
      @move_failed = true
    end
  end
#--------------------------------------------------------------------------
# Déplacement vers la gauche
#--------------------------------------------------------------------------
  def move_left(turn_ok = true)
    if passable?(@x-0.5, @y)                  # Si Passable vers la gauche
      turn_left if turn_ok
      @x_bis = @x-0.5
      if passable?(@x_bis, @y+0.5)
        turn_left
        @x -= 0.5
        increase_steps
        @move_failed = false
      end
    else                                    # Sinon (Impassable)
      turn_left if turn_ok
      check_event_trigger_touch(@x-1, @y)
      @move_failed = true
    end
  end
#--------------------------------------------------------------------------
# Déplacement vers la droite
#--------------------------------------------------------------------------
  def move_right(turn_ok = true)
    if passable?(@x+1, @y)                  # Si Passable vers la droite
      turn_right if turn_ok
      @y_bis = @y+0.5
      @x_bis = @x+1
      if passable?(@x_bis, @y_bis)
        turn_right
        @x += 0.5
        increase_steps
        @move_failed = false
      end
    else                                    # Sinon (Impassable)
      turn_right if turn_ok
      check_event_trigger_touch(@x+1, @y)
      @move_failed = true
    end
  end
#--------------------------------------------------------------------------
# Déplacement vers le haut
#--------------------------------------------------------------------------
  def move_up(turn_ok = true)
    if passable?(@x, @y-0.5)                  # Si Passable vers le haut
      turn_up if turn_ok
      @y_bis = @y-0.5
      if passable?(@x+0.5, @y_bis)                  # Si passable à droite (pour passabilité)
        turn_up
        @y -= 0.5
        increase_steps
        @move_failed = false
      end
    else                                    # Sinon (Impassable)
      turn_up if turn_ok
      check_event_trigger_touch(@x, @y-1)
      @move_failed = true
    end
  end
end

Ceci est la version 3 de mon script Real Movement, les problèmes de passabilité ont étés complètement corrigés.
Si toutefois vous remarquez des bugs, merci de m'en faire part en répondant à ce sujet.

Bon making =)
Re00be
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://amethyste-lejeu.com
Templier Lv.15
Templier Lv.15
avatar


Masculin Age : 27
Inscrit le : 11/12/2008
Messages : 1278

MessageSujet: Re: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 13:50

...J'ai pas bien capté l'utilité, on va avancer d'une demi case au lieu d'une...


Peux tu expliquer un tout petit peu mieux s'il te plait.

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Chevalier Lv.17
Chevalier Lv.17
avatar


Masculin Age : 24
Inscrit le : 27/04/2008
Messages : 1835

MessageSujet: Re: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 15:11

Donc le joueur peut s'arrêter à un milieu de case?
Mmmmh, c'est pas possible pixel par pixel?

_________________

[code:1]
Evènement :

@> Commandes
[/code:1]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mage Lv.11
Mage Lv.11
avatar


Masculin Age : 22
Inscrit le : 21/03/2009
Messages : 508

MessageSujet: Re: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 16:07

L'utilité ???
Eh bien grâce à ce script le déplacement de ton héros sur la MAP sera beaucoup plus réaliste!!!

En fait le joueur se déplace d'une demi-case à chaque fois...
Il peut s'arrêter au milieu d'une case.
Mais ça ne change pas sa vitesse, il va à la même allure^^

Gothor> On peut très bien le faire se déplacer encore moins loin, mais ça risque de modifier la passabilité avec certains objets... Déjà avec ce système là il y a eu de nombreux bugs avant que je le règle bien, donc avec un système plus bas...
Si toutefois tu veux tester "pixel par pixel", comme tu dis, tu modifie, par exemple dans la partie "déplacement vers le bas", cette ligne:
Code:
@y += 0.5
Par un truc dans ce genre:
Code:
@y += 0.1

En faisant comme ça, le héros se déplacera de façon beaucoup plus réaliste, mais tu peux encore aller plus bas:
Code:
@y += 0.05
Tu l'aura compris, plus tu mets une valeur basse, plus le héros fait des petits pas...
Attention! Si tu fais comme ça dans la partie "déplacement vers le bas", il faudra mettre la même valeur dans les autres déplacements, plus garder le réalisme.

Mais si tu change ceci, il faudra que tu modifie les autres lignes pour garder la bonne passabilité...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://amethyste-lejeu.com
Maître du destin
Maître du destin
avatar


Masculin Age : 21
Inscrit le : 05/11/2008
Messages : 2955

MessageSujet: Re: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 16:29

Question: Est-ce que les évenements se déplacent comme le héros? Est-ce que quand on fait Déplacer un évenement (héros) et qu'on met un pas vers le haut, il va faire un demi-pas?
Sinon, ça peut être intéressant, merci du partage ^^

_________________
Dark' is in the place
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Chevalier Lv.17
Chevalier Lv.17
avatar


Masculin Age : 24
Inscrit le : 27/04/2008
Messages : 1835

MessageSujet: Re: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 16:41

Mmmmmmmmmh, j'aimerais savoir si plusieurs choses sont réalisables...
-Est possible de faire en sorte que la taille des pas que fait le héros lorsque le joueur reste appuyé en continu sur une touche reste la même que celle d'origine, ainsi que sa vitesse?
-Est-ce possible de faire en sorte que le joueur puisse donc se déplacer pixel par pixel tout en gardant la condition au dessus?

Enfin, j'aimerais savoir pourquoi mes évènements ne démarrent pas quand je me mets en face d'eux avec un pas de 0.03125 ^^' Vala vala, c'est tout pour l'instant =D

_________________

[code:1]
Evènement :

@> Commandes
[/code:1]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mage Lv.11
Mage Lv.11
avatar


Masculin Age : 22
Inscrit le : 21/03/2009
Messages : 508

MessageSujet: Re: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 16:47

Ben normalement tel que j'ai configuré le script, la taille des pas reste la même...
C'est juste que quand le joueur appuye sur la touche, il fait la moitié d'un pas.

Pixel par pixel, tu ne pourra pas, car le joueur n'ira pas à la même vitesse, il ne se déplacera pas (pas vite en tout cas)

Si tu veux mon avis, laisse le pas à au moins 0.1... et encore^^

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://amethyste-lejeu.com
Roi des Lapinous
Roi des Lapinous
avatar


Masculin Age : 26
Inscrit le : 11/10/2008
Messages : 2291

MessageSujet: Re: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 17:24

Pour moi ce script qui est au passage intéressant dans son idée ne l'est pas dans son utilité, on va finir par pas pouvoir déclencher certains events alors qu'on pense être à côté ou l'inverse. Si le log définit un déplacement par 32 pixels alors tout le reste est configuré avec ça, sinon on configure tout par 16x16

_________________
Majordome à votre service. >>MP<<
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mage Lv.11
Mage Lv.11
avatar


Masculin Age : 22
Inscrit le : 21/03/2009
Messages : 508

MessageSujet: Re: [VX] Déplacement par demi-case   Sam 27 Juin 2009 - 17:34

Oui je pense aussi qu'il risque d'entrainer des problèmes avec les events, ou même les tilesets!
Dommage que RMVX ne nous permette pas d'avoir des déplacements réalistes à la base^^

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://amethyste-lejeu.com
Poulet Lv.1
Poulet Lv.1
avatar


Masculin Age : 22
Inscrit le : 05/07/2010
Messages : 2

MessageSujet: Re: [VX] Déplacement par demi-case   Mar 6 Juil 2010 - 10:56

Moi j'ai un probleme un peu génant... Quand on s'approche d'un coffre, on est obliger de se mettre a une certaine distance pour l'ouvrir...:/
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Poulet Lv.1
Poulet Lv.1
avatar


Inscrit le : 18/07/2010
Messages : 9

MessageSujet: Re: [VX] Déplacement par demi-case   Lun 26 Juil 2010 - 23:17

Salut re00be, j'ai testé ton script et malgré le fait que je le trouve très utile en terme d'amélioration du réalisme, j'ai trouvé deux dysfonctionnements en 30 secondes :

- Le bug de passabilité est corrigé , en ce qui concerne les évènements de même niveau que le héros, pour les déplacements vers la droite et vers le bas, mais pas pour les déplacements vers la gauche ou le haut,

- Une fois ce script activé, tous les évènements déplaçant le héros sont buggés car il se déplace deux fois moins loin, serait-il possible d'exclure l'option " Héros " de l'évènement " Déplacer un évènement " de ton script ?

Je n'ai pour l'instant rien relevé d'autre, pour palier au second problème il suffit de doubler les déplacements lors de la création de ce type d'évènement, je tiens à préciser que cela n'implique pas le déplacement d'autres évènements.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Citadin Lv.7
Citadin Lv.7
avatar


Masculin Age : 28
Inscrit le : 12/05/2010
Messages : 159

MessageSujet: Re: [VX] Déplacement par demi-case   Mar 27 Juil 2010 - 6:47

^^ c'est presque comme un script anglais que je connait "Pixel-movement" avec 8 direction
bien fait , j'espere qu'il ora moins de bugs que la version anglais :p
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [VX] Déplacement par demi-case   

Revenir en haut Aller en bas
 

[VX] Déplacement par demi-case

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Intégrer le bouton ''new, lock..'' dans la case dernier message
» case a cocher ??
» Paper Case : protéger vos CD avec une feuille de papier
» Problème avec select case Probleme réglé merci
» [particule] déplacement aléatoire (lucioles)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Divers-
Créer un forum | © phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit