设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1489|回复: 2
打印 上一主题 下一主题

[已经解决] 如果获取Viewport中的所有精灵?

[复制链接]

Lv2.观梦者

梦石
0
星屑
717
在线时间
375 小时
注册时间
2009-3-9
帖子
398
跳转到指定楼层
1
发表于 2014-2-15 10:33:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
v = Viewport.new(0, 0, 300, 300)
s1 = Sprite.new(v)
s2 = Sprite.new(v)

用代码如果获取“v”中的所有精灵?也就是得到[s1, s2]呢?

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

新手学习中.....努力吧!!

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
2
发表于 2014-2-15 19:03:15 | 只看该作者
据说只能遍历所有Sprite,你可以通过重定义Sprite#initialize来记录这个东西
  1. class Sprite
  2.   alias :init :initialize
  3.   def initialize(*args)
  4.     init(*args)
  5.     self.viewport.sprites.push(self) if self.viewport
  6.   end
  7. end

  8. class Viewport
  9.   def sprites
  10.     return @sprite||=[]
  11.   end
  12. end
复制代码

点评

↓减少遍历次数,提高效率【我知道你又要吐槽我效率问题】【有时间快来告诉我我的函数为什么又出问题了】  发表于 2014-2-15 21:11
遍历中判断一下sprite.viewport是不是此viewport不就行了?  发表于 2014-2-15 20:23

评分

参与人数 1星屑 +160 收起 理由
︶ㄣ牛排ぶ + 160 认可答案

查看全部评分

我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
717
在线时间
375 小时
注册时间
2009-3-9
帖子
398
3
 楼主| 发表于 2014-2-16 19:21:17 | 只看该作者
无脑之人 发表于 2014-2-15 19:03
据说只能遍历所有Sprite,你可以通过重定义Sprite#initialize来记录这个东西

谢啦,已经找到方法了,我这边怎么没有【认可按钮】?

点评

需要到手动认可申请帖里去认可= =  发表于 2014-2-17 12:20
新手学习中.....努力吧!!
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-22 02:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表