Project1
标题:
事件位置播放动画脚本编写【悬赏2卡+1V+666exp】
[打印本页]
作者:
orzfly
时间:
2011-8-30 00:16
标题:
事件位置播放动画脚本编写【悬赏2卡+1V+666exp】
本帖最后由 orzfly 于 2011-8-30 00:19 编辑
需求:走过地形标志为5的地面时在当前位置播放一个120帧的动画,要求能固定在地图这个位置,不和角色一起移动。切忌不要用一个事件移动过去播放,因为我不知道会同时播放多少个。需要大地图优化即不再屏幕范围内的动画不再刷新,但是又进入显示区域的时候要继续播放。
请尽量给插件式脚本,并请注明修改位置。请勿使用全局变量。如果没有描述清楚问题请回复我。
其实我知道怎么办,但是太懒了而且没时间了。故悬赏。 dsu_plus_rewardpost_czw
作者:
IamI
时间:
2011-8-30 08:27
深夜发你还以为真会有人夜猫子写脚本不成……
还有 那个太懒没时间是等吐槽的么
class Game_Player
def move_afterwards(d)
if passable?(@x,@y,d)
x = @x + (d == 6 ? 1 : d == 4 ? -1 : 0)
y = @y + (d == 2 ? 1 : d == 8 ? -1 : 0)
if $game_map.terrain_tag(x,y) == 5
s = RPG::Sprite.new()
s.animation($data_animations[49],false)
@deal_sprites.push(s)
@deal_points[s] = [x,y]
end
end
end
alias afterwards_move_up move_up
def move_up(b = true)
move_afterwards(8)
afterwards_move_up(b)
end
alias afterwards_move_down move_down
def move_down(b = true)
move_afterwards(2)
afterwards_move_down(b)
end
alias afterwards_move_left move_left
def move_left(b = true)
move_afterwards(4)
afterwards_move_left(b)
end
alias afterwards_move_right move_right
def move_right(b = true)
move_afterwards(6)
afterwards_move_right(b)
end
alias afterwards_initialize initialize
def initialize
afterwards_initialize
@deal_sprites = []
@deal_points = {}
end
alias afterwards_update update
def update
afterwards_update
sx,sy = $game_map.display_x / 4,$game_map.display_y / 4
for sprite in @deal_sprites
sprite.update if sprite.x > 0 && sprite.y > 0 && sprite.x < 640 && sprite.y < 480
sprite.x = @deal_points[sprite][0] * 32 - sx
sprite.y = @deal_points[sprite][1] * 32 - sy
end
@deal_sprites.reject! {|x| !x.effect? }
end
end
复制代码
抛砖引玉吧抛砖引玉- -v
装逼用图.png
(109.32 KB, 下载次数: 0)
下载附件
保存到相册
= =v 你懂的
2011-8-30 08:27 上传
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1