スタディングテックのQ&A
ミッション4です。残機表記は出来ましたが、1機しか表示できま…
ミッション4です。残機表記は出来ましたが、1機しか表示できません。また、1発当たっただけで、ゲームオーバーになります。
def reset(self):
self.allSprites = sprite.Group()
self.playerGroup = sprite.Group()
self.life1 = game_object.Life(650,0, IMAGES['ship'])
self.life2 = game_object.Life(700,0, IMAGES['ship'])
self.life3 = game_object.Life(750,0, IMAGES['ship'])
self.shipLasers = sprite.Group()
def check_collisions(self):
・
・
self.sounds['enemykilled'].play()
if len(self.enemies) == 0:
self.create_game_clear()
for s in sprite.groupcollide(self.playerGroup, self.enemyLasers, True, True).keys():
self.sounds['shipbreak'].play()
if self.life3.alive():
self.life3.kill()
self.create_new_ship()
if self.life2.alive():
self.life2.kill()
self.create_new_ship()
if self.life1.alive():
self.life1.kill()
self.create_game_over()
for s in sprite.groupcollide(self.enemyLasers, self.blockers, True, True).keys():
pass
class Life(sprite.Sprite):
def __init__(self, xpos, ypos, img):
sprite.Sprite.__init__(self)
self.image = transform.scale(img,(23, 27))
self.rect = self.image.get_rect(topleft=(xpos, ypos))
self.allSprites.add(self.player)
def update(self, screen, keys):
screen.blit(self.image, self.rect)
衝突判定関数内のlifeの順番を変えてみましたが、今度はレーザが当たると、新しい宇宙船が延々と出現します。
if self.life1.alive():
self.life1.kill()
self.create_new_ship()
if self.life2.alive():
self.life2.kill()
self.create_new_ship()
if self.life3.alive():
self.life3.kill()
self.create_game_over()
回答
回答を見たり、質問するには
対象のコースを購入する必要があります。