查看: 2352|回复: 4

[已经解决] 如何让Sprite的z坐标不受y坐标影响?

[复制链接]
梦石
0
星屑
65
在线时间
389 小时
注册时间
2009-11-24
回帖
59
发表于 2014-9-28 16:07:38 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×

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

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

当然,直接设置z坐标是最简单有效的办法了。
这里讨论的是z坐标相同的情况。

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-9-28 17:17:27 | 显示全部楼层
本帖最后由 taroxd 于 2014-9-28 17:23 编辑

换个 viewport

说起来为什么非要 z 坐标相同不可呢。游戏里的这个设定主要是为了战斗中敌人位置的摆放。毕竟敌人的 z 坐标都是相同的。
你愿意的话,你可以改成“根据敌人在敌群中的位置设定z坐标”
回复

使用道具 举报

梦石
0
星屑
65
在线时间
389 小时
注册时间
2009-11-24
回帖
59
 楼主| 发表于 2014-9-28 18:12:58 | 显示全部楼层
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坐标影响……
回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-9-28 18:55:41 | 显示全部楼层
test 发表于 2014-9-28 18:12
我主要是想动态创建Sprite对象,
并让最后创建的Sprite在之前创建Sprite的前面。
然后限制Sprite数量为10 ...

那几百多个Spirit再用一个Viewport装,然后Viewport的Z决定总体高度,里面的精灵随便几百几千的Z也不会盖掉Z比Viewport高的东西
回复

使用道具 举报

梦石
0
星屑
55
在线时间
218 小时
注册时间
2013-12-17
回帖
368
发表于 2014-9-29 00:07:28 | 显示全部楼层
我记得,F1里说的是,Z坐标越大越靠近玩家。
Z坐标相同的,最后创建的最靠近玩家。

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

[pre lang="ruby" line="1"]SpriteList=[]
SpriteList.push(New Sprite)
SpriteList.each_index{
|i|
SpriteList.z=i
}[/pre]

评分

参与人数 2星屑 +15 梦石 +1 收起 理由
taroxd + 1 认可答案
test + 15 谢谢,原来还可以这样……我一时没想到…….

查看全部评分

RM脚本定制/修改/整合 群:143356012(入群注明来意)
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部