小编Sev*_*veN的帖子

Android游戏开发:碰撞检测失败

我目前正在为Android开发游戏,我希望您在我遇到的问题上获得专业知识.

背景:

  1. 我的游戏包含帧速率独立运动,它在执行必要的速度计算之前考虑了增量时间值.

  2. 游戏是传统的2D平台游戏.

问题:

这是我的问题(简化).让我们假装我的角色是一个站在平台顶部的方形("重力"是一个恒定向下的characterVelocityDown速度).

我已经定义了碰撞检测如下(假设Y轴指向下方):

给定characterFootY是我的方形字符底边的y坐标,platformSurfaceY是我平台的上y坐标,platformBaseY是我平台的下y坐标:

  if (characterFootY + characterVelocityDown > platformSurfaceY && characterFootY + characterDy < platformBaseY) {

                    //Collision Is True
                    characterFootY = platformSurfaceY;
                    characterVelocityDown = 0;

                } else{ 
                    characterVelocityDown = deltaTime * 6;
Run Code Online (Sandbox Code Playgroud)

当游戏以常规速度运行时,这种方法非常适用; 但是,如果游戏速度变慢,deltaTime(前一帧和当前帧之间经过的时间)变大,而characterFootY + characterVelocityDown超过定义碰撞检测的边界,角色直接落入(就好像传送一样) ).

我应该如何处理此问题以防止这种情况发生?

在此先感谢您的帮助,我期待着向您学习!

android collision-detection

5
推荐指数
1
解决办法
394
查看次数

标签 统计

android ×1

collision-detection ×1