Project1
标题:
怎么让人物走路带幻影
[打印本页]
作者:
灬王熙泽灬
时间:
2011-11-19 19:30
标题:
怎么让人物走路带幻影
就像地下城与勇士里的传承武器一样 , 走路后面带幻影 , dsu_plus_rewardpost_czw
作者:
MSQ
时间:
2011-11-19 20:27
其实只要把行走图改一下就行了
用公共事件吧~~{:nm_6:}
在公共事件里用条件的分歧——当按下方向键的时候,改变行走图~~OK?
作者:
神秘影子
时间:
2011-11-26 11:07
我记得如果是剧情的话弄幻影很容易
不然的话有点难度
作者:
咚小黑
时间:
2011-11-27 22:22
这个我就不知道,我修改行走图成两个人物,顺便合成减法
作者:
我的米呀
时间:
2011-12-1 13:52
本帖最后由 我的米呀 于 2011-12-1 17:11 编辑
脚本本体:
#==============================================================================
# ★RGSS2
# STR39_キャラクター残像演出VX v0.8 08/07/28
#
# ◇必須スクリプト STEMB_マップエフェクトベース
# ・キャラクタースプライトに残像を発生させます。
# ・連続で発生させる場合は並列処理のイベントに貼り付ける等してください。
#
if false
# 以下をコマンドのスクリプト等に貼り付けて残像発生
ef = $game_temp.streffect
id = 0 # イベントID(0でプレイヤー)
sp = 20 # 表示時間(1/60sec)
op = 192 # 透明度(0で元の透明度の66%)
bl = 1 # 合成方法(0=通常,1=加算,2=減算)
xyz = [0,0,0]# 座標修正[x,y,z]通常は0
ef.push(CharaShadow00.new(id,sp,op,bl,xyz))
# 解説なしタイプ
id=0;sp=20;op=192;bl=1;xyz=[0,0,0]
ef = $game_temp.streffect
ef.push(CharaShadow00.new(id,sp,op,bl,xyz))
# ここまで
end
#==============================================================================
# ★このスクリプトの機能を有効にする
if true
#==============================================================================
# ■ CharaShadow00
#==============================================================================
class CharaShadow00 < Sprite
# 透明度を0にした時の透明度修正
AUTO = 0.66
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(id=0,sp=20,op=192,bl=1,xyz=[0,0,0])
super()
# 対象のキャラクターの決定
if id != 0
chara = $game_map.events[id]
else
chara = $game_player
end
# XYZ座標の設定
@rx = chara.real_x
@ry = chara.real_y_cs
@xyz = xyz
@xyz[1] -= 4 unless chara.object?
self.z = chara.screen_z - 1 + @xyz[2]
# 透明度・表示時間・合成方法
if op != 0
@opacity = op
else
@opacity = chara.opacity * AUTO
end
self.opacity = @opacity
@speed = @opacity * 1.0 / sp
self.blend_type = bl
# いろいろ設定・更新
set(chara, self)
update
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
self.x = ($game_map.adjust_x(@rx) + 8007) / 8 - 1000 + 16 + @xyz[0]
self.y = ($game_map.adjust_y(@ry) + 8007) / 8 - 1000 + 32 + @xyz[1]
self.opacity = @opacity
@opacity -= @speed
dispose if self.opacity <= 0 # 透明になったら解放
end
#--------------------------------------------------------------------------
# ● いろいろ設定
#--------------------------------------------------------------------------
def set(chara, sprite)
tile_id = chara.tile_id
if tile_id > 0
sprite.bitmap = tileset_bitmap(tile_id)
sprite.src_rect.set((tile_id / 128 % 2 * 8 + tile_id % 8) * 32,
tile_id % 256 / 8 % 16 * 32, 32, 32)
sprite.ox = 16 ; sprite.oy = 32
else
character_name = chara.character_name
sprite.bitmap = Cache.character(character_name)
sign = character_name[/^[\!\$]./]
if sign != nil and sign.include?(')
cw = sprite.bitmap.width / 3 ; ch = sprite.bitmap.height / 4
else
cw = sprite.bitmap.width / 12 ; ch = sprite.bitmap.height / 8
end
sprite.ox = cw / 2 ; sprite.oy = ch
index = chara.character_index
pattern = chara.pattern < 3 ? chara.pattern : 1
sprite.src_rect.set((index % 4 * 3 + pattern) * cw,
(index / 4 * 4 + (chara.direction - 2) / 2) * ch,
cw, ch)
end
end
#--------------------------------------------------------------------------
# ● 指定されたタイルが含まれるタイルセット画像の取得
#--------------------------------------------------------------------------
def tileset_bitmap(tile_id)
set_number = tile_id / 256
return Cache.system("TileB") if set_number == 0
return Cache.system("TileC") if set_number == 1
return Cache.system("TileD") if set_number == 2
return Cache.system("TileE") if set_number == 3
return nil
end
end
#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ● 画面 Y 座標の取得(追加)
#--------------------------------------------------------------------------
def real_y_cs
if jumping?
if @jump_count >= @jump_peak
n = @jump_count - @jump_peak
else
n = @jump_peak - @jump_count
end
return @real_y - (@jump_peak * @jump_peak - n * n) * 4
else
return @real_y
end
end
end
#
end
复制代码
================================================================
事件中用此脚本,并行后出现残影。
id=0;sp=20;op=192;bl=1;xyz=[0,0,0]
ef = $game_temp.streffect
ef.push(CharaShadow00.new(id,sp,op,bl,xyz))
复制代码
========================================================================
忘记了= =补上,在脚本本体前先插入这个脚本
#==============================================================================
# ★RGSS2
# STEMB_マップエフェクトベース v0.8
#
# ・エフェクト表示のための配列定義、フレーム更新、ビューポート関連付け
#
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :streffect
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_stref initialize
def initialize
initialize_stref
@streffect = []
end
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# ● エフェクトの作成
#--------------------------------------------------------------------------
def create_streffect
$game_temp.streffect = []
end
#--------------------------------------------------------------------------
# ● エフェクトの解放
#--------------------------------------------------------------------------
def dispose_streffect
for i in 0...$game_temp.streffect.size
$game_temp.streffect[i].dispose if $game_temp.streffect[i] != nil
end
$game_temp.streffect = []
end
#--------------------------------------------------------------------------
# ● エフェクトの更新
#--------------------------------------------------------------------------
def update_streffect
for i in 0...$game_temp.streffect.size
if $game_temp.streffect[i] != nil
$game_temp.streffect[i].viewport = @viewport1
$game_temp.streffect[i].update
$game_temp.streffect.delete_at(i) if $game_temp.streffect[i].disposed?
end
end
end
#--------------------------------------------------------------------------
# ★ エイリアス
#--------------------------------------------------------------------------
alias create_parallax_stref create_parallax
def create_parallax
create_parallax_stref
create_streffect
end
alias dispose_stref dispose
def dispose
dispose_streffect
dispose_stref
end
alias update_stref update
def update
update_stref
update_streffect
end
end
复制代码
作者:
雷欧亦炫
时间:
2013-12-22 12:32
有没有VA的?其它的版块找不到啊
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1