• 4672阅读
  • 2回复

[提问]关于环形Item的碰撞检测问题 [复制链接]

上一主题 下一主题
离线qazaq408
 

只看楼主 倒序阅读 楼主  发表于: 2014-12-29
我写了一个(封闭)环形的item
class Wall:public GraphicsItem

本来我想用这个作为贪吃蛇 墙 的碰撞检测
shape()我返回的是准确的路径(通过paint函数里的fillPath()将图像画了出来,是一个封闭的矩形,就是上,下,左,右个4根细线)

boundingRect()我返回的是比封闭矩形大1的一个矩形,应为判断碰撞的时候我用QPainterPath 判断,所以没太在意这个

然后这个Wall和贪吃蛇(也是一个item)都被放到一个QGraphicsScene内;

但用贪吃蛇的collidingItem()检测的时候,无论声明情况都会检测出和Wall有碰撞

然后我该了下Wall的boundingRect();我把返回的QRectF从
QRectF(0,0,400,400) 改成了QRectF(0,0,1,400)   PS:这样区域变成右边的一条细线

然后蛇运动的时候只有撞到右侧才会检测到,撞到其他3个方向的时候都没反应。。。
collidingItem()我在代码里显示使用了Qt::IntersectsItemShape参数,结果还是一样。。

我想问下这个碰撞默认不是检测shape()返回的路径么
离线彩阳

只看该作者 1楼 发表于: 2014-12-30
贪食蛇的碰撞检测还是基于一个二维数组好一些吧。
上海Qt开发联盟,热忱地欢迎你的加入!
离线qazaq408

只看该作者 2楼 发表于: 2014-12-30
回 彩阳 的帖子
彩阳:贪食蛇的碰撞检测还是基于一个二维数组好一些吧。 (2014-12-30 00:44) 

自学党。。喜欢多尝试点东西
快速回复
限100 字节
 
上一个 下一个