Krok 6: coraz szybciej

Gwiezdny zbieracz - Gry w Pythonie - przykłady (Python)

Gra przyspiesza: co 5 gwiazd (`score.points % 5 == 0`) UFO dostaje 1 do prędkości. To pełna wersja gry z przykładu Zagraj.

import random

class Score(Sprite):
  def __init__(self):
    self.size = 12
    self.color = (99, 102, 241)
    self.position = (0, 88)
    self.points = 0
    self.text = "Gwiazdy: 0"

  def add_point(self):
    self.points = self.points + 1
    self.text = f"Gwiazdy: {self.points}"

class Rocket(Sprite):
  def __init__(self):
    self.image = 12
    self.color = (234, 88, 12)
    self.size = 22

  def update(self):
    if world.key('right'):
      self.x = self.x + 4
    if world.key('left'):
      self.x = self.x - 4
    if world.key('up'):
      self.y = self.y + 4
    if world.key('down'):
      self.y = self.y - 4

class Star(Sprite):
  def __init__(self):
    self.image = 4
    self.color = (234, 179, 8)
    self.size = 16
    self.jump()

  def jump(self):
    self.position = (random.randint(-90, 90), random.randint(-90, 75))

  def update(self):
    if self.touches(rocket):
      self.jump()
      score.add_point()
      if score.points % 5 == 0:
        ufo.speed = ufo.speed + 1

class Ufo(Sprite):
  def __init__(self):
    self.image = 47
    self.color = (22, 163, 74)
    self.size = 24
    self.speed = 2
    self.position = (-100, random.randint(-80, 70))

  def update(self):
    self.x = self.x + self.speed
    if self.x >= 100:
      self.position = (-100, random.randint(-80, 70))
    if self.touches(rocket):
      score.text = f"Koniec gry! Gwiazdy: {score.points}"
      world.stop()

score = Score()
rocket = Rocket()
star = Star()
ufo = Ufo()
world.add(score)
world.add(star)
world.add(rocket)
world.add(ufo)
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.