Created
March 31, 2013 12:52
-
-
Save rutan/5280507 to your computer and use it in GitHub Desktop.
【RGSS3】[hzm]敵バトラーに影を表示 for RGSS3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
#=============================================================================== | |
# ■ [hzm]敵バトラーに影を表示 for RGSS3 | |
# ※ このスクリプトには「[hzm]メモ欄拡張共通部分 for RGSS3」が必要です | |
#------------------------------------------------------------------------------- | |
# 2012/01/07 Ru/むっくRu | |
#------------------------------------------------------------------------------- | |
# 敵バトラーの下に影を表示します. | |
# | |
# 【設定方法】 | |
# データベースの「敵キャラ」の「メモ」欄に以下のいずれかを記述してください | |
# | |
# [hzm]影 | |
# [hzm]影:xx,yy | |
# [hzm]影:xx,yy,zz | |
# | |
# xxの部分には影のX軸のズレ,yyの部分には影のY軸のズレ | |
# zzの部分には影の拡大率を設定してください | |
# | |
# 例:影をY軸に-10ドットずらして表示)[hzm]影:0,-10 | |
# | |
#------------------------------------------------------------------------------- | |
# 【更新履歴】 | |
# 2012/01/07 ぶっぱ | |
#------------------------------------------------------------------------------- | |
#============================================================================== | |
# ● 設定項目 | |
#============================================================================== | |
module HZM_VXA | |
module EnemyShadow | |
# 影の画像ファイル(拡張子は不要) | |
# ここで設定したファイル名の画像を, | |
# Graphics/Battlersの中に入れてください | |
BITMAP_FILENAME = '[system]shadow' | |
# 影の拡大率(初期値) | |
BASE_ZOOM = 1.25 | |
# アクターと影のZ座標の差 | |
DIFF_Z = -100 | |
end | |
end | |
#============================================================================== | |
# ↑ ここまで設定 ↑ | |
# ↓ 以下、スクリプト部 ↓ | |
#============================================================================== | |
raise "[hzm] メモ欄取得スクリプトが必要です" unless defined?(HZM_VXA::Note) | |
raise "[hzm] メモ欄取得スクリプトのバージョンが異なります" unless HZM_VXA::Note::VERSION.to_f >= 2.00 and HZM_VXA::Note::VERSION.to_f < 3.0 | |
module HZM_VXA | |
module EnemyShadow | |
BITMAP_FILENAME = '[system]shadow' | |
# メモ欄から読み込む要素名の候補を設定 | |
KEYS = ['影', 'Shadow'] | |
end | |
end | |
class Sprite_Battler < Sprite_Base | |
#-------------------------------------------------------------------------- | |
# ● オブジェクト初期化(エイリアス) | |
#-------------------------------------------------------------------------- | |
alias hzm_vxa_enemyShadow_initialize initialize | |
def initialize(viewport, battler = nil) | |
hzm_vxa_enemyShadow_initialize(viewport, battler) | |
if battler and !battler.actor? and battler.use_sprite? | |
data = $data_enemies[battler.enemy_id].hzm_vxa_note_match(HZM_VXA::EnemyShadow::KEYS) | |
return unless data | |
@hzm_vxa_enemyShadow_sprite = Sprite_Base.new(viewport) | |
@hzm_vxa_enemyShadow_sprite.bitmap = Cache.battler(HZM_VXA::EnemyShadow::BITMAP_FILENAME, 0) | |
@hzm_vxa_enemyShadow_sprite.ox = @hzm_vxa_enemyShadow_sprite.bitmap.width / 2 | |
@hzm_vxa_enemyShadow_sprite.oy = @hzm_vxa_enemyShadow_sprite.bitmap.height / 2 | |
if data.size >= 2 | |
@hzm_vxa_enemyShadow_dx = data[0].to_i | |
@hzm_vxa_enemyShadow_dy = data[1].to_i | |
else | |
@hzm_vxa_enemyShadow_dx = 0 | |
@hzm_vxa_enemyShadow_dy = 0 | |
end | |
@hzm_vxa_enemyShadow_zoom = (data.size >= 3 ? data[2] : HZM_VXA::EnemyShadow::BASE_ZOOM) | |
end | |
end | |
#-------------------------------------------------------------------------- | |
# ● 解放(エイリアス) | |
#-------------------------------------------------------------------------- | |
alias hzm_vxa_enemyShadow_dispose dispose | |
def dispose | |
if @hzm_vxa_enemyShadow_sprite | |
@hzm_vxa_enemyShadow_sprite.bitmap.dispose if @hzm_vxa_enemyShadow_sprite.bitmap | |
@hzm_vxa_enemyShadow_sprite.dispose | |
end | |
hzm_vxa_enemyShadow_dispose | |
end | |
#-------------------------------------------------------------------------- | |
# ● 位置の更新 | |
#-------------------------------------------------------------------------- | |
alias hzm_vxa_enemyShadow_update_position update_position | |
def update_position | |
hzm_vxa_enemyShadow_update_position | |
return unless @hzm_vxa_enemyShadow_sprite | |
@hzm_vxa_enemyShadow_sprite.x = self.x + @hzm_vxa_enemyShadow_dx | |
@hzm_vxa_enemyShadow_sprite.y = self.y + @hzm_vxa_enemyShadow_dy | |
@hzm_vxa_enemyShadow_sprite.z = self.z + HZM_VXA::EnemyShadow::DIFF_Z | |
@hzm_vxa_enemyShadow_sprite.opacity = self.opacity | |
end | |
#-------------------------------------------------------------------------- | |
# ● 可視状態の初期化 | |
#-------------------------------------------------------------------------- | |
alias hzm_vxa_enemyShadow_init_visibility init_visibility | |
def init_visibility | |
hzm_vxa_enemyShadow_init_visibility | |
if bitmap and @hzm_vxa_enemyShadow_sprite | |
@hzm_vxa_enemyShadow_sprite.zoom_x = (@hzm_vxa_enemyShadow_zoom * bitmap.width / @hzm_vxa_enemyShadow_sprite.bitmap.width.to_f) | |
@hzm_vxa_enemyShadow_sprite.zoom_y = @hzm_vxa_enemyShadow_sprite.zoom_x | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment