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

Project1

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

[已经解决] 为什么设了z=100还显示在下面?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2011-8-21
帖子
51
跳转到指定楼层
1
发表于 2012-5-18 12:38:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 受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.02

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
2
发表于 2012-5-18 15:24:05 | 只看该作者
本帖最后由 tommay 于 2012-5-18 15:24 编辑

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

总之一句话,两个精灵的叠放次序先看视口的z值,视口相同看再精灵z值。
解决办法是把sprite = Sprite.new(vp)改成sprite = Sprite.new(@vp)
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-1 10:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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