繁体   English   中英

碰撞检测Libgdx矩形

[英]Collision detection Libgdx rectangles

我正在尝试使用Rectangles为我的游戏实现碰撞检测,但似乎无法使其正常工作。

在每帧按下空格时,项目符号会更新,以便它们在屏幕上移动。 显然,因此有人告诉我,碰撞盒也随之移动。 我通过使用sprite.getBoundingBox()为每个实例将数据字段Rectangle设置为此值来获取此信息。

我有两个Arraylist,一个持有Monsters实例,另一个持有Bullet实例。 它们都有与之关联的collisionRectangles。

我在主渲染循环中每帧都调用checkCollisions()方法,只要子弹或怪物arraylist中有内容。

/*this handles collisions between bullets and enemies*/
public static void checkCollisions(){
    for (int i = 0; i < Main.currentBullets.size(); i++){
        for (int k = 0; k < Main.currentMonsters.size(); k++){
            if (Intersector.overlaps(Main.currentBullets.get(i).collisionBoxBullet,
                  Main.currentMonsters.get(k).collisionBoxMonster)){
                     System.out.println("Boom headshot");
                }
        }
    }

Boom Headshot每次重叠都不应该这样做吗? 取而代之的是,它似乎总是评估为真。

为什么它要不断评估并撰写爆头头像?

我没有做的是将精灵的矩形的位置设置为0.0。 然后,我也没有使用collisionBox.setPosition()正确移动碰撞盒。

它最初检查在0/0处的精灵是否与在0.0处的碰撞盒碰撞,这始终是正确的,因此总是说它是重叠的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM