[PyQt] PyQt4 does not recognize the *shape* of QGraphicsItems for collision detection
philippe.crave at gmail.com
Sat Aug 14 21:34:40 BST 2010
not sure, but maybe you should set this flag: ItemClipsToShape
2010/8/14 Konrad Koller <koko9991 at googlemail.com>
> In many games collision detection is important. In my case the game's stones are mostly convex polygons.
> Therefore their bounding rectangle is not adequate for collision detection and therefore I create them
> in the constructor of the class Stone(QGraphicsItem) as QPainterPaths like so:
> Then their shape is simple:
> def shape(self): return self.path
> Their boundingRect (used elsewhere) is:
> def boundingRect(self): return self.path.boundingRect()
> For collision detection with already placed stones I write:
> for item in self.collidingItems(Qt.IntersectsItemShape):
> if isinstance(item,Stone): print "Collision!"
> To my surprise the detection does not recognize the shape but obviously the boundingRect.
> For example:
> |______ |
> ___ | |___
> | | |_____|
> | |
> | |_
> This reports a "collision". Why?
> Thanks for any hint. Konrad
> PyQt mailing list PyQt at riverbankcomputing.com
More information about the PyQt