擅长:python、mysql、java
<p>是的,<a href="http://docs.python.org/library/functions.html#property" rel="nofollow">properties</a>会有帮助:</p>
<pre><code>class Paddle(DynamicObj):
# ...
@property
def x(self):
return self.rect.x
</code></pre>
<p>现在您的桨将有一个只读字段<code>x</code>。如果你想要一个setter,用<code>@x.setter</code>来装饰它。你知道吗</p>
<p>但我仍然认为你的想法是错误的。通常用矩形来操作要容易得多。如果您碰巧使用pygame,它有许多简洁的方法。只需使您的每个对象要么基于一个矩形类,要么有一个统一的方法来获取它(即,一个接口)。你知道吗</p>
<p>你会问,到底为什么要用长方形做圆球?这是因为使用矩形时,<em>粗糙的</em>碰撞检测成本很低(再次参见pygame的高效方法)。如果两个矩形不发生碰撞,那么由它们包围的形状复杂的对象也肯定不会发生碰撞。只有当包围的矩形发生碰撞时,才需要运行可能更昂贵的精确碰撞检查。你知道吗</p>