【发布时间】:2020-10-07 15:38:18
【问题描述】:
所以我正在尝试射击子弹。这个想法是创建一个列表,其中包含创建项目符号实例所需的变量并将该列表添加到列表中。然后我从包含列表的列表中的最后一项创建一个项目符号实例。可悲的是,我在尝试创建新项目符号实例的行中得到了“TypeError:'tuple' object is not callable”。我希望你能帮助我,变量名应该是自我解释的。
def shoot(self):
if self.bullets_isshot == True:
self.m_x, self.m_y = pygame.mouse.get_pos()
self.bullets_new_bullet = (self.m_x, self.m_y, self.cords_x, self.cords_y)
self.bullets_list.append(self.bullets_new_bullet)
for bullet in self.bullets_list:
if bullet == self.bullets_list[-1]:
new_bullet = bullet(bullet[0], bullet[1], bullet[2], bullet[3])
self.bullets_isshot = False
如果你需要它,子弹 init 方法:
def __init__(self, target_x, target_y, player_x, player_y):
#var img, cords
self.img = fast_load_img('/data/img/bullets/fireball.png')
self.width = 128
self.height = self.width
self.x = player_x
self.y = player_y
self.target_x = target_x
self.target_y = target_y
self.d_x = self.target_x - self.x
self.d_y = self.target_y - self.y
#var vel, angle
self.vel = 5
self.angle = math.atan2(self.d_x, self.d_y)
self.x_change = self.vel * math.cos(self.angle)
self.y_change = self.vel * math.sin(self.angle)
【问题讨论】:
-
查看您的数据类型。您有一个
list或tuple,但您正在尝试调用/调用无效操作的元组。你实际上并没有实例化这个类 -
@MaximilianBurszley 我刚刚意识到它并将元组更改为列表,但没有任何区别,只是它说“列表”对象现在不可调用