Project1

标题: 为什么设了z=100还显示在下面? [打印本页]

作者: 受pia专用ID    时间: 2012-5-18 12:38
标题: 为什么设了z=100还显示在下面?
本帖最后由 受pia专用ID 于 2012-5-18 13:29 编辑

输入如下脚本
class A
  def initialize
    @vp = Viewport.new(0, 0, 544, 416)
    @sp = Sprite.new(@vp)
    @sp.z = 100
    @sp.bitmap = Cache::system("Mouse")
  end
end
$a = A.new
loop do
  Graphics.update
end
顺利显示图形Mouse
但改动后
class A
  def initialize
    @vp = Viewport.new(0, 0, 544, 416)
    @sp = Sprite.new(@vp)
    @sp.z = 100
    @sp.bitmap = Cache::system("Mouse")
  end
end
$a = A.new
vp = Viewport.new(0, 0, 544, 416)
sprite = Sprite.new(vp)
sprite.bitmap = Cache.system("Title")
sprite.x = 10
loop do
  Graphics.update
end
却发现Mouse显示在Title下面。为什么在class A中设了z = 100还显示在下面?
我用的是rmvx1.02dsu_plus_rewardpost_czw
作者: tommay    时间: 2012-5-18 15:24
本帖最后由 tommay 于 2012-5-18 15:24 编辑

@sp是在@vp这一个视口中,
sprite是在vp这个视口中的。
虽然两个视口的z值都没指定,也就是都默认为0,但vp这个视口后创建,后创建的在上方显示,所以sprite在上方显示。

总之一句话,两个精灵的叠放次序先看视口的z值,视口相同看再精灵z值。
解决办法是把sprite = Sprite.new(vp)改成sprite = Sprite.new(@vp)




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