查看: 2191|回复: 2

[已经解决] 继续提问关于sprite和viewport的关系

[复制链接]
梦石
0
星屑
724
在线时间
685 小时
注册时间
2009-5-29
回帖
332
发表于 2015-8-27 10:46:43 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
定义一个 Sprtie 的时候,如果定义为

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

又:

[pre lang="ruby"]spr = Sprtie.new(Viewport.new) [/pre]

和

[pre lang="ruby"]spr = Sprtie.new
spr.viewport = Viewport.new[/pre]

是否等价?

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

代码贴上:

[pre lang="ruby"]  #--------------------------------------------------------------------------
  # ● 更新光标
  #--------------------------------------------------------------------------
  def update_cursor
    unless @cursor
      @cursor_viewport = Viewport.new(0, 0, 465, 26)
      @cursor = Sprite.new
      @cursor.viewport = @cursor_viewport
      @cursor.bitmap = Cache.skillui("cursor_able")
    end
    @cursor_viewport.visible = false if @index < 0
    return unless @index >= 0
    ensure_cursor_visible
    @cursor_viewport.visible = true
    @cursor_viewport.ox = item_rect(@index).x + 72
    @cursor_viewport.oy = item_rect(@index).y + 172
  end[/pre]

点评

viewport和@cursor_viewport並不是同様的東西巴  发表于 2015-8-27 11:53

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

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

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
724
在线时间
685 小时
注册时间
2009-5-29
回帖
332
 楼主| 发表于 2015-8-27 11:51:44 | 显示全部楼层
taroxd 发表于 2015-8-27 11:03
1. 等价
2. 不清楚你具体的代码。不过你确定坐标正确吗?按照你的设置 item_rect(@index).x 越大,@cursor_ ...

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部