Project1
标题:
2VIP 请问残像スクリプトVX ver 1.00该怎么使用?
[打印本页]
作者:
qllmkaen
时间:
2010-12-19 11:07
标题:
2VIP 请问残像スクリプトVX ver 1.00该怎么使用?
本帖最后由 qllmkaen 于 2010-12-19 12:24 编辑
原脚本地址:
残像スクリプトVX ver 1.00
(使用这个脚本之前必须先导入
マスタースクリプトVX Ver 1.02(必ず導入)
这个脚本)
残像スクリプトVX ver 1.00脚本:
#◆◇◆◇◆ 残像スクリプトVX ver 1・00 ◇◆◇◆◇
# サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/
# by みんと
=begin
■ 更新履歴
○ ver 1.00(2009/05/24)
公開
■ 説明
マップ上のキャラに残像を表示させます。
イベントの演出に一役買ってくれるかもしれません。
残像を表示するには、
フラッシュに 残像表示 という名前のSEが設定されているアニメを、
残像をつけたいキャラクターに表示してください。
以降は残像が維持されます。
1フレームのアニメに、フラッシュ[残像表示]だけで構いません。
残像を解放するには、
フラッシュに 残像解放 という名前のSE設定されているアニメを、
残像を解放したいキャラクターに表示してください
残像の色はフラッシュの色がそのまま適用されます。
発生する残像の数はフラッシュの時間を使用します。
ただし、あまり多くすると重くなるので、
6程度を目安にしてください。
=end
#==============================================================================
# ☆ MINTO
#------------------------------------------------------------------------------
# 様々なフラグを扱うメインモジュールです。
#==============================================================================
module MINTO
# 残像スクリプトVXを有効化 ( true で有効 / false で無効 )
RGSS["Blink_AnimeVX"] = true
end
# 戦闘背景色調変更スクリプトVXが有効な場合に以降の処理を実行する
if MINTO::RGSS["Blink_AnimeVX"] == true then
#==============================================================================
# ■ Sprite
#------------------------------------------------------------------------------
# スプライト表示を扱う組み込みクラスです。
#==============================================================================
class Sprite
#--------------------------------------------------------------------------
# ● 残像用の複製の作成
#--------------------------------------------------------------------------
def blink
# 各データをコピー
sprite = Sprite.new(self.viewport)
sprite.bitmap = self.bitmap.dup if self.bitmap
sprite.x = self.x
sprite.y = self.y
sprite.z = self.z-1
sprite.visible = false
sprite.ox = self.ox
sprite.oy = self.oy
sprite.angle = self.angle
sprite.mirror = self.mirror
sprite.opacity = self.opacity - 95
sprite.blend_type = 1
sprite.color = self.color.dup
sprite.src_rect = self.src_rect.dup
sprite.zoom_x = self.zoom_x
sprite.zoom_y = self.zoom_y
return sprite
end
#--------------------------------------------------------------------------
# ● データの取得
#--------------------------------------------------------------------------
def data_copy(data)
return if data.disposed? or self.disposed?
# 各データをコピー
self.x = data.x
self.y = data.y
self.z = data.z-1
self.visible = data.visible
self.ox = data.ox
self.oy = data.oy
self.angle = data.angle
self.mirror = data.mirror
self.src_rect = data.src_rect
self.zoom_x = data.zoom_x
self.zoom_y = data.zoom_y
end
end
#==============================================================================
# ■ Blink_Sprite
#------------------------------------------------------------------------------
# 残像スプライト表示を扱う組み込みクラスです。
#==============================================================================
class Blink_Sprite
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# sprite : オリジナルの画像
#--------------------------------------------------------------------------
def initialize(sprite, size)
# 残像のサイズを取得
@size = size
# 残像用の配列を作成
@blink = Array.new(@size)
# ループ処理
(0...@size).each do |i|
# 残像スプライトを作成
@blink[i] = sprite.blink
end
end
#--------------------------------------------------------------------------
# ● 可視状態の変更
# flag : 新しい可視状態
#--------------------------------------------------------------------------
def visible=(flag)
# ループ処理
(0...@size).each do |i|
# 可視状態を変更
@blink[i].visible = flag
end
end
#--------------------------------------------------------------------------
# ● 残像カラーの変更
# color : 新しいカラー
#--------------------------------------------------------------------------
def color_set(color)
# ループ処理
(0...@size).each do |i|
# 残像カラーを変更
@blink[i].color = color.dup
end
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
def dispose
# ループ処理(イテレータ)
(
[email protected]
).each do |i|
# 残像スプライトが存在する場合
if @blink[i] != nil then
# 残像スプライトが未解放の場合
if @blink[i].disposed? == false then
# 残像スプライトを解放
@blink[i].dispose
end
end
end
end
#--------------------------------------------------------------------------
# ● フレーム更新
# sprite : オリジナルの画像
#--------------------------------------------------------------------------
def update(sprite)
# 残像が可視状態でない場合
if @blink[0].visible == false then
# メソッドを返す
return
end
# ループ処理
(0...@size).each do |i|
# 前の残像データを渡す
@blink[@size-1 - i].data_copy(@blink[@size-1 - (i + 1)])
end
# 残像データを更新
@blink[0].data_copy(sprite)
end
end
#==============================================================================
# ☆ MINTO_Sprite_Battler_02
#------------------------------------------------------------------------------
# Sprite_Battlerクラスの強化システムモジュールです。
#==============================================================================
module MINTO_Sprite_Battler_02
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
def dispose
# 残像データが有効な場合
unless @blink_anime.nil? then
# 残像を解放
@blink_anime.dispose
@blink_anime = nil
end
# 継承先の処理に移行
super
end
#--------------------------------------------------------------------------
# ● アニメーション・プロセスタイミング
# timing : SEなどのデータ
#--------------------------------------------------------------------------
def animation_process_timing(timing)
# SE "残像表示" が設定されている場合
if timing.se.name == "残像表示" then
# 残像データが有効な場合
unless @blink_anime.nil? then
# 残像を解放
@blink_anime.dispose
@blink_anime = nil
end
# 残像用のデータを定義
@blink_anime = Blink_Sprite.new(self, timing.flash_duration)
# 残像を可視状態にする
@blink_anime.visible = true
# 残像のカラーを定義
@blink_anime.color_set(timing.flash_color)
# メソッドを返す
return
# SE "残像解放" が設定されている場合
elsif timing.se.name == "残像解放" then
# 残像データが有効な場合
unless @blink_anime.nil? then
# 残像を解放
@blink_anime.dispose
@blink_anime = nil
end
# メソッドを返す
return
end
# 継承先の処理に移行
super(timing)
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# 残像データが有効な場合
unless @blink_anime.nil? then
# 残像を更新
@blink_anime.update(self)
end
# 継承先の処理に移行
super
end
end
#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
# キャラクター表示用のスプライトです。Game_Character クラスのインスタンスを
# 監視し、スプライトの状態を自動的に変化させます。
#==============================================================================
class Sprite_Character < Sprite_Base
#--------------------------------------------------------------------------
# ● システムインクルード
#--------------------------------------------------------------------------
include MINTO_Sprite_Battler_02 # みんとスプライトバトラー
end
end
复制代码
{:nm_7:} 用谷歌逐字翻译过了,也把里面的属性和开关都调用过了,但是还是不懂得该怎么用...
作者:
fux2
时间:
2010-12-19 11:07
范例完成,
Project1.rar
(261.34 KB, 下载次数: 153)
2010-12-19 12:14 上传
点击文件名下载附件
作者:
八云紫
时间:
2010-12-19 11:54
调用动画, 然后动画里添加一个 播放SE , SE 的文件名为: 残像表示 就可以开启功能。
SE 的文件名为:残像解放 的话, 就是关闭功能~
作者:
qllmkaen
时间:
2010-12-19 12:18
{:nm_7:}我很纠结啊...还是认可fux2吧{:nm_4:}福克最有爱了(炸
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1