从本质上说,我试图在屏幕上显示多个投射物,以便玩家避免
在这一点上,我不担心击中框或类似的东西,只是简单地尝试让多个炮弹显示。它显示一个,然后投射物从屏幕上消失,再也不显示回来
我相信这可能是一个范围问题,但我不完全确定。我几乎把我能想到的每一段代码都搬来搬去了,但都没有用
class Game:
clock = pygame.time.Clock()
def __init__(self):
self.enemy = Projectile()
self.enemies = []
def loop(self):
self.clock.tick(30)
for enemy in self.enemies:
if self.enemy.y < 925 and self.enemy.x < self.screen_width:
self.enemy.x += self.enemy.velocity
self.enemy.frame_count += 1
else:
self.enemies.pop(self.enemies.index(self.enemy))
if len(self.enemies) < 5:
self.enemies.append(self.enemy)
def render(self):
# other stuff
for enemy in self.enemies:
self.enemy.draw_projectile(self._display_surf)
在我的射弹档案里我有:
class Projectile():
# projectile images
def __init__(self):
# stuff
def draw(self, gameDisplay):
if self.frame_count > 118:
self.frame_count = 0
display_window.blit(self.projectile_sprites[self.frame_count],(self.x, self.y))
我想在屏幕上显示多个炮弹类型的敌人。我看了一些关于如何做这类事情的教程,但没有得到预期的结果
很少有事情需要解决。不确定这些修正是否足够,但至少它们会有所帮助
类
Projectile
在实践上似乎还可以。不过,我不能为省略的部分辩护。但是,在
draw
函数中从不使用gameDisplay
参数,而是使用display_window
。它们应该是一样的吗?如果是,请使用相同的名称。我猜
display_window
/gameDisplay
是显示器,表面初始化为pygame.display.set_mode()
。如果是这样,那就好了对于
Game
类,请参见我添加的注释我不知道什么是
draw_projectile()
。我想您是想使用Projectile
类的draw()
方法,这是有道理的。同样,代码中没有定义
self._display_surf
,我假设是传递给draw()
函数的显示相关问题 更多 >
编程相关推荐