ef:gameprojekt:gruppenseiten:gruppe5:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ef:gameprojekt:gruppenseiten:gruppe5:start [2023/01/17 15:43] amackertef:gameprojekt:gruppenseiten:gruppe5:start [2023/02/10 21:51] (aktuell) – [Bomb It mit Python] amackert
Zeile 1: Zeile 1:
-**Bomb It mit Python**+=====Bomb It mit Python=====
  
-Wir wollen ein Spiel programmieren, in welchem man mit dem Spieler auf einem Feld herumlaufen kann. Es gibt fixe Hindernisse und auch zerstörbare. Der Spieler kann Bomben platzieren. Bomben zerstören Hindernisse, welche dann Item droppen. Wenn man die Items aufsammelt, bekommt der Spieler ein Upgrade. Das Spiel spielt man zu zweit. Der Spieler der am längsten überlebt gewinnt. Andere Spieler werden durch Bomben getötet. Spieler 1 spielt mit W,A,S,D und Leertaste und Spieler 2 spielt mit dem Pfeiltasten und Enter.+Wir haben ein Spiel programmiert, in welchem man mit dem Spieler auf einem Feld herumlaufen kann. Es gibt feste Hindernisse und auch zerstörbare. Der Spieler kann Bomben platzieren, diese zerstören Hindernisse, welche dann ein Item droppen können. Wenn man die Items aufsammelt, bekommt der Spieler ein Upgrade, welches entweder mehr Bomben zur Verfügung stellt, den Radius der Bombe erhöht oder die Geschwindigkeit des Spielers erhöht. Das Spiel wird zu zweit gespielt. Der Spieler der überlebt, also nicht durch eine Bombe explodiert wurde, gewinnt. Spieler 1 bewegt sich mit W,A,S,D und legt die Bombe mit der Leertaste und Spieler 2 läuft mit den Pfeiltasten und Enter legt seine Bombe.
  
-<sxh python> +====Unsere Quellen:====
-import arcade+
  
-# Größe des Fensters festlegen +  * Die [[https://api.arcade.academy/en/latest/resources.html|Arcade Library]] für Beispiele für den Code 
-WINDOW_WIDTH 640 +  * Unsere Tiles haben wir von [[https://itch.io/|itch.io]], die Anderen Grafiken haben wir mit den KI's [[https://labs.openai.com/|DALL-E]] und [[https://midjourney.com/home/?callbackUrl=%2Fapp%2F|Midjourney]] gemacht oder aus den Resources von Arcade genommen und bearbeitet.
-WINDOW_HEIGHT = 480+
  
-# Klasse für den Spieler definieren +====Verbesserungen:====
-class Player(arcade.Sprite): +
-    def __init__(self, x, y): +
-        super().__init__(":resources:images/animated_characters/male_person/malePerson_idle.png", 0.5) +
-        self.center_x +
-        self.center_y y+
  
-#Klasse für die explodierten Bomben +  * Einen künstlichen Gegener erstellen um alleine Spielen zu können 
-class Explodedbomb(arcade.Sprite): +  * Einen Modus um Münzen zu sammeln erstellen, wenn man stirbt wird man wieder an den Anfange gebracht und Münzen werden abgezogen und dem Töter gegeben 
-    def __init__(self,,y): +  * Den Spieler vor dem Start die Farbe des Roboters entscheiden lassen oder durch Zufall unterschiedliche Farben abgeben und weiter Farben einbauen 
-        super().__init__(":resources:images/pinball/bumper.png"0.4) +  * Weiter Items wie ein Schildwelches den Spieler einmalig vor der Bombe schützteine Pistoleoder eine Minewelche den Spieler langsamer macht
-        self.center_x = x +
-        self.center_y = y +
-        self.explodedbomb_list.append(self.explodedbomb) +
-     +
-    def explodedbomb(selfexplodedbomb): +
-        pass +
-     +
-    def remove_explodedbomb(self, explodedbomb): +
-        self.remove_from_sprite_lists() +
-        arcade.unschedule(self.explode_bomb) +
-        arcade.unschedule(self.remove_explodedbomb)+
  
-# Klasse für die Bombe definieren 
-class Bomb(arcade.Sprite):  
-    def __init__(self, x, y): 
-        super().__init__(":resources:images/tiles/bomb.png", 0.4) 
-        self.center_x = x 
-        self.center_y = y 
-        # Timer für die Explosion starten 
-        arcade.schedule(self.explode_bomb, 3) 
-     
-    #Explosion-Grafik anzeigen 
-    def explode_bomb(self, bomb): 
-        #Explodierte Bombe hinzufügen 
-        explodedbomb = Explodedbomb(self.center_x, self.center_y) 
-        arcade.schedule(self.remove_bomb, 0) 
-     
-    #Bombe aus der Sprite-Liste entfernen         
-    def remove_bomb(self, bomb): 
-        self.remove_from_sprite_lists() 
-        arcade.unschedule(self.explode_bomb) 
-        arcade.unschedule(self.remove_bomb) 
- 
-# Klasse für das Spiel definieren 
-class BombItGame(arcade.Window): 
-    def __init__(self, width, height): 
-        super().__init__(width, height) 
-        arcade.set_background_color(arcade.color.BLACK) 
- 
-        # Sprite-Listen erstellen 
-        self.player_list = arcade.SpriteList() 
-        self.bomb_list = arcade.SpriteList() 
-        self.explodedbomb_list = arcade.SpriteList() 
- 
-        # Spieler-Sprite erstellen und zur Sprite-Liste hinzufügen 
-        self.player = Player(50, 50) 
-        self.player_list.append(self.player) 
- 
-    def on_draw(self): 
-        # Zeichenbereich löschen und neu zeichnen 
-        arcade.start_render() 
- 
-        # Sprites zeichnen 
-        self.player_list.draw() 
-        self.bomb_list.draw() 
-        self.explodedbomb_list.draw() 
- 
-    def on_key_press(self, key, modifiers): 
-        # Bewegung des Spielers mit den Pfeiltasten 
-        if key == arcade.key.UP: 
-            self.player.center_y += 50 
-        elif key == arcade.key.DOWN: 
-            self.player.center_y -= 50 
-        elif key == arcade.key.LEFT: 
-            self.player.center_x -= 50 
-        elif key == arcade.key.RIGHT: 
-            self.player.center_x += 50 
- 
-        # Bombe legen mit der Leertaste 
-        elif key == arcade.key.SPACE: 
-            bomb = Bomb(self.player.center_x, self.player.center_y) 
-            self.bomb_list.append(bomb) 
-     
-    def on_update(self, delta_time): 
-        self.player_list.update() 
-        self.bomb_list.update() 
-        self.explodedbomb_list.update() 
- 
-        # Generate a list of all sprites that collided with the player. 
-        hit_list = arcade.check_for_collision_with_list(self.player, self.explodedbomb_list) 
-        for self.player in hit_list: 
-            self.remove_from_sprite_lists() 
- 
-         
- 
-# Hauptfunktion 
-def main(): 
-    game = BombItGame(WINDOW_WIDTH, WINDOW_HEIGHT) 
-    arcade.run() 
- 
-if __name__ == "__main__": 
-    main() 
-</sxh> 
  
  
  • ef/gameprojekt/gruppenseiten/gruppe5/start.1673966610.txt.gz
  • Zuletzt geändert: 2023/01/17 15:43
  • von amackert