이동 및 탈것

달릴때 그래픽을 바꿔주는 스크립트

by 아방스 posted Jan 24, 2008
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

#============================================================================
# Stand/Walk/Run Script
#============================================================================
# Written by Synthesize
# Version 1.00A
# January 20, 2008
#============================================================================
#                       * This script is untested *
#============================================================================
# Customization
#----------------------------------------------------------------------------
RUN_MOVE_SPEED = 5   # Speed to run
WALK_MOVE_SPEED = 4   # Speed to walk
USE_RUN_SPRITE = true   # Use Animation?
RUN_SPRITE_SUFFIX = '_run'   # Animation Suffix
USE_IDLE_SPRITE = true   # Use Idle animation?
IDLE_SPRITE_SUFFIX = '_idle'    # Animation Suffix
$RUN_ACTIVE = true    # Run Active?
#----------------------------------------------------------------------------
# Scene_Map
#----------------------------------------------------------------------------
class Scene_Map < Scene_Base
  alias syn_map_update update
  alias syn_map_start start
  #--------------------------------------------------------------------------
  #Initialize variables
  #-------------------------------------------------------------------------
  def start
    syn_map_start
    @game_character = Game_Character.new
    @sprite_changed = false
  end
  #--------------------------------------------------------------------------
  # Update
  #-------------------------------------------------------------------------
  def update
    #--------------------------------------------------------------------
    # Handles Run Stance
    #--------------------------------------------------------------------
    if Input.press?(Input::A)
      $game_player.move_speed = RUN_MOVE_SPEED if $RUN_ACTIVE == true
      @game_character.change_sprite(RUN_SPRITE_SUFFIX) if @sprite_changed == false and USE_RUN_SPRITE == true
      @sprite_changed = true if USE_RUN_SPRITE == true
    else
    #--------------------------------------------------------------------
    # Handles Idle Stance
    #--------------------------------------------------------------------
    if Input.dir4 == 0
      # Sets Idle Sprite Stance
      @game_character.change_sprite(IDLE_SPRITE_SUFFIX) if @sprite_changed == false and USE_IDLE_SPRITE == true
      @sprite_changed = true if USE_IDLE_SPRITE == true
    else
      @sprite_changed = false if USE_IDLE_SPRITE == true
      @game_character.change_sprite('reset')
    end
      $game_player.move_speed = WALK_MOVE_SPEED
    end
    syn_map_update
  end
end
#---------------------------------------------------------------------------
# Game_Character
#---------------------------------------------------------------------------
class Game_Character
  attr_accessor :character_name
  attr_accessor :move_speed
  def change_sprite(name)
    if name == 'reset'
      $game_player.character_name = @old_character_name
    else
      @old_character_name = $game_player.character_name
      $game_player.character_name += name
    end
  end
end
#------------------------------------------------------------------------
# Requested by Cerulean Sky
#------------------------------------------------------------------------
# Written by Synthesize
# Version 1.00A
#==========================================================================
# Stand/Walk/Run   - RMVX Version
#==========================================================================


사용법.
1. 위의 스크립트를 main섹션 위쪽에 붙여넣는다.
2. 첨부된 2개의 그림을 다운받는다.
3. 소제관리에서 다운받은 2개의 그래픽을 추가한다.
4. 테스트 플레이를 한다. (shift 키를 누르면 달리는 듯한 효과가 나온다.)


주의 사항.
주인고 캐릭터가 Actor1 이라는 그래픽을 사용할때 아래 그래픽을 사용해야된다.
만약 주인공 그래픽이 Actor2라는 그래픽을 사용한다면 당연하 아래 두개의 파일명도 바뀌어야된다.
예) Actor2_idle.png

그래픽도 물론 바껴야겠죠? ^^

제가 해보니까 한가지 문제가...
상태창을 얼고 닫으면 에러가 나는듯....스크립트상에 문제...
Actor_idle_run 파일을 찾는것을 보아....대략 어딘지는 짐작이 가지만 해결은 못한 ^^: