Project1

标题: 继续提问关于sprite和viewport的关系 [打印本页]

作者: saturnfjh    时间: 2015-8-27 10:46
标题: 继续提问关于sprite和viewport的关系
定义一个 Sprtie 的时候,如果定义为

Sprtie.new(viewport),那么是不是意味着 Sprite 会跟随 viewport 移动?也就是说只要定义了 viewport 的 ox,就决定了 Sprite的相对位置?

又:

RUBY 代码复制
  1. spr = Sprtie.new(Viewport.new)




RUBY 代码复制
  1. spr = Sprtie.new
  2. spr.viewport = Viewport.new


是否等价?

另外做游戏的时候遇到个问题,Viewport.new 未定义ox和oy的时候,Sprtie可以看得见,但是重新移动了Viewport之后,Sprtie就看不见了,这是为啥?

代码贴上:

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 更新光标
  3.   #--------------------------------------------------------------------------
  4.   def update_cursor
  5.     unless @cursor
  6.       @cursor_viewport = Viewport.new(0, 0, 465, 26)
  7.       @cursor = Sprite.new
  8.       @cursor.viewport = @cursor_viewport
  9.       @cursor.bitmap = Cache.skillui("cursor_able")
  10.     end
  11.     @cursor_viewport.visible = false if @index < 0
  12.     return unless @index >= 0
  13.     ensure_cursor_visible
  14.     @cursor_viewport.visible = true
  15.     @cursor_viewport.ox = item_rect(@index).x + 72
  16.     @cursor_viewport.oy = item_rect(@index).y + 172
  17.   end

作者: taroxd    时间: 2015-8-27 11:03
1. 等价
2. 不清楚你具体的代码。不过你确定坐标正确吗?按照你的设置 item_rect(@index).x 越大,@cursor_viewport.ox 越大,反而会使得光标向左移动
   为什么不直接用 @cursor 的坐标,而要用到 viewport 呢?能给我你的理由吗?
作者: saturnfjh    时间: 2015-8-27 11:51
taroxd 发表于 2015-8-27 11:03
1. 等价
2. 不清楚你具体的代码。不过你确定坐标正确吗?按照你的设置 item_rect(@index).x 越大,@cursor_ ...

好吧突然发现忽略了一个很大的问题,ox越大是往左移动- - 感谢提醒~至于为什么不直接用cursor。。其实一开始是用cursor的,但是后来想研究一下viewpor...就这样了。。

应该还会改回去的吧。而且直接用sprite还可以设置闪烁效果~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1