Project1

标题: 【脚本学习】::Sprite.new(viewport) 的两个冒号是什么意思 [打印本页]

作者: ORANGI    时间: 2016-11-19 10:43
标题: 【脚本学习】::Sprite.new(viewport) 的两个冒号是什么意思
RUBY 代码复制
  1. def make_animation_sprites
  2.     @ani_sprites = []
  3.     if @use_sprite && !@@ani_spr_checker.include?(@animation)
  4.       16.times do
  5.         sprite = ::Sprite.new(viewport)
  6.         sprite.visible = false
  7.         @ani_sprites.push(sprite)
  8.       end
  9.       if @animation.position == 3
  10.         @@ani_spr_checker.push(@animation)
  11.       end
  12.     end
  13.     @ani_duplicated = @@ani_checker.include?(@animation)
  14.     if !@ani_duplicated && @animation.position == 3
  15.       @@ani_checker.push(@animation)
  16.     end
  17.   end


就是在游戏内看见了这样一个方法 然后里面用到了::Sprite.new  Sprite.new 我是知道啦,
但是:: 这两个冒号是什么意思?
作者: shitake    时间: 2016-11-19 11:15
可能他自己在哪里定义了一个Sprite类吧
::用来回到顶层的namespace
具体可以参考这里:https://ruby-china.org/topics/7932
作者: VIPArcher    时间: 2016-11-19 12:05
本帖最后由 VIPArcher 于 2016-11-19 12:07 编辑

感觉默认脚本这里用::和不用都是一样的
访问的都是 Sprite
  1. class B
  2.   def ab
  3.     p self.class
  4.   end
  5. end
  6. module A
  7.   class B
  8.     def ab
  9.       p self.class
  10.     end
  11.   end
  12.   B.new.ab    #=> A::B
  13.   ::B.new.ab  #=> B
  14. end
  15. B.new.ab      #=> B
  16. A::B.new.ab   #=> A::B
复制代码





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