赞 | 2 |
VIP | 109 |
好人卡 | 208 |
积分 | 4 |
经验 | 22037 |
最后登录 | 2024-11-11 |
在线时间 | 1198 小时 |
Lv2.观梦者 虚構歪曲
- 梦石
- 0
- 星屑
- 364
- 在线时间
- 1198 小时
- 注册时间
- 2010-12-18
- 帖子
- 3928
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 忧雪の伤 于 2011-5-21 17:50 编辑
Sprite&Window
move_to(x, y, duration)
开始移动,x 是移动到的 X 座标,y 是移动到的 Y 座标,duration 是移动的帧数。
需要移动的情况下必须调用 update 方法。
例子:- sprite = [Sprite.new, Sprite.new]
- sprite[0].move_to(10, 10, 10); sprite[1].move_to(10, 10, 10)
- Graphics.wait(10){sprite[0].update; sprite[1].update}
- print sprite[0].x, sprite[0].y # => 10, 10
- print sprite[1].x, sprite[1].y # => 10, 10
复制代码 * Graphics.wait 请参考 RGSS2 的帮助。
- #==============================================================================
- # ** Graphics
- #==============================================================================
- module Graphics
- #--------------------------------------------------------------------------
- # * Wait
- #--------------------------------------------------------------------------
- unless method_defined?("wait"); def self.wait(duration)
- duration.times{update; yield if defined? yield}; end; end
- end
- #==============================================================================
- # ** Sprite
- #==============================================================================
- class Sprite
- alias move_system_update update unless method_defined?("move_system_update")
- #--------------------------------------------------------------------------
- # * Move To
- #--------------------------------------------------------------------------
- def move_to(*args)
- args[0] = args[0].round if args[0].is_a?(Float)
- args[1] = args[1].round if args[1].is_a?(Float)
- @move_system = [args, args[0] - self.x, args[1] - self.y, 0]
- end
- #--------------------------------------------------------------------------
- # * Update
- #--------------------------------------------------------------------------
- def update
- move_system_update
- return if @move_system.nil?; @move_system[3] += 1
- self.x += @move_system[1] / @move_system[0][2]
- self.y += @move_system[2] / @move_system[0][2]
- return unless @move_system[3] == @move_system[0][2]
- self.x, self.y, @move_system = @move_system[0][0], @move_system[0][1], nil
- end
- end
- #==============================================================================
- # ** Window
- #==============================================================================
- class Window
- alias move_system_update update unless method_defined?("move_system_update")
- #--------------------------------------------------------------------------
- # * Move To
- #--------------------------------------------------------------------------
- def move_to(*args)
- args[0] = args[0].round if args[0].is_a?(Float)
- args[1] = args[1].round if args[1].is_a?(Float)
- @move_system = [args, args[0] - self.x, args[1] - self.y, 0]
- end
- #--------------------------------------------------------------------------
- # * Update
- #--------------------------------------------------------------------------
- def update
- move_system_update
- return if @move_system.nil?; @move_system[3] += 1
- self.x += @move_system[1] / @move_system[0][2]
- self.y += @move_system[2] / @move_system[0][2]
- return unless @move_system[3] == @move_system[0][2]
- self.x, self.y, @move_system = @move_system[0][0], @move_system[0][1], nil
- end
- end
复制代码 |
|