L’attaque des pizzas tueuses – Schockwellenreiter

L’attaque des pizzas tueuses – Schockwellenreiter

Pizza Plane Stage 3: L’attaque des pizzas tueuses

Bien sûr, le dernier message indirectement aussi avec mon petit TigreJython– et Grille de jeu-Série de tutoriels, dans laquelle un petit biplan rouge (moins pour des raisons historiques et plus comme un retour à Snoopy Je l’ai appelé “Red Baron”) a dû repousser les pizzas attaquantes. Voilà j’ai terminé la troisième partie hier, dans laquelle je vous présente fièrement les pizzas tueuses éponymes :

Bien sûr, j’ai besoin d’un autre cours pour ça, que je Enemy() appelé et aussi de Actor() hérite Leur mise en œuvre est courte et directe:

class Enemy(Actor):
    
    def __init__(self):
        Actor.__init__(self, True, os.path.join(DATAPATH, "pizza.png"))
        self.speed = randint(3, 6)
        
    def act(self):
        self.move(-self.speed)
        if self.getX() < -30:
            self.setX(WIDTH + randint(30, 100))
            self.setY(randint(30, HEIGHT - 30))
            self.speed = randint(3, 6)

Dans le programme principal, les pizzas prennent vie dans cette boucle :

for _ in range(NO_ENEMIES):
    pizza = Enemy()
    win.addActor(pizza, Location(WIDTH + randint(30, 100), randint(30, HEIGHT - 30)))

Sinon, peu de choses ont changé dans cette version. Voici – comme d’habitude – le code source complet, afin que vous puissiez comprendre le programme :

# Pizza Plane Stage 3: Klasse »Enemy«
# Background Image: »PWL« (https://opengameart.org/content/seamless-desert-background-in-parts)
# Aeroplane: Tappy Plane, Kenney (https://www.kenney.nl/assets/tappy-plane)

from gamegrid import *
from random import randint
import os

WIDTH = 720
HEIGHT = 480

DATAPATH = os.path.join(os.getcwd(), "data")
BGWIDTH    = 1067   # Breite des Hintergrundbildes
BGWIDTH2   = 533    # BGWIDTH//2 (abgerundet)
NO_ENEMIES = 10     # Anzahl der Feinde

class Background(Actor):
    
    def __init__(self):
        Actor.__init__(self, True, os.path.join(DATAPATH, "desert.png"))
        self.speed = -1
        
    def act(self):
        self.move(self.speed)
        if self.getX() < -BGWIDTH2:
            self.setX(BGWIDTH + BGWIDTH2)

class Plane(Actor):
    
    def __init__(self):
        Actor.__init__(self, True, os.path.join(DATAPATH, "planered.png"), 3)
        self.timer = 5
        self.updown = 2
        
    def act(self):
        if isKeyPressed(38):    # UP
            if self.getY() > 20:
                self.setY(self.getY() - self.updown)
        if isKeyPressed(40):    # DOWN
            if self.getY() < HEIGHT - 20:
                self.setY(self.getY() + self.updown)
        if self.timer == 0:
            self.showNextSprite()
            self.timer = 5
        self.timer -= 1

class Enemy(Actor):
    
    def __init__(self):
        Actor.__init__(self, True, os.path.join(DATAPATH, "pizza.png"))
        self.speed = randint(3, 6)
        
    def act(self):
        self.move(-self.speed)
        if self.getX() < -30:
            self.setX(WIDTH + randint(30, 100))
            self.setY(randint(30, HEIGHT - 30))
            self.speed = randint(3, 6)
 
win = makeGameGrid(WIDTH, HEIGHT, 1, Color.GRAY, True)
win.setTitle("Pizza Plane Stage 3: The Attack of the Killer Pizzas")
win.setSimulationPeriod(20)

bg1 = Background()
bg2 = Background()
win.addActor(bg1, Location(BGWIDTH2, 260))
win.addActor(bg2, Location(BGWIDTH + BGWIDTH2, 260))
for _ in range(NO_ENEMIES):
    pizza = Enemy()
    win.addActor(pizza, Location(WIDTH + randint(30, 100), randint(30, HEIGHT - 30)))
redBaron = Plane()
win.addActor(redBaron, Location(70, 200))

win.show()
win.doRun()

j’ai les photos des pizzas Twitter Twemojis tiré d’un libre (CC BY 4.0) collection emoji dont la licence elle-même permet une utilisation commerciale. Cependant, je ne sais pas encore si c’est une bonne idée de laisser les tranches de pizza toucher l’avion avec le côté large devant, cela peut sembler plus dangereux si je les retourne à 180° horizontalement (c’est-à-dire le côté pointu devant). ). Toujours à creuser !

Jusqu’à présent, cette série de didacticiels se compose de ces trois didacticiels :

  1. Avion à pizza avec TigerJython et GameGrid (étape 1)
  2. Pizza Plane Stage 2 : Appeler ou Rappeler ?
  3. Pizza Plane Stage 3: L’attaque des pizzas tueuses

La suite suit…

La Code source et le Les atouts est également à nouveau disponible dans mon référentiel GitLab pour TigerJython.


(Laissez un commentaire)

image image

Facebook
Twitter
LinkedIn
Pinterest

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.