cocos2d-x学习笔记番外篇03:坑爹的矩形碰撞

简介:

 在写炸弹人那个例子时,发现了一个问题,按道理说,主角已经躲开了炸弹爆炸区域,但仍然给炸死了。如图:

我们找到计算矩形相交的代码


 
 
  1. bool CCRect::CCRectIntersectsRect(const CCRect& rectA, const CCRect& rectB) 
  2.     return !(CCRectGetMaxX(rectA) < CCRectGetMinX(rectB)|| 
  3.             CCRectGetMaxX(rectB) < CCRectGetMinX(rectA)|| 
  4.             CCRectGetMaxY(rectA) < CCRectGetMinY(rectB)|| 
  5.             CCRectGetMaxY(rectB) < CCRectGetMinY(rectA)); 

然后我们随便打开一个函数


 
 
  1. CGFloat CCRect::CCRectGetMaxX(const CCRect& rect) 
  2.     return rect.origin.x + rect.size.width; 

问题找到了,比如,我声明一个x=0,y=0,w=10,h=10的矩形

那么他的四个极限位置应该是

minX=x

minY=y

maxX=x+w-1

maxY=y+h-1

但是他这里没有-1。所以造成最后结果大了一个点。这个问题,大家尤其要注意。所以在声明的时候,要自己-1,比如上面的矩形就要声明为:

0,0,9,9






 本文转自 老G 51CTO博客,原文链接:http://blog.51cto.com/goldlion/762103,如需转载请自行联系原作者

相关文章
|
存储 开发工具 索引
游戏编程之十七 生成简单的动画
游戏编程之十七 生成简单的动画
68 0
|
Java
【Java实现小游戏】飞翔的小鸟(源码)
【Java实现小游戏】飞翔的小鸟(源码)
243 0
|
API 图形学 C++
【Unity趣味编程】——c++实现小球的自由移动
【Unity趣味编程】——c++实现小球的自由移动
146 0
|
安全 Android开发
21天打卡Andoid学到的一些小知识-第十九二十二十一天
今天我们学习打卡的内容是:android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
102 0
|
前端开发
autojs之十二圆
使用情景 给孩子画个圆
252 0
“闪瞎双眼~”,今天来实现如何实现太阳的光晕效果(Unity3D)
太阳光晕的效果虽然用处不大,但是很漂亮,漂亮不就行了,那么就来看看怎么在Unity3D中实现太阳光晕效果吧。
|
存储 程序员 C语言
【C语言】升级版三子棋小游戏(棋盘界面美化+动画演示)
【C语言】升级版三子棋小游戏(棋盘界面美化+动画演示)
293 0
【C语言】升级版三子棋小游戏(棋盘界面美化+动画演示)
|
C# 图形学
Unity零基础到进阶 ✨ 使用 Vectrosity 插件 像德芙一样丝滑的画线
Vectrosity画线插件 ☀️ Unity画线插件Vectrosity 🔥 在使用Unity进行开发的过程中,我们在某些时候需要使用到划线功能,使用Unity中的几种划线方法自然可行,但是我们可以用一种更方便的方式来进行划线操作,那就是我们的主角:Vectrosity插件👍!
|
C# 图形学
边学边做的第一个Unity小游戏
学Unity开发,肯定先要了解小Unity这个开发工具长什么样。 第一次看到Unity界面的时候,我第一反应是,我靠,这不是犀牛么。学工业设计的人应该接触过犀牛这款3D建模软件,主界面也是一个3D透视界面。
1552 0

热门文章

最新文章