<p>对<code>.hitbox</code>属性使用<a href="https://www.pygame.org/docs/ref/rect.html" rel="nofollow noreferrer">^{<cd1>}</a>对象。<br/>
注意:应该在类的方法中使用<code>self</code>属性,而不是全局命名空间变量<code>mainninja</code>和<code>zombie</code>:</p>
<pre class="lang-py prettyprint-override"><code>class ninja(object):
def __init__(self, x, y, ninjawidth, ninjaheight):
self.x = x
self.y = y
self.ninjaheight = ninjaheight
self.ninjawidth = ninjawidth
self.hitbox = pygame.Rect(self.x + 10, self.y + 10, self.ninjaheight - 10, self.ninjawidth - 10)
def draw(self):
mainninja.hitbox = pygame.Rect(self.x + 10, self.y + 10, self.ninjaheight - 15, self.ninjawidth - 10)
pygame.draw.rect(win, (255,0,0), mainninja.hitbox,2) #here is the hitbox
class zombie(object):
def __init__(self, zombiewidth, zombieheight):
self.x = winwidth
self.y = 391
self.height = zombieheight
self.width = zombiewidth
self.hitbox = pygame.Rect(self.x + 55, self.y + 35, self.width - 55, self.height - 45)
def draw(self):
self.hitbox = pygame.Rect(self.x + 55, self.y + 35, self.width - 55, self.height - 45)
pygame.draw.rect(win, (255,0,0), self.hitbox, 2) #here is other hitbox
mainninja = ninja(60, 400, 192, 192)
zombie = zombie(192, 192)
</code></pre>
<p>然后可以使用<a href="https://www.pygame.org/docs/ref/rect.html#pygame.Rect.colliderect" rel="nofollow noreferrer">^{<cd6>}</a>检查冲突:</p>
<pre class="lang-py prettyprint-override"><code>if mainninja.hitbox.colliderect(zombie.hitbox):
# [...]
</code></pre>