Krok 4: trafienie

Meteorytowy deszcz - Gry w Pythonie - przykłady (Python)

Trafienie: pocisk sprawdza `self.touches(meteor)`. Gdy trafi, gracz dostaje punkt (napis klasy `Game` na górze), meteor wraca na górę, a pocisk znika i kończy `update` przez `return`.

import random

class Game(Sprite):
  def __init__(self):
    self.size = 10
    self.color = (99, 102, 241)
    self.position = (0, 90)
    self.points = 0

  def update(self):
    self.text = f"Punkty: {self.points}"

class Rocket(Sprite):
  def __init__(self):
    self.image = 12
    self.color = (234, 88, 12)
    self.size = 20
    self.position = (0, -80)
    self.was_down = False

  def update(self):
    self.x = world.mouse.x
    down = world.key('space')
    if down and not self.was_down:
      shot = Bullet()
      shot.position = (self.x, -70)
      world.add(shot)
    self.was_down = down

class Meteor(Sprite):
  def __init__(self):
    self.image = 40
    self.color = (120, 72, 40)
    self.size = 20
    self.reset()

  def reset(self):
    self.position = (random.randint(-90, 90), 100)

  def update(self):
    self.y = self.y - 2
    if self.y <= -100:
      self.reset()

class Bullet(Sprite):
  def __init__(self):
    self.image = 4
    self.color = (250, 204, 21)
    self.size = 8

  def update(self):
    self.y = self.y + 6
    if self.y >= 95:
      self.remove()
      return
    if self.touches(meteor):
      game.points = game.points + 1
      meteor.reset()
      self.remove()
      return

game = Game()
rocket = Rocket()
meteor = Meteor()
world.add(game)
world.add(rocket)
world.add(meteor)
world.start()

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Gry w Pythonie - przykłady·Zaloguj się, aby zapisać postęp na koncie.