Java 在Libgdx中为玩家设置碰撞边界的最动态的方法?

Java 在Libgdx中为玩家设置碰撞边界的最动态的方法?,java,libgdx,2d,collision,game-physics,Java,Libgdx,2d,Collision,Game Physics,我有一个64 x 64像素的播放器精灵。图像的实际像素约为图像宽度的一半(32像素),位于中心。使用顶部、底部、左侧和右侧的4个矩形设置碰撞边界的最简单方法是什么?我应该像这样手动硬编码矩形位置吗 public Rectangle getBounds() { return new Rectangle(pos.x + currentAnim.getCurrentFrame().getWidth() * 1 / 3, pos.y, currentAnim.getCurrentFrame().

我有一个64 x 64像素的播放器精灵。图像的实际像素约为图像宽度的一半(32像素),位于中心。使用顶部、底部、左侧和右侧的4个矩形设置碰撞边界的最简单方法是什么?我应该像这样手动硬编码矩形位置吗

public Rectangle getBounds() {
    return new Rectangle(pos.x + currentAnim.getCurrentFrame().getWidth() * 1 / 3, pos.y, currentAnim.getCurrentFrame().getWidth() - currentAnim.getCurrentFrame().getWidth() * 2 / 3, currentAnim.getCurrentFrame().getHeight() / 10);
}

public Rectangle getTopBounds() {
    float width = getBounds().getWidth();
    float height = getBounds().getHeight() / 2;
    return new Rectangle(getBounds().x + .016f, getBounds().y + currentAnim.getCurrentFrame().getHeight() - height, width - .032f, height);
}

这是处理事情的最好方式吗?我觉得代码太硬了,但看不到其他解决方案。谢谢你的帮助

为什么要为矩形大小的图像设置四个矩形边界?不能将矩形本身作为边界矩形返回吗?否则,您可以为每个边界返回两个点(形成一条线)。为什么要为矩形大小的图像设置四个矩形边界?不能将矩形本身作为边界矩形返回吗?否则,您可以为每个边界返回两个点(形成一条线)。