加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 boylove10 于 2014-11-27 19:03 编辑
我想要实现的效果:
战斗的时候有站立的动画,(我自己扒的大概5帧一幅图,这不重要)
按下J就有攻击动画,(键盘上随便哪个键,我已有全键的脚本,这不重要)
所以我就觉得用主线程来接受操作,副线程来负责更新动画。
但是线程我看不大明白,不知道是RUBY版本的原因还是其他的,有些从RUBY帮助手册上拷下来的例子在VA都运行结果不一样。所以我对多线程还是懂得很混乱。(多线程常用的XX锁也不知道是哪个模块)s=Sprite.new s.bitmap=Bitmap.new(50,50) i=1 loop do s.bitmap.draw_text(s.bitmap.rect,sprintf("%d",i=i+1)) Graphics.wait(10) s.bitmap.clear end
s=Sprite.new
s.bitmap=Bitmap.new(50,50)
i=1
loop do
s.bitmap.draw_text(s.bitmap.rect,sprintf("%d",i=i+1))
Graphics.wait(10)
s.bitmap.clear
end
精灵的更新在主线程里的时候就没出什么问题,一旦放都第二个线程的时候就不行了
s=Sprite.new s.bitmap=Bitmap.new(50,50) i=1 t=Thread.new { loop do s.bitmap.draw_text(s.bitmap.rect,sprintf("%d",i=i+1)) Graphics.wait(10)#这里可能阻塞? s.bitmap.clear end } t.join rgss_stop
s=Sprite.new
s.bitmap=Bitmap.new(50,50)
i=1
t=Thread.new {
loop do
s.bitmap.draw_text(s.bitmap.rect,sprintf("%d",i=i+1))
Graphics.wait(10)#这里可能阻塞?
s.bitmap.clear
end
}
t.join
rgss_stop
是什么地方的问题。
实际上还是对多线程的不懂,而且纯英文苦手啊。
终极效果就是做成格斗游戏,有过脚本的话请给我贴个地址,或者上述能以单线程完成的脚本的地址。
结贴总结:
并未完全解决原有的问题,暂时用纤程代替:
站内纤程资料地址:https://rpg.blue/thread-220654-1-1.html
(要不多用几个if,break可能也行,不知道ruby有没有C++的goto,说不定也成呢)
最后:谢谢各位的帮助
|