Krok 3: strzał
Meteorytowy deszcz - Gry w Pythonie - przykłady (Python)
Strzał spacją. Pocisk `Bullet` leci w górę i usuwa się na górze planszy. Pole `was_down` pamięta, czy spacja była wciśnięta w poprzednim ticku, więc trzymany klawisz daje jeden strzał, a nie serię 30 strzałów na sekundę.
import random
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
rocket = Rocket()
meteor = Meteor()
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.