funcodeC语言实训平台上怎样实现大鱼吃小鱼的功能?或者是怎样实现精灵与精灵碰撞的试验。
答案:2 悬赏:0 手机版
解决时间 2021-12-20 23:37
- 提问者网友:轮囘Li巡影
- 2021-12-20 04:57
funcodeC语言实训平台上怎样实现大鱼吃小鱼的功能?或者是怎样实现精灵与精灵碰撞的试验。
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-12-20 06:21
游戏里的精灵(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大则无碰撞,否则则碰撞。
个人以为最简单的是圆形检测,在这个检测方法下不管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大则无碰撞,否则则碰撞。
全部回答
- 1楼网友:患得患失的劫
- 2021-12-20 07:07
搜一下:funcodeC语言实训平台上怎样实现大鱼吃小鱼的功能?或者是怎样实现精灵与精灵碰撞的试验。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯