现在我可能是错的,但在测试了一天之后,我发现……
在添加小部件和设置z索引时,值"0“似乎就是神奇的深度。
如果小部件的Z为0,则它将绘制在所有不在0的顶部。
小部件的z索引是99、-999、10、-2还是其他任何值都无关紧要。它不会出现在z-index设置为0的小部件的顶部。
不过更奇怪的是...
任何小于-2或大于2的索引似乎都会创建“索引超出范围”错误。有趣的是,我使用的是一个背景和精灵小工具,背景的Z设置为999并且没有错误。当我添加另一个sprite小部件时,出现了-2到2 z索引的限制。
是的我know...sounds重击了!
我的问题是,"0“是神奇的Z值,我说的对吗?
如果是这样的话,创建一个简单的23D效果,比如让精灵移动成为一块大石头,需要一些不需要的代码。
由于您只能在添加小部件时设置Z,因此必须移除小部件,然后立即添加回来,并使用新的Z值...小部件。
您必须对移动的精灵和有问题的重叠对象执行此操作。见鬼,我已经写好了这段代码,但我想从Kivy专业人士那里了解到,有没有一种方法可以在不删除和添加小部件的情况下设置z-index。
如果不是,我将不得不接受痛苦的方式。
我的Kivy版本是1.9.0
发布于 2015-07-09 18:03:23
你说的z顺序是什么意思?绘制顺序完全由添加到父级的小部件的顺序决定,add_widget的索引参数只是插入小部件的列表索引。在小部件中改变绘制顺序的正确方法是删除和添加它们(实际上你可以手动处理画布,但这是相同的事情,只是级别较低,而不是一个更好的主意)。
发布于 2015-07-10 02:30:38
我发现了一种可行的解决方案,它使用基本的逻辑,基于这样一个事实:为了控制深度/绘制顺序,必须删除并重新添加小部件。
我知道Main Character窗口小部件必须与question...so中的对象一起删除。我创建了一个Main Character父窗口小部件,除了图形窗口小部件外,它还定义和控制主要角色。
我的测试包括主角在一块大石头前行走,然后在it...creating后面走23D效果。
我简单地使用了"y-“理论以及小部件附加和分离代码来创建所需的效果。
唯一让我猝不及防的是,我的Actor图形小部件正在加载纹理。这是一个很大的不,因为fps死了。
简单的修复,将纹理加载移动到主角色父窗口小部件,并且加载将一劳永逸。
另外,如果有人知道如何隐藏滚动条并希望分享这方面的知识,我们将不胜感激。我还没有为它寻找API解决方案,但我很快就会找到的。
现在,我只是想确保我可以完成创建商业23D游戏(手持设备)所需的基本操作。
我是一个图形艺术家和网页开发人员,所以想出可爱的视觉效果不是问题。可以说,我更关心的是什么是“引擎盖下”。希望足够了,哈哈。
https://stackoverflow.com/questions/31311007
复制相似问题