我试着让一个长方形来射击相应的精灵,并在它击中时击败它。据我所知,这个矩形应该是在我单击空格并以5像素的move.ip[5,0]
速度触发时创建的,但是我看不到这个矩形。我的代码有什么问题,为什么我看不到矩形。你知道吗
我的代码:
MESH = ((playerRect.topright[1] + 1), (playerRect.topright[1] + 1), (playerRect.centery - 10), (playerRect.centery + 10))
shootRect = pygame.draw.rect(screen, WHITE, MESH)
def baddieHasHitShoot():
if baddieRect.colliderect(shootRect):
return True
return False
if event.type == KEYDOWN:
if event.key == ord(' '):
shootRect()
move.ip[5, 0]
if baddieHasHitShoot():
if score > topScore:
score = topscore
break
错误:
Traceback (most recent call last):
line 105, in <module>
shootRect()
TypeError: 'pygame.Rect' object is not callable
对
shootRect
的调用缺少括号。应该是shootRect()
假设这是你试图调用的函数。你知道吗如果它只是一个变量,你需要对它做些什么。你知道吗
shootRect
内部baddieHasHitShoot
是局部变量,与外部shootRect = pygame.draw.rect(screen, WHITE, MESH)
无关shootRect
内部的baddieHasHitShoot
不是函数,所以您可以执行它shootRect()
。你知道吗在函数中更好的使用不同的名字不要惊讶。你知道吗
在
baddieHasHitShoot
内部,您可能必须使用编辑1:
至于我,我不会用这样的东西
而是
然后用这个
在我需要的地方。你知道吗
编辑2:
我想知道你需要什么:
编辑3:
pygame.draw.rect(screen, WHITE, shootRect)
必须在bliting background之后和display.update()
之前相关问题 更多 >
编程相关推荐