加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 end55rpg 于 2014-1-23 17:50 编辑
10行的代码实现两个功能 防变速
不过应该是防菜鸟的。
Thread.new{ loop{tt=Time.now t=Graphics.frame_rate/10;sleep t exit unless (-0.5..0.5)===Time.now-t-tt}}
Thread.new{ loop{tt=Time.now
t=Graphics.frame_rate/10;sleep t
exit unless (-0.5..0.5)===Time.now-t-tt}}
由于失去焦点后取时间间隔变得异常大,而且
由于线程的sleep在RM失去焦点后仍然运作,所以和取Time一样,于是没采用sleep当time,而用信用机制,下面是正确率很高的代码:
#防修改器变速 byEnd55rpg module Graphics Update = method("update") @t=Time.now @crash=0 @cnsd=0 def self.update(*arg) if @cnsd == Graphics.frame_rate unless (1..1.1)===(Time.now-@t) @crash += 100 if Time.now-@t < 10 end if @crash > 200 exit end @t=Time.now @cnsd=0 else @crash-=2 if @crash >= 2 @cnsd+=1 end Update.call(*arg) end end
#防修改器变速 byEnd55rpg
module Graphics
Update = method("update")
@t=Time.now
@crash=0
@cnsd=0
def self.update(*arg)
if @cnsd == Graphics.frame_rate
unless (1..1.1)===(Time.now-@t)
@crash += 100 if Time.now-@t < 10
end
if @crash > 200
exit
end
@t=Time.now
@cnsd=0
else
@crash-=2 if @crash >= 2
@cnsd+=1
end
Update.call(*arg)
end
end
测试后,基本可以使用,在几秒内会结束使用变速的游戏
求讨论可行性与实际性
防止修改内存代码较复杂。。。。待讨论 |