You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pong游戏碰撞检测边角异常:球击中球拍边缘不反弹问题求助

Pong游戏球拍边角碰撞穿透问题

当前开发完成情况

  • 已完成Pong游戏基础开发,常规场景下所有核心功能运行正常
  • 已实现球与两侧球拍的基础碰撞交互逻辑,正面对碰场景下球可按规则正常反弹
  • 已针对特殊触发场景录制复现演示视频,完整还原问题发生的全流程

问题异常表现

常规正面碰撞场景下反弹逻辑均运行正常,仅当球击中左侧球拍的边角位置时,并未按预期触发反弹逻辑,而是直接沿球拍方向向下穿透运动,最终直接判定对方得分。

当前使用的碰撞检测代码

public void collision() {
    this.width = (float) getBounds().width;
    this.height = (float) getBounds().height;
    for (int i = 0; i < handler.objects.size(); i++) {
        if (handler.objects.get(i).getId() == ID.ball) {
            GameObject current = handler.objects.get(i);
            if (getBounds().intersects(current.getBounds())) {
                current.setVx(current.getVx() * -1);
            }
        }
    }
}

代码相关说明

  • 上述代码中getBounds为重写方法,会根据游戏对象的实际形状返回对应的边界矩形:圆形形状的球返回其外接矩形边界,矩形形状的球拍返回自身轮廓对应的矩形边界
  • 目前需要针对边角穿透的异常问题,获取可落地的问题排查思路或解决方案,后续可根据需要补充提供更多关联代码

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 10:45:01