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:
self.path=QPainterPath()
self.path.addPolygon(polygon)
self.path.closeSubpath()
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 [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt