Project1
标题:
移动i速度扩张(简单且雷人慎入)
[打印本页]
作者:
IamI
时间:
2009-9-12 09:20
标题:
移动i速度扩张(简单且雷人慎入)
前几天研究Game_Character的速度机制,发现狂雷巨闪……居然用的是2的速度次方,事实上,Game_Character能写下任何的速度。
这个脚本支持设置从1-100的速度
MAX_SPEED = 100
class Game_Character
alias old_initialize_speed_a initialize
def initialize
old_initialize_speed_a
@super_speed = -1
end
def update_move
distance = @super_speed <= -1 ? 2 ** @move_speed : @super_speed
distance *= 2 if dash?
@real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
@real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
@real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
@real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
update_bush_depth unless moving?
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
end
attr_accessor :move_speed
attr_reader :super_speed
def super_speed= (value)
@super_speed = value
@super_speed = MAX_SPEED if @super_speed > MAX_SPEED
end
end
class Game_Event
alias old_setup_speed_a setup
def setup(*args)
old_setup_speed_a(*args)
self.super_speed = @event.speed.to_i
end
end
class Game_Interpreter
def set_speed(ev_id,speed,bool = true)
ev = $game_map.events[ev_id]
ev = $game_player if ev_id == 0
raise EventIDError.new("异常的事件ID:" + ev_id.to_s) if ev == nil
if bool
ev.super_speed = speed
else
ev.move_speed = speed
ev.super_speed = -1
end
end
def get_speed(ev_id)
ev = $game_map.events[ev_id]
ev = $game_player if ev_id == 0
raise EventIDError.new("异常的事件ID:" + ev_id.to_s) if ev == nil
return ev.super_speed == -1 ? 2 ** ev.move_speed : ev.super_speed
end
end
class RPG::Event
def speed
splits = @name.split(/,speed =/)
return if splits[0] == @name
val = splits[splits.size - 1]
val.strip!
end
def name
return @name.split(/,/)[0]
end
end
class EventIDError < Exception
def initialize(me)
super(me)
end
end
复制代码
MAX_SPEED设置最高移动速度。
在事件名字后面加入",speed = XXX"(空格不能省略,不含双引号)即可设置该事件的移动速度
事件脚本set_speed(ev_id,speed)
设置id为ev_id的速度为speed。
原有速度对应关系为2的次方倍(速度5对应32,依此类推)
还有一些乱七八糟的功能就不解释了……反正应该用不到> <
范例:
速度扩张.rar
(235.86 KB, 下载次数: 2659)
2009-9-12 09:20 上传
点击文件名下载附件
范例
作者:
塑望
时间:
2009-9-12 17:05
若是赛跑之类的GAME的话变化是很微妙的
作者:
霜冻之狼
时间:
2009-9-12 17:48
做小游戏的法宝啊.....
俺能拿走么
作者:
越前リョーマ
时间:
2009-9-12 19:00
我觉得还是直接设置倍数比较好……特别是可以几点几之类的。
作者:
奶油Da蛋糕
时间:
2009-10-7 19:30
本帖最后由 奶油Da蛋糕 于 2009-10-7 19:32 编辑
可以输入浮点数么?
MAX_SPEED = π (这个字符是“兀”pai,宋体的“兀”pai就变成这样了。π=3.141592……)
作者:
hhs467492722
时间:
2010-8-24 21:06
哇塞:victory:,这么好用的脚本,好东西啊,谢谢你!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1