游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2641|回复: 1

请教达人关于2D中球与矩形顶角碰撞问题

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-11-3 21:32:00 | 显示全部楼层 |阅读模式
最近在手机上开发重力感应平衡球,其他各边的碰撞和反弹都已经模拟,就是顶点一直没有处理好。先说说我的算法

已知球坐标posx,posy,半径r,当前位置xn,yn,当前速度spx,spy,。让球沿着矩形走一圈,圆心形成一个圆角矩形,把圆角矩形切割为9块,
这样出来4个4分之一扇形,这就是顶点时球的轨迹,然后判断下一帧球位置是否在半圆内,如果在半圆内则碰撞,那么如何定位碰撞位置和反弹速度轨迹呢?请达人指点,或者提供更好的算法 [em20]

0

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2009-11-10 23:32:00 | 显示全部楼层

Re:请教达人关于2D中球与矩形顶角碰撞问题

我觉得楼主用矩阵方法碰撞检测是否可以优化下。
已知球坐标posx,posy,半径r, 可以考虑只检测,线段和矩形Rect的碰撞。沿Rect的1条边作1条垂直于这条边且连接圆形的线段line1,如果line1的长度>r则没碰撞,=r则碰撞,注意监测不要让line<r 要不会产生"穿墙BUG" 。


如果要考虑反弹速度的话,你必须引入加速度a,加速度a是个矢量,假设球在接触矩形时,加速度不为0,则要进入反弹状态,为0则不进入反弹状态。  当球接触矩行且加速度不为0时候,沿矩形边的垂直方向,改变加速度和速度的方向和数值(注意通过计算夹角,计算出反弹后的加速度分量数值),由于真实环境下存在摩擦力等因素会产生类似阻尼系数的东西,加速度和速度都在逐渐减小,直至为0··。俺表达力不行,这个1下也讲不太清楚,只能讲个大概的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-18 05:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表