Project1
标题:
!!!!!怎么让图片移动速度渐变加速?!!!!!
[打印本页]
作者:
315038639
时间:
2011-6-12 19:18
标题:
!!!!!怎么让图片移动速度渐变加速?!!!!!
本帖最后由 315038639 于 2011-6-12 19:18 编辑
就是类似于在斜坡向下滚筒,一开始很慢,然后越来越快、越来越快……
就是这样,图片移动速度中途提高。 dsu_plus_rewardpost_czw
作者:
冰舞蝶恋
时间:
2011-6-12 22:00
似乎……可以这样
移动总路程的1/X,时间,60帧(1秒)
(紧接着上一个指令)移动同上的长度,时间,40帧
同上,20帧
……
数字你可以自己改……嗯,大概吧,提供一下比较废渣的思路
当然用脚本会比较方便
作者:
诡异の猫
时间:
2011-6-13 13:40
本帖最后由 诡异の猫 于 2011-6-13 16:33 编辑
class Game_Picture
alias ori_ini initialize
def initialize(number)
ori_ini(number)
@time = 0
end
def move_faster(tx, ty, time)
@target_x = tx
@target_y = ty
@distance_x = tx - @x
@distance_y = ty - @y
@time = time
@all_time = time
end
alias ori_update update
def update
ori_update
if @time > 0
mx = (@distance_x / @all_time) * (@all_time - @time) / @time
my = (@distance_y / @all_time) * (@all_time - @time) / @time
@x = [@x + mx, @target_x].min if @distance_x > 0
@x = [@x + mx, @target_x].max if @distance_x < 0
@y = [@y + my, @target_y].min if @distance_y > 0
@y = [@y + my, @target_y].max if @distance_y < 0
@time -= 1
end
end
end
复制代码
使用方法:
比如地图上显示了1号图片
则在事件里写脚本 $game_map.screen.pictures[1].move_faster(x, y, time)
x, y 表示你的目标坐标 就是想把图片移动到哪里
time表示你将图片由原来位置移动到xy所需要的时间
举个例子吧
例如你在地图上显示了1号图片 原坐标是0,0
然后你执行了$game_map.screen.pictures[1].move_fatser(500, 400, 100)
就是用100帧时间(正常情况下60帧=1秒)把1号图片从0,0加速移动到500,400
mx和my的算法有误,待高人修改,有事先出去了- -
此时 在第一帧的时候
图片X坐标的移动速度mx = (500/100) * (100 - 100) / 100(计算结果舍弃小数部分)
在第二帧的时候图片
图片X坐标的移动速度mx = (500/100) * (100 - 99) / 99
依此类推
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1