Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| ef:gameprojekt:gruppenseiten:gruppe4:start [2023/01/10 14:30] – siffertj | ef:gameprojekt:gruppenseiten:gruppe4:start [2023/02/10 17:55] (aktuell) – [DesertTileset2:] siffertj | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | Jérôme, Michael, Joël | + | **Jérôme, Michael, Joël** |
| - | __**Breaking Bad Game**__ | + | ====== |
| - | Unser Plan ist es ein Spiel im Breaking Bad Theme zu machen, in dem man ähnlich wie in Super Mario Bros. Level bestreiten muss. | + | |
| - | **Quellen und Hilfsmittel** | ||
| - | https:// | ||
| - | https:// | ||
| - | import random | + | Wir haben ein Spiel im Breaking Bad Stil gemacht, in welchem man in einer begränzten Map versuchen muss Gustavo Fring, welcher Chicken Wings wirft, auszuweichen. |
| - | import arcade | + | |
| - | import os | + | |
| - | #import pymunk | + | |
| - | import math | + | |
| - | SPRITE_SCALING | + | ===== Funktionsweise |
| - | SCREEN_WIDTH | + | Man kann mit den Pfeiltasten den Spieler bewegen und muss versuchen den Chicken Wings auszuweichen, |
| - | SCREEN_HEIGHT | + | |
| - | SCREEN_TITLE | + | |
| - | BULLET_SPEED | + | |
| - | + | ||
| - | MOVEMENT_SPEED | + | |
| - | + | ||
| - | class Player(arcade.Sprite): | + | |
| - | def update(self): | + | |
| - | + | ||
| - | self.center_x += self.change_x | + | |
| - | self.center_y += self.change_y | + | |
| - | + | ||
| - | if self.left < 0: | + | |
| - | self.left | + | |
| - | elif self.right > SCREEN_WIDTH - 1: | + | |
| - | self.right | + | |
| - | + | ||
| - | if self.bottom < 0: | + | |
| - | self.bottom = 0 | + | |
| - | elif self.top > SCREEN_HEIGHT - 1: | + | |
| - | self.top = SCREEN_HEIGHT - 1 | + | |
| - | class Enemy(arcade.Sprite): | ||
| - | def update(self): | ||
| - | | ||
| - | self.center_x += self.change_x | ||
| - | self.center_y += self.change_y | ||
| - | |||
| - | if self.left < 0: | ||
| - | self.left = 0 | ||
| - | elif self.right > SCREEN_WIDTH - 1: | ||
| - | self.right = SCREEN_WIDTH - 1 | ||
| - | |||
| - | if self.bottom < 0: | ||
| - | self.bottom = 0 | ||
| - | elif self.top > SCREEN_HEIGHT - 1: | ||
| - | self.top = SCREEN_HEIGHT - 1 | ||
| - | class MyGame(arcade.Window): | + | ===== Quellen und Hilfsmittel ===== |
| - | + | ||
| - | def __init__(self, | + | |
| - | super().__init__(width, | + | |
| - | self.player_list | + | |
| - | self.player_sprite | + | |
| - | self.physics_engine | + | |
| - | self.background | + | |
| - | self.enemy_list | + | |
| - | self.enemy_sprite | + | |
| - | self.bullet_list | + | |
| - | self.frame_count | + | |
| - | + | ||
| - | """ | + | |
| - | body = pymunk.Body(body_type=pymunk.Body.STATIC) | ||
| - | shape = pymunk.Segment(body, | + | Die meisten Informationen für unseren Code haben wir von https://api.arcade.academy/ |
| - | shape.friction | + | ===== Bildquellen ===== |
| - | self.space.add(shape, | ||
| - | self.static_lines.append(shape)""" | + | ==== Walter White: ==== |
| + | | ||
| - | def setup(self): | + | ==== Gustavo Fring: ==== |
| - | self.player_list | + | https://www.artstation.com/artwork/xYPnYW |
| - | self.player_sprite | + | |
| - | self.player_sprite.center_x | + | |
| - | self.player_sprite.center_y | + | |
| - | self.player_list.append(self.player_sprite) | + | |
| - | + | ||
| - | self.background = arcade.load_texture(": | + | |
| - | self.enemy_list | + | ==== Chicken Wing: ==== |
| - | self.enemy_sprite | + | https://www.freepik.com/ |
| - | self.enemy_sprite.center_x | + | |
| - | self.enemy_sprite.center_y | + | |
| - | self.enemy_list.append(self.enemy_sprite) | + | |
| - | self.enemy_sprite.angle = 180 | + | |
| - | self.bullet_list | + | ==== Meth: ==== |
| + | | ||
| - | def on_draw(self): | + | ==== Cactus: ==== |
| - | self.clear() | + | https://art.pixilart.com/ |
| - | arcade.draw_lrwh_rectangle_textured(0, | + | |
| - | SCREEN_WIDTH, | + | |
| - | self.background) | + | |
| - | self.player_list.draw() | + | |
| - | self.enemy_list.draw() | + | |
| - | self.bullet_list.draw() | + | |
| - | def on_update(self, | + | ==== BG: ==== |
| - | self.player_list.update() | + | https:// |
| - | self.enemy_list.update() | + | |
| - | self.frame_count += 1 | + | |
| - | for self.enemy_sprite in self.enemy_list: | + | ==== RV: ==== |
| - | start_x | + | |
| - | start_y | + | |
| - | dest_x | + | ==== DesertTileset2: |
| - | | + | https:// |
| + | ===== Audioquellen ===== | ||
| - | x_diff = dest_x - start_x | ||
| - | y_diff = dest_y - start_y | ||
| - | angle = math.atan2(y_diff, | ||
| - | self.enemy_sprite.angle = math.degrees(angle) - 90 | + | ==== Intro: ==== |
| + | | ||
| - | if self.frame_count % 60 == 0: | + | ==== Hurt: ==== |
| - | bullet | + | https:// |
| - | bullet.center_x | + | |
| - | | + | |
| - | bullet.angle | + | ==== End: ==== |
| + | | ||
| - | bullet.change_x | + | ===== Unsere Gamedatei ===== |
| - | bullet.change_y | + | |
| - | self.bullet_list.append(bullet) | + | {{ : |
| - | for bullet in self.bullet_list: | + | ===== Verbesserungen ===== |
| - | if bullet.top < 0: | + | |
| - | bullet.remove_from_SpriteList() | + | |
| - | self.bullet_list.update() | + | Wir brauchen noch einen Screen am Schluss, in welchem wir den Highscore anzeigen können. Leider hatten wir keine Zeit mehr diesen einzufügen. Ausserdem könnte man einen Startscreen machen in welchem man den aktuellen Highscore sieht und das Game starten kann. Darüberhinaus könnte man die Gegner auch bewegen lassen. Dies würde das Spiel spannender machen. |
| - | def on_mouse_motion(self, | ||
| - | self.player_sprite.center_x = x | ||
| - | self.player_sprite.center_y = y | ||
| - | |||
| - | def on_key_press(self, | ||
| - | if symbol == arcade.key.UP: | ||
| - | self.player_sprite.change_y = MOVEMENT_SPEED | ||
| - | |||
| - | elif symbol == arcade.key.DOWN: | ||
| - | self.player_sprite.change_y = -MOVEMENT_SPEED | ||
| - | |||
| - | elif symbol == arcade.key.LEFT: | ||
| - | self.player_sprite.change_x = -MOVEMENT_SPEED | ||
| - | |||
| - | elif symbol == arcade.key.RIGHT: | ||
| - | self.player_sprite.change_x = MOVEMENT_SPEED | ||
| - | |||
| - | |||
| - | def on_key_release(self, | ||
| - | if symbol == arcade.key.UP or symbol == arcade.key.DOWN: | ||
| - | self.player_sprite.change_y = 0 | ||
| - | elif symbol == arcade.key.LEFT or symbol == arcade.key.RIGHT: | ||
| - | self.player_sprite.change_x = 0 | ||
| - | |||
| - | def main(): | ||
| - | window = MyGame(SCREEN_WIDTH, | ||
| - | window.setup() | ||
| - | arcade.run() | ||
| - | |||
| - | if __name__ == " | ||
| - | main() | ||