- MasoufMembre
- Nombre de messages : 284
Age : 30
Localisation : Rennes
Distinction : aucune
Date d'inscription : 24/12/2008
Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 15:03
Bonjour, je recherche un script 8 directions qui s'active et se désactive par un event.
Passer de 4 directions à 8 directions (par l'activation d'un interrupteur ou d'un appel de script par exemple) et inversement.
J'ai chercher partout mais en vain..
Cordialement.
PS: je suis sous RPG maker vx donc je recherche en RGSS2
Passer de 4 directions à 8 directions (par l'activation d'un interrupteur ou d'un appel de script par exemple) et inversement.
J'ai chercher partout mais en vain..
Cordialement.
PS: je suis sous RPG maker vx donc je recherche en RGSS2
- HareckMembre
- Nombre de messages : 359
Age : 31
Distinction : aucune
Date d'inscription : 26/09/2013
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 15:09
Tu veux bien me trouver un script qui gère les 8 directions? Je vais essayer quelque chose...
Je suis presque sur que ça ne marchera pas, mais on sait jamais...
Je suis presque sur que ça ne marchera pas, mais on sait jamais...
- MasoufMembre
- Nombre de messages : 284
Age : 30
Localisation : Rennes
Distinction : aucune
Date d'inscription : 24/12/2008
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 15:59
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 16:13
Voila ton script modifié.
Si interrupteur ID 1 est activé le mode 8 direction est activé sinon le personnage se déplacera dans 4 directions seulement.
...
Si interrupteur ID 1 est activé le mode 8 direction est activé sinon le personnage se déplacera dans 4 directions seulement.
- Code:
#==============================================================================
# 8 Way Directional Movement
#------------------------------------------------------------------------------
# Kylock
# 21.3.2008
# Version 1.1
#==============================================================================
# Special thanks to Arrow-1 for the script request and supplying sprites for
# testing purposes.
#==============================================================================
# Instructions:
# Add this script towards the top, since methods are rewritten and not
# aliased. Once you add it and run your game, the script will
# automagically enable 8-way directional movement for your hero.
# Features:
# * Added movement functionality to allow your hero to move in diagonal
# directions
# * Corrects directional issues resulting from trying to activate events
# while facing a diaganol direction. (could be better implemented,
# but does work as it is)
#==============================================================================
# Changelog
# 1.0 Initial Release
# 1.1 Added support for no custom sprites and added compatibility with
# Anaryu's Anti-Lag script (must be loaded above the anti-lag script)
#==============================================================================
#==============================================================================
# ** Script Configuration
#==============================================================================
module KMDM
DIRSPRITE = false # set to true if you are using a custom
# character sprite for diagonal movement
end
#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
# rewrote def move_by-input to enable extra directions
#==============================================================================
class Game_Player < Game_Character
def move_by_input
return unless movable?
return if $game_map.interpreter.running?
if $game_switches[1] == true
case Input.dir8
when 1; move_lower_left
when 2; move_down
when 3; move_lower_right
when 4; move_left
when 7; move_upper_left
when 6; move_right
when 8; move_up
when 9; move_upper_right
end
else
case Input.dir4
when 2; move_down
when 4; move_left
when 6; move_right
when 8; move_up
end
end
end
end
#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
# Corrects direction so events will respond when hero is facing diagonal.
# Modifies: def move_lower_left, def move_lower_right, def move_upper_left,
# and def move_upper_right
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# * Move Lower Left
#--------------------------------------------------------------------------
def move_lower_left(turn_ok = true)
set_direction(5)
if (passable?(@x, @y+1) and passable?(@x-1, @y+1)) or
(passable?(@x-1, @y) and passable?(@x-1, @y+1))
@x -= 1
@y += 1
increase_steps
@move_failed = false
else
@move_failed = true
end
end
#--------------------------------------------------------------------------
# * Move Lower Right
#--------------------------------------------------------------------------
def move_lower_right(turn_ok = true)
set_direction(3)
if (passable?(@x, @y+1) and passable?(@x+1, @y+1)) or
(passable?(@x+1, @y) and passable?(@x+1, @y+1))
@x += 1
@y += 1
increase_steps
@move_failed = false
else
@move_failed = true
end
end
#--------------------------------------------------------------------------
# * Move Upper Left
#--------------------------------------------------------------------------
def move_upper_left(turn_ok = true)
if KMDM::DIRSPRITE == true
set_direction(7)
else
set_direction(8)
end
if (passable?(@x, @y-1) and passable?(@x-1, @y-1)) or
(passable?(@x-1, @y) and passable?(@x-1, @y-1))
@x -= 1
@y -= 1
increase_steps
@move_failed = false
else
@move_failed = true
end
end
#--------------------------------------------------------------------------
# * Move Upper Right
#--------------------------------------------------------------------------
def move_upper_right(turn_ok = true)
set_direction(9)
if (passable?(@x, @y-1) and passable?(@x+1, @y-1)) or
(passable?(@x+1, @y) and passable?(@x+1, @y-1))
@x += 1
@y -= 1
increase_steps
@move_failed = false
else
@move_failed = true
end
end
end
#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
# Adds functionality for diagonal character sprites.
# Modifies: def update_src_rect
#==============================================================================
class Sprite_Character < Sprite_Base
#--------------------------------------------------------------------------
# * Update Transfer Origin Rectangle
#--------------------------------------------------------------------------
def update_src_rect
if @tile_id == 0
index = @character.character_index
#if the character is facing diagonally, use the second spriteset
if @character.direction % 2 != 0 && KMDM::DIRSPRITE == true
index = @character.character_index + 1
end
pattern = @character.pattern < 3 ? @character.pattern : 1
sx = (index % 4 * 3 + pattern) * @cw
sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
end
...
- HareckMembre
- Nombre de messages : 359
Age : 31
Distinction : aucune
Date d'inscription : 26/09/2013
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 16:17
Allé! T'es un pirate! C'est exactement ce que je voulais faire!!! Brigand!
Oui, je râle...
Bon, au final, c'est fait et fonctionnel donc c'est bon!
Oui, je râle...
Bon, au final, c'est fait et fonctionnel donc c'est bon!
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 16:21
HS : Hareck t'es trop lent, et ça, ça me fais râler :p
Ravis d'avoir pu aider
Ravis d'avoir pu aider
- MasoufMembre
- Nombre de messages : 284
Age : 30
Localisation : Rennes
Distinction : aucune
Date d'inscription : 24/12/2008
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 17:04
Merci a vous deux, c'est exactement ce que je recherchait
- InvitéInvité
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 18:35
C'est ça t'as géré Spy !
Mais il y a des trucs que t'aurais pu améliorer, du style laisser le choix de l'interrupteur (c'est un détail, mais ça fait son importantce, uh).
Ah et aussi ! if $game_switches[1] == true revient à faire if $game_switches[1], ce qui est plus...court
Mais il y a des trucs que t'aurais pu améliorer, du style laisser le choix de l'interrupteur (c'est un détail, mais ça fait son importantce, uh).
Ah et aussi ! if $game_switches[1] == true revient à faire if $game_switches[1], ce qui est plus...court
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Sam 2 Nov 2013 - 19:24
Merci de ton intervention Biwy je retiens ton "astuce"
- HareckMembre
- Nombre de messages : 359
Age : 31
Distinction : aucune
Date d'inscription : 26/09/2013
Re: Script 8 directions, activation/désactivation par interupteur (Résolu)
Dim 3 Nov 2013 - 12:30
Biwy, perso, je connaissais déjà, mais j'aime bien faire comme Spy a fait juste pour quand je me relis... Au moins, je sais parfaitement du premier regard ce qu'il se passe...
Après, c'est moi et ma façon chelou de penser...
Après, c'est moi et ma façon chelou de penser...
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|