C++ Win32实现精灵碰撞

[复制链接]
查看11 | 回复1 | 2010-7-15 16:36:52 | 显示全部楼层 |阅读模式
怎么实现精灵碰撞 给个例子

回复

使用道具 举报

千问 | 2010-7-15 16:36:52 | 显示全部楼层
游戏里的精灵(sprite)一般不直接通过其图像本身实现碰撞检测,大多时候通过定义该sprite的单位的位置和逻辑形状(方形,圆形,多边形等)来判断两两碰撞。其中方形、圆形计算简单适合对碰撞检测要求不高的游戏。个人以为最简单的是圆形检测,在这个检测方法下不管sprite形状如何,其碰撞区域均以给定半径的圆形考虑。比如有A,B两个单位,它们的圆心坐标分别是(A.x,A.y);(B.x,B.y),那么圆心之间的距离就是sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)(A.y-B.y))。如果该值比两单位的半径和A.r+B.r大则无碰撞,否则则碰撞。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行