Project1

标题: 极度简单的问题= = [打印本页]

作者: 一醉倾城    时间: 2009-1-31 21:00
标题: 极度简单的问题= =
    弱弱的问下= =,如何调整系统文字的 Z 值!!!!!!!{/pz} [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 后知后觉    时间: 2009-1-31 21:19
Font好像没有Z属性
如果想调整,个人认为
描绘文字先生成精灵,
再生成bitmap,在bitmap上描绘文字后调整该精灵的Z值

你说说你遇到的具体情况或许有人能帮到你
作者: 一醉倾城    时间: 2009-1-31 21:32
    我生成一张图片= =然后想在图片上描绘物品菜单,但是我显示出来的是图片把文字遮住了= =就是这样
作者: 后知后觉    时间: 2009-1-31 21:42
生成图片是用的精灵还是用的self.contents.blt
是精灵的话就把精灵的Z调得比窗口低,然后把窗口的opacity弄到0
是self.contents.blt的话
就最开始的就把图片生成出来,然后再生成文字那些东西
后生成的就会压在图片上了
作者: 一醉倾城    时间: 2009-1-31 21:59
    我是用sprite.new,   但是我这样设置的在窗口那里   self.z=80
    然后在图片那里是 back_item.z=5    依然是图片遮住 字体{/pz}
作者: 后知后觉    时间: 2009-1-31 22:33
我不知道你是否是用的复杂物品分类
我用那个现在也有点Z值的问题没有解决
不过是窗口和窗口之间。
你试试先生成一个新的Viewport
把Sprite放在这个新生成的Viewport上
把这个Viewport的Z调低点,比如-1000
我没有试过不知道行不行
作者: 亿万星辰    时间: 2009-1-31 22:36
以下引用一醉倾城于2009-1-31 13:59:17的发言:

   我是用sprite.new,   但是我这样设置的在窗口那里   self.z=80
   然后在图片那里是 back_item.z=5    依然是图片遮住 字体

window本身的z值默认100
那么用于描绘文字的contents所在层的z值就是101
所以你如果要让图片挡住文字,那么图片所在的sprite的z至少得是102

好像是这么个关系来的……
作者: 后知后觉    时间: 2009-1-31 22:51
怪事{/fd}我那问题刚才弄了一下又弄好了……

作者: 一醉倾城    时间: 2009-1-31 22:52
以下引用亿万星辰于2009-1-31 14:36:39的发言:

window本身的z值默认100
那么用于描绘文字的contents所在层的z值就是101
所以你如果要让图片挡住文字,那么图片所在的sprite的z至少得是102

好像是这么个关系来的……


[本贴由作者于 2009-1-31 14:42:51 最后编辑]


    调到    self.z = 9999都不行{/pz}






以下引用后知后觉于2009-1-31 14:33:51的发言:

我不知道你是否是用的复杂物品分类
我用那个现在也有点Z值的问题没有解决
不过是窗口和窗口之间。
你试试先生成一个新的Viewport
把Sprite放在这个新生成的Viewport上
把这个Viewport的Z调低点,比如-1000
我没有试过不知道行不行



我试试= = {/wx} ,大风大浪都过来了。偶就不信会卡在这里{/fn}

作者: 亿万星辰    时间: 2009-1-31 23:10
以下引用一醉倾城于2009-1-31 14:52:03的发言:
调到    self.z = 9999都不行

怎么是调self的z值呢?{/fd}
作者: 一醉倾城    时间: 2009-1-31 23:14
    。。。。星辰前辈看清楚问题否?我的意思是让文字显示在图片上面,而非图片将文字覆盖掉{/gg}


还有后知后觉前辈的方法还是不行啊。。。。。。。。。。。。
作者: 亿万星辰    时间: 2009-1-31 23:36
是啊,要问题显示在图片上面,那也得改sprite的z值啊
作者: 一醉倾城    时间: 2009-1-31 23:47
    厄。。。。或许。。。。。。。。。。。。。。。。。。。。。我以前搞错了???{/gg}
作者: 后知后觉    时间: 2009-2-1 00:06
我在想你生成Sprite是在哪生成的
如果是在Window里生成的 那就放到Scene里面去生成
你在Window里生成Sprite貌似Sprite永远都会在Window上面(这句话尚未验证{/bz})
作者: 亿万星辰    时间: 2009-2-1 00:33
以下引用后知后觉于2009-1-31 16:06:02的发言:

我在想你生成Sprite是在哪生成的
如果是在Window里生成的 那就放到Scene里面去生成
你在Window里生成Sprite貌似Sprite永远都会在Window上面(这句话尚未验证)

这个……去验证一下把……  囧rz
作者: 后知后觉    时间: 2009-2-1 00:37
以下引用亿万星辰于2009-1-31 16:33:08的发言:


以下引用后知后觉于2009-1-31 16:06:02的发言:

我在想你生成Sprite是在哪生成的
如果是在Window里生成的 那就放到Scene里面去生成
你在Window里生成Sprite貌似Sprite永远都会在Window上面(这句话尚未验证)


这个……去验证一下把……  囧rz

其实没有必要验证{/gg}
因为没有任何价值{/gg}去验证只是浪费时间而已{/gg}
实际操作中我肯定不会做这样的事{/gg}
我前面就给他说了要先生成图片再生成文字才行的嘛!
作者: dbshy    时间: 2009-2-1 00:39
以下引用后知后觉于2009-1-31 16:06:02的发言:

你在Window里生成Sprite貌似Sprite永远都会在Window上面(这句话尚未验证)


恰好相反 - -

作者: 后知后觉    时间: 2009-2-1 00:53
以下引用dbshy于2009-1-31 16:39:34的发言:


以下引用后知后觉于2009-1-31 16:06:02的发言:

你在Window里生成Sprite貌似Sprite永远都会在Window上面(这句话尚未验证)




恰好相反 - -

哦!我Sprite用得少,在窗口里基本上都是用contents.blt在显示图片
还真不知道这个,但是这样一说来 LZ的问题就更那什么了
既然生成的Sprite在窗口下面那又怎么能挡住窗口上面的文字……
作者: 亿万星辰    时间: 2009-2-1 00:55
以下引用后知后觉于2009-1-31 16:37:25的发言:
以下引用后知后觉于2009-1-31 16:06:02的发言:

我在想你生成Sprite是在哪生成的
如果是在Window里生成的 那就放到Scene里面去生成
你在Window里生成Sprite貌似Sprite永远都会在Window上面(这句话尚未验证)

其实没有必要验证
因为没有任何价值去验证只是浪费时间而已
实际操作中我肯定不会做这样的事
我前面就给他说了要先生成图片再生成文字才行的嘛!

我的意思是你说的这句“貌似Sprite永远都会在Window上面”结论是错误的……
其实这种操作有时候还是会用到的,当然这也是因人而异,LZ恰好遇到的就是这个情况。
另外这个和图片文字的生成的先后顺序无关,因为文字是在window里图片是在sprite中,图片和文字是在两个Bitmap类的对象中,互不干扰,LZ出现的问题是两个用于放置Bitmap类的载体的z出现了问题。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 后知后觉    时间: 2009-2-1 01:43
恩恩{/gg}这个我是明白的
我说的时候说得不清楚
那个顺序嘛我说的contents.blt
因为我以前学用fill_rect描绘血条的时候就遇到过血条压在文字上
换了下描绘顺序就好了,所以映像特别深刻.

今天收益不小,LZ另外那个帖子里你发的那一段脚本里的
def dispose和def visible 里面的super
让我感觉到这个super是干嘛的了,以前看F1看得云里雾里的
这下算是有点感觉了{/cy}
作者: 一醉倾城    时间: 2009-2-1 02:02
    。。。。终于找到问题。。。的确如星辰前辈所说的。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。{/jk}
作者: Quarcy    时间: 2009-2-1 02:11
顯示哪個,先要看
viewport的z值。大的在上面,小的在下面,本身的z值不重要。
viewport同等的情況下,本身的z值大的在上面,小的在下面。
viewport和本身的z值一樣的時候,根據opacity值,大的在上面,小的在下面。
opacity一樣,會用加法疊加
也就是這樣:
self.viewport.z | self.z | self.opacity

默認情況下
window.viewport.z = 102
window.z = 100
window.contents.z = window.z + 2
sprite.viewport.z = 102
sprite.z = 0
sprite.bitmap.z = sprite.z + 2





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