gpt4 book ai didi

java - LibGdx Sprite 之间的碰撞检测?

转载 作者:行者123 更新时间:2023-11-30 10:32:12 25 4
gpt4 key购买 nike

使用 accelerometer 我的 sprite 图像左右移动,如果我触摸我的屏幕,sprite 将移动到 Y 轴。我想在不同的 sprite 之间进行碰撞检测,以便如果 sprite通过一个对象它会停下来隐藏在那个对象中。我已经看过这个教程了 https://www.youtube.com/watch?v=T1aN--vTqLc但什么也没发生。进行碰撞检测的正确方法是什么?我不知道我的编码有什么问题。任何建议或更好的教程谢谢并提前

这是我的代码

private Rectangle rectangleCat;
private Rectangle rectangleShoes;
private float yPosition = -40;

Sprite

    cat = new Texture(Gdx.files.internal("cat.png"));
catsprite = new Sprite(cat);
catX=300;
catY=0;

sprite_shoes = new Sprite(new Texture("equip/Shoes.png"));
sprite_shoes.setPosition(260,580);

rectangleShoes=new Rectangle(sprite_shoes.getX(),sprite_shoes.getY(),sprite_shoes.getWidth(),sprite_shoes.getHeight());
rectangleCat = new Rectangle(catsprite.getX(),catsprite.getY(),catsprite.getWidth(),catsprite.getHeight());

渲染方法

    boolean isOverlaping = rectangleCat.overlaps(rectangleShoes);
if(!isOverlaping) {
System.out.println("not overlap");
yPosition = yPosition + (20 * delta);

}

我的 Sprite 图像和对象不重叠

完整源代码 http://pastebin.com/Dxfx9f65

最佳答案

首先你的 Sprite 不是锐利的矩形它看起来像多边形所以你需要检测两个多边形之间的碰撞。

如果你想检测矩形之间的碰撞,那么在 render() 方法中获取你的 Sprite 的边界矩形。

在渲染方法中

rectangleShoes=sprite_shoes.getBoundingRectangle();
rectangleCat=catsprite.getBoundingRectangle();

boolean isOverlaping = rectangleCat.overlaps(rectangleShoes);
if(!isOverlaping) {
System.out.println("not overlap");
yPosition = yPosition + (20 * delta);

}

关于java - LibGdx Sprite 之间的碰撞检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42829931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com