如何解决实体未在我的游戏中正确呈现
最近在开发一个游戏(我是初学者,但它是有组织的)。 我的问题是我在我的游戏中添加了一棵树(静态实体),并且我已经使用比较器制作了一个实体管理器来正确呈现它。它的代码可以在下面看到。
public class EntityManager {
private Handler handler;
private Player player;
private ArrayList<Entity> entities;
private Comparator<Entity> renderSorter = new Comparator<Entity>() {
@Override
public int compare(Entity a,Entity b) {
if(a.getY() + a.getHeight() < b.getY() + b.getHeight()) {
return -1;
}
return 1;
}
};
public EntityManager(Handler handler,Player player) {
this.handler = handler;
this.player = player;
entities = new ArrayList<Entity>();
addEntity(player);
}
public void tick() {
Iterator<Entity> it = entities.iterator();
while(it.hasNext()) {
Entity e = it.next();
e.tick();
//if(!e.active)
//it.remove();
}
entities.sort(renderSorter);
}
public void render(Graphics g) {
for(Entity e : entities) {
e.render(g);
}
//player.postRender(g);
}
public void addEntity(Entity e) {
entities.add(e);
}
虽然树像这样正确呈现Tree rendering behind the player
但是我添加的一个新实体(岩石)没有正确渲染,像这样rock rendering in front of player
我不知道为什么会这样,或者这是否是一个错误。 如果您想要任何其他详细信息或源代码,请告诉。 谢谢
解决方法
我认为您的代码组织的程度没有问题。 这里的问题出在比较函数中,因为:
tree height + tree y > player height + player y
但是因为石头比玩家小,所以它会被放在前面,因为你涉及到物体的高度,所以它给出了这个:
rock y < player y
但是
rock height + rock y> player height + player y
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。