java - 当与 Android 中的图 block 碰撞时停止玩家

标签 java libgdx collision-detection collision

我正在尝试在 mario zechner 的 badlogicgames 框架上制作一个简单的游戏。我只是想放置一些瓷砖,比如……树木、灌木丛等,并希望我的玩家在经过它们时停下来……以产生良好的效果……我尝试了很多替代方案……但不起作用……

1.) 我尝试定义一个 boolean 值 playerBolcked = false; ...在碰撞检测循环中,我将其设置为 true .. 当它为 true 时 .. 我阻止了玩家移动 ..update();

2.) 我尝试在检查碰撞之前存储玩家的位置..如果玩家与瓷砖碰撞... 然后我再次将位置设置回来...它也不起作用...

我的检测代码是这样的...

private void checkTreeCollisions() {
        int len = trees.size();
        float x = allen.position.x;
        float y =allen.position.y;



     for (int i = 0; i < len; i++) {
                Tree tree = trees.get(i);

                    if (OverlapTester.overlapRectangles(allen.bounds, tree.bounds)) {

                            // this is not working
                        allen.position.set(x, y);


                        break;

                }
        }
    }

请给我建议一个好方法......

最佳答案

在碰撞检测中,首先检查它是否在 x 轴上水平碰撞,然后将玩家在 x 上的速度设置为零。然后垂直检查,如果玩家在 y 轴上发生碰撞,则将其 y 速度设置为零。

This是一个好的开始。

关于java - 当与 Android 中的图 block 碰撞时停止玩家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16272064/

相关文章:

java - 如何实现在启动画面后仅打开一次登录 Activity ,下次它将在 android 中直接打开主 Activity

java - 扩展类的问题

ios - 基于体积的 physicsBody 被手动移动而不接触基于边缘的 physicsBody

Java Brickbreaker 桨碰撞检测

java - 安卓。 onEditorAction 从未调用过

java - 如何在 Java 中模拟请求 header

java.io.IOException : No route to host using MulticastSocket on MacOS X Snow Leopard 异常

java - 为移动设备扩展 libgdx UI?

java - 如何使 Scene2d 窗口适合其内容? (Libgdx)

java - Libgdx场景2D : Add table in seperate class