Conectarse
Buscar
Últimos temas
Los posteadores más activos del mes
No hay usuarios |
Estadísticas
Tenemos 98 miembros registradosEl último usuario registrado es Lawdesifi
Nuestros miembros han publicado un total de 6208 mensajes en 777 argumentos.
Correr y ir en 8 direcciones
Drupogame :: RPG Maker :: RPG maker XP :: Scripts
Página 1 de 1.
Correr y ir en 8 direcciones
Ponganlo encima de main
- Código:
#==============================================================================
# ++ グラフィック変更8方向移動 ver. 1.01 ++
# Script by パラ犬
# http://para.j-mx.com/
#------------------------------------------------------------------------------# 上下キーと左右キーを同時押しすることにより斜め移動を可能にし、
# 「Graphics/Characters」フォルダに
# 「(先頭キャラクター名)+_quarter」という名前のファイルがある場合
# 斜め移動時のグラフィックとして使用します。(例:001-Fighter01_quarter)
#------------------------------------------------------------------------------
#[設置上の注意]
# 「グラフィック変更ダッシュ」と併用する場合、このスクリプトを
# ダッシュスクリプトよりも下に置いてください。
# 斜め方向ダッシュの画像ファイル名は「(先頭キャラクター名)+_dash_quarter」に
# なります。
#==============================================================================
#==============================================================================
# ■ Game_Player
#==============================================================================
#==============================================================================
# ++ ???????????? ver. 1.11 ++
# Script by ???
# http://rpg.para.s3p.net/
#------------------------------------------------------------------------------
# ?Graphics/Characters??????
# ?(???????????????)+_dash????????????????
# ?????????????????????(?:001-Fighter01_dash)
#==============================================================================
class Game_Player < Game_Character
SPEED_DASH = 5 # ??????????
SPEED_NORMAL = 4 # ???????
# ??????????(??????Input::(???))
#(????????????????????????)
KEY_DASH = Input::A
# "_dash"??????????????????????( true:?? / false:??? )
NO_FILE_DASH = true
# ??????????????ID
# (????????????????????????????ON???????
# ??????????????)
NO_DASH_SWITCH = 999
end
#==============================================================================
# ¦ Game_Player
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias dash_update update
def update
# ?????????????????????
# ???????????????????????
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
if !($game_switches[NO_DASH_SWITCH])
# ????
if Input.press?(KEY_DASH)
if (dash_graphic_exist?($game_party.actors[0]) or NO_FILE_DASH)
# ??????????????
if @move_speed != SPEED_DASH
@move_speed = SPEED_DASH
@dash_on = true
$game_player.refresh
end
end
elsif @dash_on == nil or @dash_on
@move_speed = SPEED_NORMAL
@dash_on = nil
$game_player.refresh
end
end
end
dash_update
end
#--------------------------------------------------------------------------
# ? ??????????????????
#--------------------------------------------------------------------------
def dash_graphic_exist?(actor)
# ???????
begin
RPG::Cache.character(actor.character_name.to_s + "_dash", actor.character_hue)
rescue
return false
end
return true
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias dash_refresh refresh
def refresh
dash_refresh
# ??????? 0 ??????
if $game_party.actors.size != 0
actor = $game_party.actors[0]
# ??????????????????
if @dash_on and dash_graphic_exist?(actor)
fileplus = "_dash"
else
fileplus = ""
end
@character_name = actor.character_name + fileplus
@character_hue = actor.character_hue
end
end
end
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias update_para_quarter update
def update
update_para_quarter
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# 方向ボタンが押されていれば、その方向へプレイヤーを移動
case Input.dir8
when 1 # 左下に移動
move_lower_left
when 3 # 右下に移動
move_lower_right
when 7 # 左上に移動
move_upper_left
when 9 # 右上に移動
move_upper_right
end
end
end
end
#==============================================================================
# ■ Sprite_Character
#==============================================================================
class Sprite_Character < RPG::Sprite
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias update_para_quarter update
def update
update_para_quarter
if @tile_id == 0
if (@character.direction - 2) % 2 == 1
# 斜め画像の有無をチェック
if quarter_graphic_exist?(@character)
# 斜め画像をセット
if character.dash_on and dash_quarter_graphic_exist?(@character)
@character_name = @character.character_name + "_dash_quarter"
else
@character_name = @character.character_name + "_quarter"
end
self.bitmap = RPG::Cache.character(@character_name,
@character.character_hue)
# 向きを取得
case @character.direction
when 1
n = 0
when 3
n = 2
when 7
n = 1
when 9
n = 3
end
else
@character.direction = @character.sub_direction
# 斜め画像が存在しないときの向き
n = (@character.direction - 2) / 2
end
# 転送元の矩形を設定
sx = @character.pattern * @cw
sy = n * @ch
self.src_rect.set(sx, sy, @cw, @ch)
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
# 転送元の矩形を設定
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
end
#--------------------------------------------------------------------------
# ○ 斜め画像の有無をチェック
#--------------------------------------------------------------------------
def quarter_graphic_exist?(character)
# 読み込みテスト
begin
RPG::Cache.character(character.character_name.to_s + "_quarter", character.character_hue)
rescue
return false
end
return true
end
#--------------------------------------------------------------------------
# ○ 斜めダッシュ画像の有無をチェック
#--------------------------------------------------------------------------
def dash_quarter_graphic_exist?(character)
# 読み込みテスト
begin
RPG::Cache.character(character.character_name.to_s + "_dash_quarter", character.character_hue)
rescue
return false
end
return true
end
end
#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :direction # 向き
attr_accessor :sub_direction # 斜め画像が存在しないときの向き
#--------------------------------------------------------------------------
# ● 左下に移動
#--------------------------------------------------------------------------
def move_lower_left
# 向き固定でない場合
unless @direction_fix
@sub_direction = @direction
@direction = 1
# 右向きだった場合は左を、上向きだった場合は下を向く
@sub_direction = (@sub_direction == 6 ? 4 : @sub_direction == 8 ? 2 : @sub_direction)
end
# 下→左、左→下 のどちらかのコースが通行可能な場合
if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 4)) or
(passable?(@x, @y, 4) and passable?(@x - 1, @y, 2))
# 座標を更新
@x -= 1
@y += 1
# 歩数増加
increase_steps
end
end
#--------------------------------------------------------------------------
# ● 右下に移動
#--------------------------------------------------------------------------
def move_lower_right
# 向き固定でない場合
unless @direction_fix
@sub_direction = @direction
@direction = 3
# 左向きだった場合は右を、上向きだった場合は下を向く
@sub_direction = (@sub_direction == 4 ? 6 : @sub_direction == 8 ? 2 : @sub_direction)
end
# 下→右、右→下 のどちらかのコースが通行可能な場合
if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 6)) or
(passable?(@x, @y, 6) and passable?(@x + 1, @y, 2))
# 座標を更新
@x += 1
@y += 1
# 歩数増加
increase_steps
end
end
#--------------------------------------------------------------------------
# ● 左上に移動
#--------------------------------------------------------------------------
def move_upper_left
# 向き固定でない場合
unless @direction_fix
@sub_direction = @direction
@direction = 7
# 右向きだった場合は左を、下向きだった場合は上を向く
@sub_direction = (@sub_direction == 6 ? 4 : @sub_direction == 2 ? 8 : @sub_direction)
end
# 上→左、左→上 のどちらかのコースが通行可能な場合
if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 4)) or
(passable?(@x, @y, 4) and passable?(@x - 1, @y, 8))
# 座標を更新
@x -= 1
@y -= 1
# 歩数増加
increase_steps
end
end
#--------------------------------------------------------------------------
# ● 右上に移動
#--------------------------------------------------------------------------
def move_upper_right
# 向き固定でない場合
unless @direction_fix
@sub_direction = @direction
@direction = 9
# 左向きだった場合は右を、下向きだった場合は上を向く
@sub_direction = (@sub_direction == 4 ? 6 : @sub_direction == 2 ? 8 : @sub_direction)
end
# 上→右、右→上 のどちらかのコースが通行可能な場合
if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 6)) or
(passable?(@x, @y, 6) and passable?(@x + 1, @y, 8))
# 座標を更新
@x += 1
@y -= 1
# 歩数増加
increase_steps
end
end
#--------------------------------------------------------------------------
# ○ ダッシュスクリプト導入判定
#--------------------------------------------------------------------------
def dash_on
if @dash_on != nil
return @dash_on
else
return false
end
end
end
Drupogame :: RPG Maker :: RPG maker XP :: Scripts
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
Lun Ene 23, 2012 11:32 pm por edux
» edux returns
Lun Ene 23, 2012 11:30 pm por edux
» The Elder Scrolls IV: Oblivion
Vie Ene 20, 2012 11:28 pm por Aljevalsar
» Kojima promete que habrá un Metal Gear Solid de auténtico sigilo
Jue Dic 22, 2011 7:33 pm por Anime_Maker
» Este fin de semana habrá nuevos modos para Modern Warfare 3
Jue Dic 15, 2011 12:03 pm por Akeo
» Kojima quiso crear un Metal Gear Solid 5 ambientado en la Segunda Guerra Mundial
Jue Dic 15, 2011 11:01 am por Akeo
» Darksiders II se dejará ver en los Spike VGA
Miér Dic 14, 2011 11:50 am por Akeo
» El creador de Bayonetta desmiente estar implicado en el desarrollo de Metal Gear Rising
Miér Dic 14, 2011 1:54 am por Akeo
» Los creadores de Bayonetta se encargan del desarrollo de Metal Gear Rising
Miér Dic 14, 2011 1:52 am por Akeo
» En Construccion: Mundo Abismal
Lun Oct 24, 2011 4:03 am por SagahonArturo
» Visceral Games busca nuevo personal para la franquicia Dead Space
Mar Oct 11, 2011 3:22 am por The_King_Jaas
» buenas
Mar Oct 11, 2011 3:21 am por The_King_Jaas
» Batman: Arkham City llegará "sin ninguna limitación"
Sáb Oct 08, 2011 1:44 am por Akeo
» Los creadores de Bulletstorm admiten divertidos que el juego tenía demasiadas palabras malsonantes
Sáb Oct 08, 2011 1:41 am por Akeo
» PES 2012: El primer DLC estará disponible el 11 de octubre
Sáb Oct 08, 2011 1:39 am por Akeo