Project1

标题: 如何让Sprite的z坐标不受y坐标影响? [打印本页]

作者: test    时间: 2014-9-28 16:07
标题: 如何让Sprite的z坐标不受y坐标影响?

引用F1的原话:
“Z 座標が同一の場合は Y 座標が大きいものほど 、 Y 座標も同一の場合は後に生成されたオブジェクトほど手前に表示されます。”

我想改成这样:
“Z 座標が同一の場合は後に生成されたオブジェクトほど手前に表示されます。”

当然,直接设置z坐标是最简单有效的办法了。
这里讨论的是z坐标相同的情况。
作者: taroxd    时间: 2014-9-28 17:17
本帖最后由 taroxd 于 2014-9-28 17:23 编辑

换个 viewport

说起来为什么非要 z 坐标相同不可呢。游戏里的这个设定主要是为了战斗中敌人位置的摆放。毕竟敌人的 z 坐标都是相同的。
你愿意的话,你可以改成“根据敌人在敌群中的位置设定z坐标”
作者: test    时间: 2014-9-28 18:12
taroxd 发表于 2014-9-28 17:17
换个 viewport

说起来为什么非要 z 坐标相同不可呢。游戏里的这个设定主要是为了战斗中敌人位置的摆放。毕 ...

我主要是想动态创建Sprite对象,
并让最后创建的Sprite在之前创建Sprite的前面。
然后限制Sprite数量为100个,当Sprite数量超过100个之后,最前面创建的Sprite释放掉。

之前我想过创建一个Sprite就用最后一个z坐标+1的方法。
但是这样会有一个问题,我本来想限制z值在100以内的,但是不断创建Sprite之后,z值会不断增大,最终还是会超过限定范围。

如果可以用z值解决当然会优先考虑直接设置z值的方法,
可是实在想不出什么办法,所以才想到用相同z值,
但是发现相同z值会受y坐标影响……

作者: 喵呜喵5    时间: 2014-9-28 18:55
test 发表于 2014-9-28 18:12
我主要是想动态创建Sprite对象,
并让最后创建的Sprite在之前创建Sprite的前面。
然后限制Sprite数量为10 ...

那几百多个Spirit再用一个Viewport装,然后Viewport的Z决定总体高度,里面的精灵随便几百几千的Z也不会盖掉Z比Viewport高的东西
作者: 国产吃货    时间: 2014-9-29 00:07
我记得,F1里说的是,Z坐标越大越靠近玩家。
Z坐标相同的,最后创建的最靠近玩家。

创建了新的Sprite之后。
循环现有的精灵,重新分配Z坐标。

RUBY 代码复制
  1. SpriteList=[]
  2. SpriteList.push(New Sprite)
  3. SpriteList.each_index{
  4. |i|
  5. SpriteList[i].z=i
  6. }





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