commit 17048b703a497e824eb1deb2086b1bdc5004e8b8 Author: Joaquin Gottlebe Date: Thu Jul 30 16:38:22 2026 +0200 Migration to Codeberg diff --git a/2022-2d-shooter/README.md b/2022-2d-shooter/README.md new file mode 100644 index 0000000..0153412 --- /dev/null +++ b/2022-2d-shooter/README.md @@ -0,0 +1,58 @@ +# 2d-shooter + +## Overview +This 2d Shooter game is developed using the [Pygame](https://www.pygame.org/) library and supports maps created with Tiled, utilizing the `pytmx` library for map loading. + +## Prerequisites +To run the game, ensure you have the following installed on your system: + +- **Python 3.13 or later**: Install the latest version of Python from the [official Python website](https://www.python.org/). +- **Pygame**: Provides graphics, input handling, and sound. +- **PyTMX**: Used for loading Tiled map files. + +## Setting Up the Environment +Follow these steps to set up the game environment: + +1. **Create a virtual environment:** + ```bash + python3 -m venv venv + ``` + This will create a virtual environment in the `venv` directory. + +2. **Activate the virtual environment:** + On macOS or Linux: + ```bash + source venv/bin/activate + ``` + On Windows: + ```cmd + venv\Scripts\activate + ``` + +3. **Install dependencies:** + With the virtual environment activated, install the required libraries: + ```bash + pip3 install pygame pytmx + ``` + +### Running from the `code` Directory + +```bash +cd code +python3 game.py +``` + +## Troubleshooting +- **Missing Modules:** If you encounter `ModuleNotFoundError`, ensure all dependencies are installed in the virtual environment. +- **Missing Assets:** Ensure all required files, such as `../graphics/other/bg.png`, are in the correct directories relative to the code. +- **FileNotFoundError:** Verify the game is being run from the correct working directory (`code` if assets are referenced with relative paths). + +## License +This project is distributed under the MIT License. See the `LICENSE` file for details. + +## Contributions +Contributions are welcome! Fork the repository, make your changes, and submit a pull request. + +## Credits +- **Developer:** Joaquin Gottlebe +- **Built With:** Pygame, PyTMX, and Python diff --git a/2022-2d-shooter/code/allsprites.py b/2022-2d-shooter/code/allsprites.py new file mode 100644 index 0000000..0917de6 --- /dev/null +++ b/2022-2d-shooter/code/allsprites.py @@ -0,0 +1,27 @@ +# library imports +import pygame +from pygame.math import Vector2 as vector + +# local imports +from settings import * + +class AllSprites(pygame.sprite.Group): + + def __init__(self): + super().__init__() + self.offset = vector() + self.display_surface = pygame.display.get_surface() + self.bg = pygame.image.load('../graphics/other/bg.png').convert() + + def customize_draw(self,player): + + # change the offset vector + self.offset.x = player.rect.centerx - WINDOW_WIDTH / 2 + self.offset.y = player.rect.centery - WINDOW_HEIGHT / 2 + + # blit the surfaces + self.display_surface.blit(self.bg,-self.offset) + for sprite in sorted(self.sprites(), key = lambda sprite: sprite.rect.centery): + offset_rect = sprite.image.get_rect(center = sprite.rect.center) + offset_rect.center -= self.offset + self.display_surface.blit(sprite.image,offset_rect) diff --git a/2022-2d-shooter/code/game.py b/2022-2d-shooter/code/game.py new file mode 100644 index 0000000..df0d7cb --- /dev/null +++ b/2022-2d-shooter/code/game.py @@ -0,0 +1,62 @@ +# library imports +import sys +import pygame +from pytmx.util_pygame import load_pygame + +# local imports +from settings import * +from player import Player +from allsprites import AllSprites +from sprite import Sprite + +class Game: + def __init__(self): + pygame.init() + self.display_surface = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) + pygame.display.set_caption('Western shooter') + self.clock = pygame.time.Clock() + + # groups + self.all_sprites = AllSprites() + self.obstacles = pygame.sprite.Group() + + self.setup() + + def setup(self): + + tmx_map = load_pygame('../data/map.tmx') + + # tiles + for x, y, surf in tmx_map.get_layer_by_name('Fence').tiles(): + Sprite((x * 64, y * 64),surf,[self.all_sprites, self.obstacles]) + + # objects + for obj in tmx_map.get_layer_by_name('Objects'): + Sprite((obj.x, obj.y),obj.image,[self.all_sprites, self.obstacles]) + + # entities + for obj in tmx_map.get_layer_by_name('Entities'): + if obj.name == 'Player': + self.player = Player((obj.x,obj.y), self.all_sprites, PATHS['player'], self.obstacles) + + def run(self): + while True: + # event loop + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + dt = self.clock.tick() / 1000 + + # update groups + self.all_sprites.update(dt) + + # draw groups + self.all_sprites.customize_draw(self.player) + + pygame.display.update() + + +# execute Game +if __name__ == '__main__': + Game().run() \ No newline at end of file diff --git a/2022-2d-shooter/code/player.py b/2022-2d-shooter/code/player.py new file mode 100644 index 0000000..33ad789 --- /dev/null +++ b/2022-2d-shooter/code/player.py @@ -0,0 +1,146 @@ +# library imports +import pygame +from pygame.math import Vector2 as vector +from os import walk + + +class Player(pygame.sprite.Sprite): + + def __init__(self,pos, groups, path, collision_sprites): + super().__init__(groups) + + self.import_assets(path) + self.frame_index = 0 + self.status = 'down_idle' + + # sprite + self.image = self.animations[self.status][self.frame_index] + self.rect = self.image.get_rect(center = pos) + + # movement + self.pos = vector(self.rect.center) + self.direction = vector() + self.speed = 200 + + # collisions + self.hitbox = self.rect.inflate(0,-self.rect.height / 2) + self.collision_sprites = collision_sprites + + self.attacking = False + + def get_status(self): + # idle + if self.direction.x == 0 and self.direction.y == 0: + self.status = self.status.split('_')[0] + '_idle' + # attacking + if self.attacking: + self.status = self.status.split('_')[0] + '_attack' + + def import_assets(self, path): + self.animations = {} + + for index,folder in enumerate(walk(path)): + if index == 0: + for name in folder[1]: + self.animations[name] = [] + + else: + for file_name in sorted(folder[2], key = lambda string: int(string.split('.')[0])): + path = folder[0] + '/' + file_name + surf = pygame.image.load(path).convert_alpha() + key = folder[0].split('/')[3] + self.animations[key].append(surf) + + def input(self): + keys = pygame.key.get_pressed() + + if not self.attacking: + # horizontal input + if keys[pygame.K_RIGHT]: + self.direction.x = 1 + self.status = 'right' + elif keys[pygame.K_LEFT]: + self.direction.x = -1 + self.status = 'left' + else: + self.direction.x = 0 + + # vertical input + if keys[pygame.K_UP]: + self.direction.y = -1 + self.status = 'up' + elif keys[pygame.K_DOWN]: + self.direction.y = 1 + self.status = 'down' + else: + self.direction.y = 0 + + if keys[pygame.K_SPACE]: + self.attacking = True + self.direction = vector() + self.frame_index = 0 + + def move(self,dt): + + # normalize movement + if self.direction.magnitude() != 0: + self.direction = self.direction.normalize() + + # vertical movement + hitbox + self.pos.y += self.direction.y * self.speed * dt + self.hitbox.centery = round(self.pos.y) + self.rect.centery = self.hitbox.centery + self.collision('vertical') + + + # horizontal movement + hitbox + self.pos.x += self.direction.x * self.speed * dt + self.hitbox.centerx = round(self.pos.x) + self.rect.centerx = self.hitbox.centerx + self.collision('horizontal') + + def animate(self,dt): + current_animation = self.animations[self.status] + + self.frame_index += 10 * dt + if self.frame_index >= len(current_animation): + self.frame_index = 0 + if self.attacking: + self.attacking = False + + self.image = current_animation[int(self.frame_index)] + + def collision(self,direction): + + for sprite in self.collision_sprites.sprites(): + if sprite.hitbox.colliderect(self.hitbox): + # if hasattr(sprite,'name') and sprite.name == '': + # pygame.quit + # sys.exit + + if direction == 'horizontal': + if self.direction.x > 0: #moving right + self.hitbox.right = sprite.hitbox.left + self.rect.centerx = self.hitbox.centerx + self.pos.x = self.hitbox.centerx + if self.direction.x < 0: #moving right + self.hitbox.left = sprite.hitbox.right + self.rect.centerx = self.hitbox.centerx + self.pos.x = self.hitbox.centerx + else: + if self.direction.y > 0: # moving down + self.hitbox.bottom = sprite.hitbox.top + self.rect.centery = self.hitbox.centery + self.pos.y = self.hitbox.centery + if self.direction.y < 0: # moving up + self.hitbox.top = sprite.hitbox.bottom + self.rect.centery = self.hitbox.centery + self.pos.y = self.hitbox.centery + + + def update(self,dt): + self.input() + self.get_status() + self.move(dt) + self.animate(dt) + diff --git a/2022-2d-shooter/code/settings.py b/2022-2d-shooter/code/settings.py new file mode 100644 index 0000000..cc90935 --- /dev/null +++ b/2022-2d-shooter/code/settings.py @@ -0,0 +1,7 @@ +WINDOW_WIDTH, WINDOW_HEIGHT = 1280,720 + +PATHS = { + 'player' : '../graphics/player', + 'coffin' : '../graphics/monster/coffin', + 'cactus' : '../graphics/monster/cactus' +} \ No newline at end of file diff --git a/2022-2d-shooter/code/sprite.py b/2022-2d-shooter/code/sprite.py new file mode 100644 index 0000000..92fb242 --- /dev/null +++ b/2022-2d-shooter/code/sprite.py @@ -0,0 +1,10 @@ +# library imports +import pygame + +class Sprite(pygame.sprite.Sprite): + + def __init__(self,pos,surf,groups): + super().__init__(groups) + self.image = surf + self.rect = self.image.get_rect(topleft = pos) + self.hitbox = self.rect.inflate(0,-self.rect.height / 3) \ No newline at end of file diff --git a/2022-2d-shooter/data/fence.tsx b/2022-2d-shooter/data/fence.tsx new file mode 100644 index 0000000..8775cd7 --- /dev/null +++ b/2022-2d-shooter/data/fence.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/2022-2d-shooter/data/ground.tsx b/2022-2d-shooter/data/ground.tsx new file mode 100644 index 0000000..b5f8d44 --- /dev/null +++ b/2022-2d-shooter/data/ground.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/2022-2d-shooter/data/map.tmx b/2022-2d-shooter/data/map.tmx new file mode 100644 index 0000000..54dfe46 --- /dev/null +++ b/2022-2d-shooter/data/map.tmx @@ -0,0 +1,261 @@ + + + + + + + +122,90,91,122,59,61,61,123,60,123,59,59,59,59,58,90,121,123,89,120,120,59,60,89,59,123,120,89,121,123,123,89,58,91,121,122,89,58,92,60,58,59,59,60,58,60,61,89,90,91,89,91,61,91,92,91,121,121,59,121, +90,61,122,60,120,92,89,121,92,121,59,123,58,60,91,58,89,91,120,92,60,59,59,59,92,122,121,92,60,92,120,120,123,58,90,59,61,90,123,122,122,121,59,92,123,90,61,90,89,60,58,123,91,91,121,120,59,120,58,123, +121,61,61,91,59,120,92,58,91,90,120,120,61,122,91,90,58,120,123,60,60,91,59,58,60,92,121,120,121,120,90,122,59,120,92,59,59,120,61,122,92,120,91,90,61,59,60,123,121,61,58,92,61,92,59,123,122,121,121,89, +120,92,123,89,123,59,121,121,59,89,61,59,89,59,120,61,92,121,90,89,122,121,89,58,120,91,90,60,120,58,90,58,122,91,60,60,92,59,121,121,90,59,120,60,90,89,61,91,120,92,60,122,59,120,120,121,60,89,123,92, +58,92,60,123,90,121,58,121,60,123,123,123,121,121,122,90,90,120,91,90,60,59,91,91,92,92,58,92,60,89,59,91,121,120,122,89,58,60,91,60,122,58,121,91,123,59,92,123,120,90,58,123,122,60,92,90,121,122,122,123, +92,89,90,123,92,121,120,58,58,61,61,89,89,89,92,91,92,121,122,123,89,90,122,60,120,120,123,61,90,122,61,90,58,59,121,92,120,122,121,61,59,60,122,122,90,92,89,92,58,123,121,120,90,92,90,122,90,120,89,89, +121,59,121,121,122,89,123,60,61,60,123,91,59,121,123,61,122,122,61,59,123,61,89,59,89,122,120,91,60,91,90,92,91,121,121,59,61,58,120,59,122,61,89,60,58,91,89,90,91,91,59,91,90,90,89,122,59,123,121,122, +123,59,92,91,92,61,61,59,61,121,90,61,121,92,122,91,120,92,61,61,90,59,60,122,60,121,89,61,122,89,121,123,123,60,90,60,60,89,91,59,91,61,61,59,91,120,92,92,123,90,123,89,92,92,89,121,91,123,92,92, +58,60,59,91,59,58,61,60,92,58,121,61,120,90,120,123,120,58,120,60,122,61,61,60,61,89,60,121,92,122,123,90,123,59,121,60,120,92,121,59,90,58,92,61,91,59,122,123,89,59,90,90,123,123,60,89,59,90,90,90, +89,89,91,60,121,90,92,90,122,121,91,121,123,91,91,90,59,89,91,89,60,58,60,60,122,60,121,89,60,92,123,123,122,122,92,59,122,123,61,120,121,89,60,59,121,89,120,90,90,123,89,60,91,123,59,121,122,89,91,58, +92,120,58,92,123,91,89,121,90,123,61,121,92,123,123,91,89,121,89,89,89,90,89,61,60,121,121,89,58,90,59,92,58,58,60,123,61,91,60,92,120,59,58,59,92,120,123,59,60,90,89,121,122,91,61,60,58,91,121,60, +60,59,60,121,60,122,89,90,89,89,59,89,121,123,89,59,89,120,91,120,89,122,123,58,92,120,61,60,60,123,60,58,91,92,120,58,123,58,61,123,90,59,61,121,92,91,60,89,90,58,92,60,91,91,122,59,123,122,89,120, +61,121,91,92,121,121,91,121,120,122,123,90,91,89,58,60,122,92,89,92,121,91,89,121,122,121,59,92,61,121,120,91,58,90,89,58,91,61,58,90,90,59,90,123,122,58,92,122,122,91,120,90,123,89,61,120,92,61,91,122, +60,58,59,92,92,122,58,121,123,60,92,92,122,122,120,58,90,120,90,92,92,60,92,120,121,122,61,91,91,123,91,58,120,121,58,89,61,60,61,61,58,90,89,89,92,92,61,89,60,60,90,92,61,120,121,61,58,58,60,59, +58,122,59,122,60,58,121,122,121,60,120,91,123,122,120,89,90,61,61,59,60,91,60,61,92,91,89,120,58,123,60,61,120,58,92,58,121,123,58,89,89,122,123,122,91,91,89,123,90,58,60,123,90,59,120,89,121,92,58,123, +121,60,91,89,91,121,61,59,90,120,92,123,123,90,58,89,89,91,120,59,92,90,91,92,121,61,58,120,123,61,91,92,61,61,58,59,58,59,92,58,61,60,58,91,59,123,59,89,61,90,58,61,60,58,59,58,58,123,92,89, +123,61,123,121,120,58,120,60,90,90,90,60,61,120,120,58,90,122,89,59,120,89,121,120,122,90,90,120,120,92,89,90,121,89,90,123,91,121,121,91,90,58,60,92,120,59,120,59,90,122,58,91,60,91,91,91,121,61,59,89, +120,90,121,91,121,121,92,122,60,59,92,121,91,122,61,121,59,91,60,59,58,59,120,61,59,89,60,121,122,61,91,121,121,92,90,60,122,121,123,91,120,120,60,60,123,90,122,120,121,89,123,122,121,58,122,120,123,121,89,60, +89,61,91,92,91,91,120,60,123,122,90,61,91,120,58,61,120,121,61,92,91,90,61,59,58,91,122,92,122,59,61,59,92,122,121,122,90,61,92,123,89,122,89,120,120,120,61,89,90,89,89,120,61,59,91,123,58,121,92,59, +123,122,61,90,89,59,58,58,89,122,58,120,90,58,121,121,89,60,120,121,59,91,122,92,60,58,120,91,121,123,91,91,90,89,122,59,60,58,89,91,90,123,122,60,122,58,122,58,60,59,89,92,59,61,122,120,91,59,91,58, +120,122,89,91,122,120,92,89,59,121,59,61,91,120,92,60,92,61,89,92,60,122,60,89,122,90,92,91,121,90,90,60,120,60,89,89,91,58,91,59,89,91,91,58,121,89,120,61,123,120,120,121,121,122,121,91,89,60,60,92, +91,92,61,89,120,92,121,120,120,121,120,121,91,120,89,60,90,59,120,92,92,90,122,120,91,92,122,92,60,92,122,120,58,123,59,60,121,122,91,60,61,122,90,121,61,122,59,120,61,60,90,91,120,91,121,90,120,89,58,123, +90,89,90,91,92,123,59,91,120,90,90,61,59,92,89,59,122,89,60,89,61,122,123,60,59,92,60,89,58,121,123,60,123,122,121,123,60,89,122,60,92,60,89,90,61,122,89,61,123,121,89,92,58,91,58,123,89,120,123,122, +91,60,122,60,122,123,61,121,59,89,92,61,61,120,89,120,121,92,60,120,120,58,59,90,90,91,58,58,91,89,89,58,122,60,121,120,92,59,61,58,120,122,89,61,123,92,92,60,121,61,92,91,61,121,89,123,60,123,122,123, +58,58,120,59,59,59,59,89,122,59,59,123,91,60,58,120,61,61,89,58,60,89,120,60,60,89,61,91,60,120,59,59,122,90,91,121,59,123,122,89,122,91,122,91,90,90,92,90,122,121,59,90,92,122,121,89,121,121,90,123, +120,59,58,90,89,61,120,123,120,91,121,89,120,59,92,120,92,92,90,91,61,92,121,120,92,120,122,91,89,59,120,122,89,121,123,58,122,61,59,90,92,120,122,123,121,120,89,89,123,91,122,60,120,89,92,59,123,120,123,89, +60,92,90,60,90,89,58,123,61,91,122,121,91,59,61,120,123,123,58,120,58,90,121,92,90,91,58,122,58,122,92,92,89,89,60,59,121,92,121,58,123,120,90,61,121,120,61,60,60,120,121,59,61,92,122,91,122,59,61,89, +122,92,58,92,60,60,121,123,60,91,122,90,90,91,61,58,60,122,92,59,58,122,92,91,92,122,89,89,121,89,59,61,123,123,123,89,121,61,58,120,59,122,61,58,91,58,60,92,122,60,121,58,121,89,90,61,122,59,58,123, +90,122,90,121,90,91,61,89,59,59,92,89,60,59,59,91,92,60,58,89,60,120,123,90,122,91,58,59,91,121,59,61,91,61,61,121,89,91,61,61,60,61,91,92,90,61,90,91,61,60,92,91,91,122,59,89,91,123,90,123, +61,60,91,90,123,59,90,91,123,89,92,89,59,61,121,122,121,61,92,91,89,122,121,123,122,59,61,58,121,92,58,92,121,122,60,123,59,91,92,61,120,90,60,58,89,60,121,89,58,91,59,58,89,61,61,89,58,92,91,58, +60,90,121,92,122,122,120,91,90,58,58,121,90,120,60,92,121,92,122,60,121,91,120,59,59,123,58,59,92,123,123,89,91,60,60,121,60,120,92,60,59,120,91,59,121,89,60,61,61,122,92,120,120,92,58,120,121,61,59,61, +92,123,91,59,60,90,91,123,58,59,61,120,91,92,121,122,59,89,120,58,89,60,92,60,61,122,90,91,122,90,123,60,90,92,90,61,121,123,58,120,122,60,92,120,58,92,120,120,58,89,90,121,123,121,60,91,58,91,58,59, +92,123,92,60,120,89,91,123,120,91,59,90,122,59,121,58,120,122,89,122,61,60,89,92,91,120,61,121,59,89,122,60,123,58,122,123,60,89,92,90,123,90,120,92,61,123,89,59,59,92,89,60,120,120,59,120,122,61,60,123, +122,89,60,61,89,123,61,58,60,122,123,91,60,92,121,59,60,122,61,120,90,92,90,58,89,61,121,60,60,60,59,58,122,92,59,91,123,121,58,123,58,91,59,59,90,60,123,120,92,92,60,61,122,123,92,122,60,122,123,120, +120,123,89,92,60,59,61,89,60,121,90,59,92,90,59,61,120,60,58,89,122,120,61,92,89,58,121,122,58,89,91,60,60,61,60,60,121,58,92,60,58,120,90,90,120,58,89,122,91,120,92,120,121,121,123,92,92,92,61,121, +90,91,91,91,122,122,89,89,90,90,59,123,122,61,121,90,121,92,61,92,59,60,89,122,122,91,122,92,122,89,121,58,89,91,120,60,61,91,59,90,122,91,122,120,90,122,60,60,123,92,92,123,59,120,59,91,58,59,61,120, +92,90,89,123,91,92,90,123,59,92,61,61,120,91,60,92,121,92,60,90,89,61,90,61,59,92,59,121,91,61,58,61,91,122,121,90,61,58,60,92,123,59,122,120,61,59,123,58,59,122,91,123,92,59,121,90,59,61,60,123, +58,91,92,90,89,59,58,60,122,91,89,121,60,59,123,91,121,120,60,59,91,58,60,120,120,61,92,59,90,122,58,59,90,122,91,60,120,123,122,60,91,120,60,120,60,89,59,90,90,122,92,60,90,89,61,92,121,59,91,90, +120,123,60,61,121,120,89,60,121,123,123,92,92,90,59,60,90,121,59,122,58,58,89,58,123,58,90,120,122,123,91,92,60,90,121,89,89,120,120,121,91,91,90,61,123,123,122,59,59,121,89,61,89,61,122,120,89,58,120,123, +120,90,90,92,92,59,122,61,61,120,120,59,123,121,92,120,122,91,89,123,121,58,89,91,58,89,89,58,92,92,120,60,61,123,61,123,92,123,121,92,92,59,121,123,121,122,91,61,90,61,89,123,91,58,123,123,61,60,89,120, +122,90,58,120,122,91,60,89,91,123,121,121,58,90,89,58,91,92,59,59,123,120,123,91,92,92,122,121,59,89,61,120,59,120,89,120,121,58,122,61,89,60,123,92,59,61,59,120,59,120,59,89,120,92,121,90,59,59,91,92, +91,92,59,121,89,60,89,91,58,61,91,120,90,121,60,120,61,122,122,90,120,90,121,91,121,91,92,89,58,61,91,123,58,120,91,60,89,91,58,92,92,89,89,61,58,91,60,58,61,121,91,61,123,120,123,121,60,123,90,91, +121,121,60,121,89,122,60,59,89,90,61,91,120,61,58,92,120,120,58,89,90,91,120,58,59,59,122,123,123,120,91,90,122,60,121,61,61,123,61,61,61,123,121,90,120,123,58,90,60,120,61,61,89,120,58,58,92,92,123,91, +89,122,89,120,121,60,120,58,121,58,91,92,58,61,120,61,61,60,59,89,90,92,123,58,120,120,61,59,122,89,59,58,58,120,61,90,89,91,91,59,121,123,122,59,90,92,92,91,92,120,121,120,120,120,92,122,90,60,122,122, +61,122,61,60,60,89,90,91,61,58,89,60,61,89,120,58,122,61,61,61,120,123,122,120,60,120,58,60,121,60,122,60,59,89,90,60,89,91,90,121,120,122,90,89,89,58,92,89,123,121,90,61,89,59,60,92,92,120,58,61, +121,61,59,122,92,121,59,59,92,122,120,120,58,121,89,59,121,122,121,89,58,122,58,91,60,92,91,59,60,61,60,90,122,91,123,91,90,120,89,123,120,122,59,123,89,123,89,58,120,59,92,120,121,58,61,92,123,60,121,91, +58,123,123,123,58,92,92,58,92,123,89,90,122,120,122,59,89,122,60,123,60,121,58,58,92,59,90,58,123,122,123,121,58,89,58,58,92,122,90,90,59,92,89,121,123,121,123,123,91,123,121,123,91,60,60,92,123,122,61,91, +89,61,59,120,121,58,61,122,91,120,91,90,61,91,121,61,123,92,123,120,58,92,90,89,123,120,61,58,91,123,90,61,60,123,58,92,91,123,58,121,122,122,61,58,58,89,89,122,121,92,58,91,92,60,60,58,89,91,92,92, +89,120,59,58,121,90,121,120,60,59,61,123,122,61,90,59,58,59,123,123,89,90,92,90,90,61,92,120,58,123,60,122,120,90,59,91,58,89,91,123,92,92,61,89,60,61,92,91,120,61,123,123,123,122,90,123,89,59,122,58, +121,90,123,60,120,92,90,59,59,90,121,91,123,60,60,123,120,120,91,90,61,61,59,89,61,121,121,123,123,58,89,121,61,122,120,121,61,123,58,58,92,90,91,60,120,90,122,122,120,92,59,61,61,120,121,58,60,90,89,123, +91,120,91,61,92,91,61,121,61,61,92,60,120,120,123,90,89,89,89,91,120,91,123,92,60,91,120,91,91,121,58,122,92,91,92,58,121,89,58,90,58,91,90,58,92,89,122,61,122,90,90,90,120,60,59,59,90,59,92,123, +60,60,122,92,121,58,61,60,89,121,92,60,123,123,92,59,59,121,91,123,121,122,122,92,59,121,60,91,123,122,58,60,59,60,120,123,120,92,92,90,123,61,60,122,123,120,92,59,58,59,90,58,61,61,58,61,120,89,60,91, +61,120,120,91,91,120,122,92,92,89,61,60,121,92,92,121,58,89,89,90,92,123,58,120,92,122,59,121,61,120,59,90,122,121,89,122,58,120,59,92,59,121,90,89,122,60,59,60,60,59,60,59,60,60,122,60,122,90,60,89, +60,58,61,61,120,59,122,59,61,60,92,89,120,58,58,92,60,89,59,120,89,90,92,59,60,123,90,122,60,89,60,122,122,90,91,120,58,90,121,60,92,58,91,89,120,123,58,91,122,122,60,92,92,58,89,91,120,91,123,121, +58,121,90,92,123,89,121,120,92,91,89,58,121,60,120,89,120,120,60,58,120,61,60,92,61,91,91,58,120,90,121,123,90,120,121,60,121,90,121,121,60,61,122,61,120,89,89,61,92,123,121,58,120,59,92,123,121,61,90,61, +58,58,61,121,89,90,90,58,122,91,58,122,122,61,59,121,90,61,89,91,120,59,120,89,122,123,89,120,90,89,123,59,61,89,89,120,59,89,58,92,92,92,59,91,60,90,61,61,123,123,92,90,120,120,92,90,121,123,92,120, +89,58,120,89,120,58,120,61,123,92,120,60,61,59,120,122,58,92,61,59,91,92,89,121,61,121,90,90,121,60,91,121,123,92,61,121,120,90,59,92,90,90,90,89,123,122,120,61,61,120,91,120,92,58,123,91,121,122,92,120, +91,89,91,91,92,91,61,58,90,91,61,121,92,90,89,60,61,60,61,90,122,91,91,61,60,122,122,92,91,122,120,121,122,59,122,91,123,61,92,89,89,90,121,122,123,89,91,121,121,92,58,91,91,123,89,89,120,59,60,89, +90,89,90,122,92,123,91,91,91,122,121,58,123,61,92,120,92,91,60,60,122,59,91,58,121,90,123,58,89,91,60,60,90,61,120,90,89,120,59,122,59,59,121,92,60,92,90,91,89,91,92,92,90,59,90,121,123,122,91,122, +60,59,123,61,89,123,90,90,91,60,90,58,120,120,89,89,61,89,60,58,58,89,91,122,61,120,90,58,58,60,59,92,120,60,89,90,92,90,120,61,89,122,89,59,121,59,58,122,58,90,91,121,91,90,61,58,92,89,91,92 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,249,268,268,268,268,268,268,268,251,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,249,268,268,268,268,268,268,268,268,268,268,254,0,0,0,0,0,0,0,252,268,268,268,268,268,268,272,0,0,0,0,0,0,0,270,268,251,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,249,272,0,0,0,0,0,0,0,0,0,0,267,268,268,268,268,268,268,268,269,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,270,251,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,249,272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,270,251,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,249,272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,270,254,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,249,272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,249,272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,267,251,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,267,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,267,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,249,269,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,267,251,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,249,272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,249,272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,270,251,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,269,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,269,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,267,251,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,269,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,269,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,270,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,269,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,269,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,267,268,268,268,268,251,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,269,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,268,269,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,270,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,251,0,0,0,252,268,268,268,268,268,269,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,270,268,268,268,269,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2022-2d-shooter/data/objects.tsx b/2022-2d-shooter/data/objects.tsx new file mode 100644 index 0000000..7f23954 --- /dev/null +++ b/2022-2d-shooter/data/objects.tsx @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2022-2d-shooter/graphics/monster/cactus/down/0.png b/2022-2d-shooter/graphics/monster/cactus/down/0.png new file mode 100644 index 0000000..cc36857 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/1.png b/2022-2d-shooter/graphics/monster/cactus/down/1.png new file mode 100644 index 0000000..d84c635 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/2.png b/2022-2d-shooter/graphics/monster/cactus/down/2.png new file mode 100644 index 0000000..c0e9848 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/3.png b/2022-2d-shooter/graphics/monster/cactus/down/3.png new file mode 100644 index 0000000..c979089 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/4.png b/2022-2d-shooter/graphics/monster/cactus/down/4.png new file mode 100644 index 0000000..b05b6e4 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/4.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/5.png b/2022-2d-shooter/graphics/monster/cactus/down/5.png new file mode 100644 index 0000000..b254504 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/5.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/6.png b/2022-2d-shooter/graphics/monster/cactus/down/6.png new file mode 100644 index 0000000..f8a7893 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/6.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/7.png b/2022-2d-shooter/graphics/monster/cactus/down/7.png new file mode 100644 index 0000000..3621009 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/7.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/8.png b/2022-2d-shooter/graphics/monster/cactus/down/8.png new file mode 100644 index 0000000..ec7d66b Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/8.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down/9.png b/2022-2d-shooter/graphics/monster/cactus/down/9.png new file mode 100644 index 0000000..904f2e5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down/9.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/0.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/0.png new file mode 100644 index 0000000..4f5f0a8 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/1.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/1.png new file mode 100644 index 0000000..1279dd2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/10.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/10.png new file mode 100644 index 0000000..6ee7043 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/10.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/2.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/2.png new file mode 100644 index 0000000..a217fbf Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/3.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/3.png new file mode 100644 index 0000000..cc02968 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/4.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/4.png new file mode 100644 index 0000000..db9011c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/4.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/5.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/5.png new file mode 100644 index 0000000..f86f9d5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/5.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/6.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/6.png new file mode 100644 index 0000000..4bde2bf Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/6.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/7.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/7.png new file mode 100644 index 0000000..8683cfc Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/7.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/8.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/8.png new file mode 100644 index 0000000..1dca50d Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/8.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_attack/9.png b/2022-2d-shooter/graphics/monster/cactus/down_attack/9.png new file mode 100644 index 0000000..0f3e5a5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_attack/9.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_idle/0.png b/2022-2d-shooter/graphics/monster/cactus/down_idle/0.png new file mode 100644 index 0000000..e321c1a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_idle/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_idle/1.png b/2022-2d-shooter/graphics/monster/cactus/down_idle/1.png new file mode 100644 index 0000000..b46940d Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_idle/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_idle/2.png b/2022-2d-shooter/graphics/monster/cactus/down_idle/2.png new file mode 100644 index 0000000..7399529 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_idle/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/down_idle/3.png b/2022-2d-shooter/graphics/monster/cactus/down_idle/3.png new file mode 100644 index 0000000..f2107c2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/down_idle/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/0.png b/2022-2d-shooter/graphics/monster/cactus/left/0.png new file mode 100644 index 0000000..8166cb1 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/1.png b/2022-2d-shooter/graphics/monster/cactus/left/1.png new file mode 100644 index 0000000..05b7349 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/2.png b/2022-2d-shooter/graphics/monster/cactus/left/2.png new file mode 100644 index 0000000..b034b18 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/3.png b/2022-2d-shooter/graphics/monster/cactus/left/3.png new file mode 100644 index 0000000..a61b91f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/4.png b/2022-2d-shooter/graphics/monster/cactus/left/4.png new file mode 100644 index 0000000..efbd99f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/4.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/5.png b/2022-2d-shooter/graphics/monster/cactus/left/5.png new file mode 100644 index 0000000..eb0661f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/5.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/6.png b/2022-2d-shooter/graphics/monster/cactus/left/6.png new file mode 100644 index 0000000..2b2d869 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/6.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/7.png b/2022-2d-shooter/graphics/monster/cactus/left/7.png new file mode 100644 index 0000000..595eba2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/7.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left/8.png b/2022-2d-shooter/graphics/monster/cactus/left/8.png new file mode 100644 index 0000000..b7d1268 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left/8.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/0.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/0.png new file mode 100644 index 0000000..3ada289 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/1.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/1.png new file mode 100644 index 0000000..acb5f78 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/10.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/10.png new file mode 100644 index 0000000..3676a76 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/10.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/11.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/11.png new file mode 100644 index 0000000..6fb304f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/11.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/2.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/2.png new file mode 100644 index 0000000..e2c5fe1 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/3.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/3.png new file mode 100644 index 0000000..e7b6712 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/4.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/4.png new file mode 100644 index 0000000..be2e99d Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/4.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/5.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/5.png new file mode 100644 index 0000000..70c137b Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/5.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/6.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/6.png new file mode 100644 index 0000000..10d04d3 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/6.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/7.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/7.png new file mode 100644 index 0000000..f74792c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/7.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_attack/8.png b/2022-2d-shooter/graphics/monster/cactus/left_attack/8.png new file mode 100644 index 0000000..8cbcb01 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_attack/8.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_idle/0.png b/2022-2d-shooter/graphics/monster/cactus/left_idle/0.png new file mode 100644 index 0000000..e44384a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_idle/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_idle/1.png b/2022-2d-shooter/graphics/monster/cactus/left_idle/1.png new file mode 100644 index 0000000..7d07876 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_idle/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_idle/2.png b/2022-2d-shooter/graphics/monster/cactus/left_idle/2.png new file mode 100644 index 0000000..38101bb Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_idle/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/left_idle/3.png b/2022-2d-shooter/graphics/monster/cactus/left_idle/3.png new file mode 100644 index 0000000..b2cbb3b Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/left_idle/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/0.png b/2022-2d-shooter/graphics/monster/cactus/right/0.png new file mode 100644 index 0000000..95396b5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/1.png b/2022-2d-shooter/graphics/monster/cactus/right/1.png new file mode 100644 index 0000000..61aa5aa Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/2.png b/2022-2d-shooter/graphics/monster/cactus/right/2.png new file mode 100644 index 0000000..b8407f2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/3.png b/2022-2d-shooter/graphics/monster/cactus/right/3.png new file mode 100644 index 0000000..a0973ea Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/4.png b/2022-2d-shooter/graphics/monster/cactus/right/4.png new file mode 100644 index 0000000..874ec7c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/4.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/5.png b/2022-2d-shooter/graphics/monster/cactus/right/5.png new file mode 100644 index 0000000..392f3d5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/5.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/6.png b/2022-2d-shooter/graphics/monster/cactus/right/6.png new file mode 100644 index 0000000..2d068e8 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/6.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/7.png b/2022-2d-shooter/graphics/monster/cactus/right/7.png new file mode 100644 index 0000000..76f1a3f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/7.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right/8.png b/2022-2d-shooter/graphics/monster/cactus/right/8.png new file mode 100644 index 0000000..85b7b00 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right/8.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/0.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/0.png new file mode 100644 index 0000000..ccdf886 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/1.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/1.png new file mode 100644 index 0000000..a91a81e Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/10.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/10.png new file mode 100644 index 0000000..3a3eeeb Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/10.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/2.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/2.png new file mode 100644 index 0000000..3a9c027 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/3.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/3.png new file mode 100644 index 0000000..91cc1fd Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/4.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/4.png new file mode 100644 index 0000000..3bd343c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/4.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/5.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/5.png new file mode 100644 index 0000000..46bbe58 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/5.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/6.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/6.png new file mode 100644 index 0000000..6cc8493 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/6.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/7.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/7.png new file mode 100644 index 0000000..a7597fc Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/7.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/8.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/8.png new file mode 100644 index 0000000..e2b5930 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/8.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_attack/9.png b/2022-2d-shooter/graphics/monster/cactus/right_attack/9.png new file mode 100644 index 0000000..bc373c5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_attack/9.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_idle/0.png b/2022-2d-shooter/graphics/monster/cactus/right_idle/0.png new file mode 100644 index 0000000..2188e7b Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_idle/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_idle/1.png b/2022-2d-shooter/graphics/monster/cactus/right_idle/1.png new file mode 100644 index 0000000..b28ec41 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_idle/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_idle/2.png b/2022-2d-shooter/graphics/monster/cactus/right_idle/2.png new file mode 100644 index 0000000..b226daa Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_idle/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/right_idle/3.png b/2022-2d-shooter/graphics/monster/cactus/right_idle/3.png new file mode 100644 index 0000000..e1855cd Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/right_idle/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/0.png b/2022-2d-shooter/graphics/monster/cactus/up/0.png new file mode 100644 index 0000000..66200b0 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/1.png b/2022-2d-shooter/graphics/monster/cactus/up/1.png new file mode 100644 index 0000000..5262385 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/2.png b/2022-2d-shooter/graphics/monster/cactus/up/2.png new file mode 100644 index 0000000..1411d5f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/3.png b/2022-2d-shooter/graphics/monster/cactus/up/3.png new file mode 100644 index 0000000..d5b71ab Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/4.png b/2022-2d-shooter/graphics/monster/cactus/up/4.png new file mode 100644 index 0000000..f0d07f2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/4.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/5.png b/2022-2d-shooter/graphics/monster/cactus/up/5.png new file mode 100644 index 0000000..23a3836 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/5.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/6.png b/2022-2d-shooter/graphics/monster/cactus/up/6.png new file mode 100644 index 0000000..86238c3 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/6.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/7.png b/2022-2d-shooter/graphics/monster/cactus/up/7.png new file mode 100644 index 0000000..7670342 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/7.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/8.png b/2022-2d-shooter/graphics/monster/cactus/up/8.png new file mode 100644 index 0000000..be685e3 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/8.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up/9.png b/2022-2d-shooter/graphics/monster/cactus/up/9.png new file mode 100644 index 0000000..44918c9 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up/9.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/0.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/0.png new file mode 100644 index 0000000..c8372c9 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/1.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/1.png new file mode 100644 index 0000000..a404b63 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/10.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/10.png new file mode 100644 index 0000000..9414dae Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/10.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/2.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/2.png new file mode 100644 index 0000000..9fef519 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/3.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/3.png new file mode 100644 index 0000000..b97fafe Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/3.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/4.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/4.png new file mode 100644 index 0000000..01df8cd Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/4.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/5.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/5.png new file mode 100644 index 0000000..71f303a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/5.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/6.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/6.png new file mode 100644 index 0000000..9df76af Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/6.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/7.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/7.png new file mode 100644 index 0000000..27d8856 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/7.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/8.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/8.png new file mode 100644 index 0000000..548f196 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/8.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_attack/9.png b/2022-2d-shooter/graphics/monster/cactus/up_attack/9.png new file mode 100644 index 0000000..383930b Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_attack/9.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_idle/0.png b/2022-2d-shooter/graphics/monster/cactus/up_idle/0.png new file mode 100644 index 0000000..0c0a070 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_idle/0.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_idle/1.png b/2022-2d-shooter/graphics/monster/cactus/up_idle/1.png new file mode 100644 index 0000000..d1b5edb Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_idle/1.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_idle/2.png b/2022-2d-shooter/graphics/monster/cactus/up_idle/2.png new file mode 100644 index 0000000..70b8846 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_idle/2.png differ diff --git a/2022-2d-shooter/graphics/monster/cactus/up_idle/3.png b/2022-2d-shooter/graphics/monster/cactus/up_idle/3.png new file mode 100644 index 0000000..5546c18 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/cactus/up_idle/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/0.png b/2022-2d-shooter/graphics/monster/coffin/down/0.png new file mode 100644 index 0000000..1aa324d Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/1.png b/2022-2d-shooter/graphics/monster/coffin/down/1.png new file mode 100644 index 0000000..9fe5756 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/10.png b/2022-2d-shooter/graphics/monster/coffin/down/10.png new file mode 100644 index 0000000..d9cccf5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/10.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/11.png b/2022-2d-shooter/graphics/monster/coffin/down/11.png new file mode 100644 index 0000000..a4a9dc6 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/11.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/12.png b/2022-2d-shooter/graphics/monster/coffin/down/12.png new file mode 100644 index 0000000..f9799de Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/12.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/13.png b/2022-2d-shooter/graphics/monster/coffin/down/13.png new file mode 100644 index 0000000..f9799de Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/13.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/2.png b/2022-2d-shooter/graphics/monster/coffin/down/2.png new file mode 100644 index 0000000..976a4c6 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/3.png b/2022-2d-shooter/graphics/monster/coffin/down/3.png new file mode 100644 index 0000000..86c60ee Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/4.png b/2022-2d-shooter/graphics/monster/coffin/down/4.png new file mode 100644 index 0000000..f90efaa Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/5.png b/2022-2d-shooter/graphics/monster/coffin/down/5.png new file mode 100644 index 0000000..9b4a9ec Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/6.png b/2022-2d-shooter/graphics/monster/coffin/down/6.png new file mode 100644 index 0000000..56a9e55 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/6.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/7.png b/2022-2d-shooter/graphics/monster/coffin/down/7.png new file mode 100644 index 0000000..a65a690 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/7.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/8.png b/2022-2d-shooter/graphics/monster/coffin/down/8.png new file mode 100644 index 0000000..9673049 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/8.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down/9.png b/2022-2d-shooter/graphics/monster/coffin/down/9.png new file mode 100644 index 0000000..cc7f66e Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down/9.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/0.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/0.png new file mode 100644 index 0000000..618c596 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/1.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/1.png new file mode 100644 index 0000000..700f971 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/10.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/10.png new file mode 100644 index 0000000..4f82824 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/10.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/11.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/11.png new file mode 100644 index 0000000..239f76c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/11.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/12.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/12.png new file mode 100644 index 0000000..77af8f2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/12.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/13.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/13.png new file mode 100644 index 0000000..bf860a8 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/13.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/2.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/2.png new file mode 100644 index 0000000..26c64e1 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/3.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/3.png new file mode 100644 index 0000000..92d3194 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/4.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/4.png new file mode 100644 index 0000000..d98f743 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/5.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/5.png new file mode 100644 index 0000000..97ab2d0 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/6.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/6.png new file mode 100644 index 0000000..f2a5a6f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/6.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/7.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/7.png new file mode 100644 index 0000000..a1bc15e Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/7.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/8.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/8.png new file mode 100644 index 0000000..46cbcb0 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/8.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_attack/9.png b/2022-2d-shooter/graphics/monster/coffin/down_attack/9.png new file mode 100644 index 0000000..5c09c55 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_attack/9.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_idle/0.png b/2022-2d-shooter/graphics/monster/coffin/down_idle/0.png new file mode 100644 index 0000000..f9f46b5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_idle/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_idle/1.png b/2022-2d-shooter/graphics/monster/coffin/down_idle/1.png new file mode 100644 index 0000000..8247a35 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_idle/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_idle/2.png b/2022-2d-shooter/graphics/monster/coffin/down_idle/2.png new file mode 100644 index 0000000..862d016 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_idle/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_idle/3.png b/2022-2d-shooter/graphics/monster/coffin/down_idle/3.png new file mode 100644 index 0000000..4e5c7c2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_idle/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_idle/4.png b/2022-2d-shooter/graphics/monster/coffin/down_idle/4.png new file mode 100644 index 0000000..101b161 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_idle/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/down_idle/5.png b/2022-2d-shooter/graphics/monster/coffin/down_idle/5.png new file mode 100644 index 0000000..0c2d28a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/down_idle/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/0.png b/2022-2d-shooter/graphics/monster/coffin/left/0.png new file mode 100644 index 0000000..8e9b153 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/1.png b/2022-2d-shooter/graphics/monster/coffin/left/1.png new file mode 100644 index 0000000..72f016f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/10.png b/2022-2d-shooter/graphics/monster/coffin/left/10.png new file mode 100644 index 0000000..4164f86 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/10.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/11.png b/2022-2d-shooter/graphics/monster/coffin/left/11.png new file mode 100644 index 0000000..56d0bca Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/11.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/12.png b/2022-2d-shooter/graphics/monster/coffin/left/12.png new file mode 100644 index 0000000..56d0bca Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/12.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/13.png b/2022-2d-shooter/graphics/monster/coffin/left/13.png new file mode 100644 index 0000000..212c432 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/13.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/2.png b/2022-2d-shooter/graphics/monster/coffin/left/2.png new file mode 100644 index 0000000..e43a5bb Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/3.png b/2022-2d-shooter/graphics/monster/coffin/left/3.png new file mode 100644 index 0000000..037ff9c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/4.png b/2022-2d-shooter/graphics/monster/coffin/left/4.png new file mode 100644 index 0000000..c292ae7 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/5.png b/2022-2d-shooter/graphics/monster/coffin/left/5.png new file mode 100644 index 0000000..4332b83 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/6.png b/2022-2d-shooter/graphics/monster/coffin/left/6.png new file mode 100644 index 0000000..6e4faa2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/6.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/7.png b/2022-2d-shooter/graphics/monster/coffin/left/7.png new file mode 100644 index 0000000..10d6628 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/7.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/8.png b/2022-2d-shooter/graphics/monster/coffin/left/8.png new file mode 100644 index 0000000..64fa9a7 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/8.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left/9.png b/2022-2d-shooter/graphics/monster/coffin/left/9.png new file mode 100644 index 0000000..6ee295f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left/9.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/0.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/0.png new file mode 100644 index 0000000..d7ee0ba Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/1.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/1.png new file mode 100644 index 0000000..13d1d33 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/10.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/10.png new file mode 100644 index 0000000..013c00a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/10.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/11.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/11.png new file mode 100644 index 0000000..f0177f0 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/11.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/12.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/12.png new file mode 100644 index 0000000..69913e5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/12.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/13.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/13.png new file mode 100644 index 0000000..816c121 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/13.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/2.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/2.png new file mode 100644 index 0000000..e330d74 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/3.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/3.png new file mode 100644 index 0000000..40ec5bc Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/4.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/4.png new file mode 100644 index 0000000..c4b266c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/5.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/5.png new file mode 100644 index 0000000..434339d Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/6.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/6.png new file mode 100644 index 0000000..69cb0f5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/6.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/7.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/7.png new file mode 100644 index 0000000..dc04b31 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/7.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/8.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/8.png new file mode 100644 index 0000000..cdfd521 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/8.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_attack/9.png b/2022-2d-shooter/graphics/monster/coffin/left_attack/9.png new file mode 100644 index 0000000..40b6275 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_attack/9.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_idle/0.png b/2022-2d-shooter/graphics/monster/coffin/left_idle/0.png new file mode 100644 index 0000000..6f2724c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_idle/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_idle/1.png b/2022-2d-shooter/graphics/monster/coffin/left_idle/1.png new file mode 100644 index 0000000..fcfae83 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_idle/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_idle/2.png b/2022-2d-shooter/graphics/monster/coffin/left_idle/2.png new file mode 100644 index 0000000..6c64e48 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_idle/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_idle/3.png b/2022-2d-shooter/graphics/monster/coffin/left_idle/3.png new file mode 100644 index 0000000..6c64e48 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_idle/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_idle/4.png b/2022-2d-shooter/graphics/monster/coffin/left_idle/4.png new file mode 100644 index 0000000..fcfae83 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_idle/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/left_idle/5.png b/2022-2d-shooter/graphics/monster/coffin/left_idle/5.png new file mode 100644 index 0000000..6f2724c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/left_idle/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/0.png b/2022-2d-shooter/graphics/monster/coffin/right/0.png new file mode 100644 index 0000000..fc93f01 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/1.png b/2022-2d-shooter/graphics/monster/coffin/right/1.png new file mode 100644 index 0000000..e5b0760 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/10.png b/2022-2d-shooter/graphics/monster/coffin/right/10.png new file mode 100644 index 0000000..0afbc1c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/10.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/11.png b/2022-2d-shooter/graphics/monster/coffin/right/11.png new file mode 100644 index 0000000..4028eed Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/11.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/12.png b/2022-2d-shooter/graphics/monster/coffin/right/12.png new file mode 100644 index 0000000..4028eed Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/12.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/13.png b/2022-2d-shooter/graphics/monster/coffin/right/13.png new file mode 100644 index 0000000..7c73902 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/13.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/2.png b/2022-2d-shooter/graphics/monster/coffin/right/2.png new file mode 100644 index 0000000..1669653 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/3.png b/2022-2d-shooter/graphics/monster/coffin/right/3.png new file mode 100644 index 0000000..b0a1970 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/4.png b/2022-2d-shooter/graphics/monster/coffin/right/4.png new file mode 100644 index 0000000..8a582d1 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/5.png b/2022-2d-shooter/graphics/monster/coffin/right/5.png new file mode 100644 index 0000000..9c9a0d5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/6.png b/2022-2d-shooter/graphics/monster/coffin/right/6.png new file mode 100644 index 0000000..4a6afd4 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/6.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/7.png b/2022-2d-shooter/graphics/monster/coffin/right/7.png new file mode 100644 index 0000000..b8ca992 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/7.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/8.png b/2022-2d-shooter/graphics/monster/coffin/right/8.png new file mode 100644 index 0000000..75ff09b Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/8.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right/9.png b/2022-2d-shooter/graphics/monster/coffin/right/9.png new file mode 100644 index 0000000..84917de Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right/9.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/0.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/0.png new file mode 100644 index 0000000..6d30e52 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/1.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/1.png new file mode 100644 index 0000000..0e98ffe Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/10.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/10.png new file mode 100644 index 0000000..bb6d0c5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/10.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/11.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/11.png new file mode 100644 index 0000000..4b01908 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/11.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/12.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/12.png new file mode 100644 index 0000000..9a327a1 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/12.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/13.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/13.png new file mode 100644 index 0000000..d7f44f5 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/13.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/2.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/2.png new file mode 100644 index 0000000..d7b1f2a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/3.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/3.png new file mode 100644 index 0000000..f0191c8 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/4.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/4.png new file mode 100644 index 0000000..1efa929 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/5.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/5.png new file mode 100644 index 0000000..abc8817 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/6.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/6.png new file mode 100644 index 0000000..f7436d4 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/6.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/7.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/7.png new file mode 100644 index 0000000..037a9b9 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/7.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/8.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/8.png new file mode 100644 index 0000000..adfedc7 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/8.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_attack/9.png b/2022-2d-shooter/graphics/monster/coffin/right_attack/9.png new file mode 100644 index 0000000..f329cab Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_attack/9.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_idle/0.png b/2022-2d-shooter/graphics/monster/coffin/right_idle/0.png new file mode 100644 index 0000000..6d9c7da Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_idle/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_idle/1.png b/2022-2d-shooter/graphics/monster/coffin/right_idle/1.png new file mode 100644 index 0000000..c0c829c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_idle/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_idle/2.png b/2022-2d-shooter/graphics/monster/coffin/right_idle/2.png new file mode 100644 index 0000000..484cf71 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_idle/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_idle/3.png b/2022-2d-shooter/graphics/monster/coffin/right_idle/3.png new file mode 100644 index 0000000..484cf71 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_idle/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_idle/4.png b/2022-2d-shooter/graphics/monster/coffin/right_idle/4.png new file mode 100644 index 0000000..c0c829c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_idle/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/right_idle/5.png b/2022-2d-shooter/graphics/monster/coffin/right_idle/5.png new file mode 100644 index 0000000..4a1fd1e Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/right_idle/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/0.png b/2022-2d-shooter/graphics/monster/coffin/up/0.png new file mode 100644 index 0000000..1e206b3 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/1.png b/2022-2d-shooter/graphics/monster/coffin/up/1.png new file mode 100644 index 0000000..278bef7 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/10.png b/2022-2d-shooter/graphics/monster/coffin/up/10.png new file mode 100644 index 0000000..829ed91 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/10.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/11.png b/2022-2d-shooter/graphics/monster/coffin/up/11.png new file mode 100644 index 0000000..7f08819 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/11.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/12.png b/2022-2d-shooter/graphics/monster/coffin/up/12.png new file mode 100644 index 0000000..7f08819 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/12.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/13.png b/2022-2d-shooter/graphics/monster/coffin/up/13.png new file mode 100644 index 0000000..2ca55ce Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/13.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/2.png b/2022-2d-shooter/graphics/monster/coffin/up/2.png new file mode 100644 index 0000000..23bc5fa Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/3.png b/2022-2d-shooter/graphics/monster/coffin/up/3.png new file mode 100644 index 0000000..60b7afa Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/4.png b/2022-2d-shooter/graphics/monster/coffin/up/4.png new file mode 100644 index 0000000..ea2ec23 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/5.png b/2022-2d-shooter/graphics/monster/coffin/up/5.png new file mode 100644 index 0000000..ea2ec23 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/6.png b/2022-2d-shooter/graphics/monster/coffin/up/6.png new file mode 100644 index 0000000..78d11e2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/6.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/7.png b/2022-2d-shooter/graphics/monster/coffin/up/7.png new file mode 100644 index 0000000..6ff4a53 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/7.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up/8.png b/2022-2d-shooter/graphics/monster/coffin/up/8.png new file mode 100644 index 0000000..354eda2 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up/8.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/0.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/0.png new file mode 100644 index 0000000..104ba5b Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/1.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/1.png new file mode 100644 index 0000000..625c6f8 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/10.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/10.png new file mode 100644 index 0000000..2fa4a3b Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/10.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/11.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/11.png new file mode 100644 index 0000000..6e55d2f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/11.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/12.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/12.png new file mode 100644 index 0000000..7d3411d Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/12.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/13.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/13.png new file mode 100644 index 0000000..a98d281 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/13.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/14.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/14.png new file mode 100644 index 0000000..3db3bcc Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/14.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/15.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/15.png new file mode 100644 index 0000000..3db3bcc Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/15.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/2.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/2.png new file mode 100644 index 0000000..f86c85c Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/3.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/3.png new file mode 100644 index 0000000..74d252e Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/4.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/4.png new file mode 100644 index 0000000..4464f1a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/5.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/5.png new file mode 100644 index 0000000..5c8cc47 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/5.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/6.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/6.png new file mode 100644 index 0000000..14bdf22 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/6.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/7.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/7.png new file mode 100644 index 0000000..8160007 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/7.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/8.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/8.png new file mode 100644 index 0000000..a7cf881 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/8.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_attack/9.png b/2022-2d-shooter/graphics/monster/coffin/up_attack/9.png new file mode 100644 index 0000000..f5caba8 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_attack/9.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_idle/0.png b/2022-2d-shooter/graphics/monster/coffin/up_idle/0.png new file mode 100644 index 0000000..f5ff25a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_idle/0.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_idle/1.png b/2022-2d-shooter/graphics/monster/coffin/up_idle/1.png new file mode 100644 index 0000000..d383cf7 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_idle/1.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_idle/2.png b/2022-2d-shooter/graphics/monster/coffin/up_idle/2.png new file mode 100644 index 0000000..9bea95f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_idle/2.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_idle/3.png b/2022-2d-shooter/graphics/monster/coffin/up_idle/3.png new file mode 100644 index 0000000..9bea95f Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_idle/3.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_idle/4.png b/2022-2d-shooter/graphics/monster/coffin/up_idle/4.png new file mode 100644 index 0000000..d383cf7 Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_idle/4.png differ diff --git a/2022-2d-shooter/graphics/monster/coffin/up_idle/5.png b/2022-2d-shooter/graphics/monster/coffin/up_idle/5.png new file mode 100644 index 0000000..f5ff25a Binary files /dev/null and b/2022-2d-shooter/graphics/monster/coffin/up_idle/5.png differ diff --git a/2022-2d-shooter/graphics/objects/bank.png b/2022-2d-shooter/graphics/objects/bank.png new file mode 100644 index 0000000..a219ddb Binary files /dev/null and b/2022-2d-shooter/graphics/objects/bank.png differ diff --git a/2022-2d-shooter/graphics/objects/cactus_1.png b/2022-2d-shooter/graphics/objects/cactus_1.png new file mode 100644 index 0000000..4b4c6f0 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/cactus_1.png differ diff --git a/2022-2d-shooter/graphics/objects/cactus_2.png b/2022-2d-shooter/graphics/objects/cactus_2.png new file mode 100644 index 0000000..847d281 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/cactus_2.png differ diff --git a/2022-2d-shooter/graphics/objects/cactus_3.png b/2022-2d-shooter/graphics/objects/cactus_3.png new file mode 100644 index 0000000..f4cf2aa Binary files /dev/null and b/2022-2d-shooter/graphics/objects/cactus_3.png differ diff --git a/2022-2d-shooter/graphics/objects/cactus_4.png b/2022-2d-shooter/graphics/objects/cactus_4.png new file mode 100644 index 0000000..0fdfebd Binary files /dev/null and b/2022-2d-shooter/graphics/objects/cactus_4.png differ diff --git a/2022-2d-shooter/graphics/objects/cacuts_5.png b/2022-2d-shooter/graphics/objects/cacuts_5.png new file mode 100644 index 0000000..1797a43 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/cacuts_5.png differ diff --git a/2022-2d-shooter/graphics/objects/dead_tree_1.png b/2022-2d-shooter/graphics/objects/dead_tree_1.png new file mode 100644 index 0000000..7b51d9e Binary files /dev/null and b/2022-2d-shooter/graphics/objects/dead_tree_1.png differ diff --git a/2022-2d-shooter/graphics/objects/dead_tree_2.png b/2022-2d-shooter/graphics/objects/dead_tree_2.png new file mode 100644 index 0000000..9fc3810 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/dead_tree_2.png differ diff --git a/2022-2d-shooter/graphics/objects/hotel.png b/2022-2d-shooter/graphics/objects/hotel.png new file mode 100644 index 0000000..4db551a Binary files /dev/null and b/2022-2d-shooter/graphics/objects/hotel.png differ diff --git a/2022-2d-shooter/graphics/objects/house.png b/2022-2d-shooter/graphics/objects/house.png new file mode 100644 index 0000000..99e7ba8 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/house.png differ diff --git a/2022-2d-shooter/graphics/objects/house_2.png b/2022-2d-shooter/graphics/objects/house_2.png new file mode 100644 index 0000000..26b3cfa Binary files /dev/null and b/2022-2d-shooter/graphics/objects/house_2.png differ diff --git a/2022-2d-shooter/graphics/objects/rock_1.png b/2022-2d-shooter/graphics/objects/rock_1.png new file mode 100644 index 0000000..31224d6 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/rock_1.png differ diff --git a/2022-2d-shooter/graphics/objects/rock_2.png b/2022-2d-shooter/graphics/objects/rock_2.png new file mode 100644 index 0000000..5966364 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/rock_2.png differ diff --git a/2022-2d-shooter/graphics/objects/rock_3.png b/2022-2d-shooter/graphics/objects/rock_3.png new file mode 100644 index 0000000..fba29f4 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/rock_3.png differ diff --git a/2022-2d-shooter/graphics/objects/sheriff.png b/2022-2d-shooter/graphics/objects/sheriff.png new file mode 100644 index 0000000..5e81562 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/sheriff.png differ diff --git a/2022-2d-shooter/graphics/objects/skull.png b/2022-2d-shooter/graphics/objects/skull.png new file mode 100644 index 0000000..9cf8dc0 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/skull.png differ diff --git a/2022-2d-shooter/graphics/objects/stump.png b/2022-2d-shooter/graphics/objects/stump.png new file mode 100644 index 0000000..a4cbdb4 Binary files /dev/null and b/2022-2d-shooter/graphics/objects/stump.png differ diff --git a/2022-2d-shooter/graphics/objects/stump_2.png b/2022-2d-shooter/graphics/objects/stump_2.png new file mode 100644 index 0000000..abda3ab Binary files /dev/null and b/2022-2d-shooter/graphics/objects/stump_2.png differ diff --git a/2022-2d-shooter/graphics/objects/tree.png b/2022-2d-shooter/graphics/objects/tree.png new file mode 100644 index 0000000..355088b Binary files /dev/null and b/2022-2d-shooter/graphics/objects/tree.png differ diff --git a/2022-2d-shooter/graphics/other/bg.png b/2022-2d-shooter/graphics/other/bg.png new file mode 100644 index 0000000..7c1e8c2 Binary files /dev/null and b/2022-2d-shooter/graphics/other/bg.png differ diff --git a/2022-2d-shooter/graphics/other/particle.png b/2022-2d-shooter/graphics/other/particle.png new file mode 100644 index 0000000..31027df Binary files /dev/null and b/2022-2d-shooter/graphics/other/particle.png differ diff --git a/2022-2d-shooter/graphics/player/down/0.png b/2022-2d-shooter/graphics/player/down/0.png new file mode 100644 index 0000000..f57ffb3 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down/0.png differ diff --git a/2022-2d-shooter/graphics/player/down/1.png b/2022-2d-shooter/graphics/player/down/1.png new file mode 100644 index 0000000..e867469 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down/1.png differ diff --git a/2022-2d-shooter/graphics/player/down/2.png b/2022-2d-shooter/graphics/player/down/2.png new file mode 100644 index 0000000..bab858d Binary files /dev/null and b/2022-2d-shooter/graphics/player/down/2.png differ diff --git a/2022-2d-shooter/graphics/player/down/3.png b/2022-2d-shooter/graphics/player/down/3.png new file mode 100644 index 0000000..0fe66ec Binary files /dev/null and b/2022-2d-shooter/graphics/player/down/3.png differ diff --git a/2022-2d-shooter/graphics/player/down/4.png b/2022-2d-shooter/graphics/player/down/4.png new file mode 100644 index 0000000..2ba3099 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down/4.png differ diff --git a/2022-2d-shooter/graphics/player/down/5.png b/2022-2d-shooter/graphics/player/down/5.png new file mode 100644 index 0000000..d7c4ad1 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down/5.png differ diff --git a/2022-2d-shooter/graphics/player/down/6.png b/2022-2d-shooter/graphics/player/down/6.png new file mode 100644 index 0000000..62835c5 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down/6.png differ diff --git a/2022-2d-shooter/graphics/player/down/7.png b/2022-2d-shooter/graphics/player/down/7.png new file mode 100644 index 0000000..8536c58 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down/7.png differ diff --git a/2022-2d-shooter/graphics/player/down_attack/0.png b/2022-2d-shooter/graphics/player/down_attack/0.png new file mode 100644 index 0000000..68a95b4 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_attack/0.png differ diff --git a/2022-2d-shooter/graphics/player/down_attack/1.png b/2022-2d-shooter/graphics/player/down_attack/1.png new file mode 100644 index 0000000..baaaeae Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_attack/1.png differ diff --git a/2022-2d-shooter/graphics/player/down_attack/2.png b/2022-2d-shooter/graphics/player/down_attack/2.png new file mode 100644 index 0000000..39999e3 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_attack/2.png differ diff --git a/2022-2d-shooter/graphics/player/down_attack/3.png b/2022-2d-shooter/graphics/player/down_attack/3.png new file mode 100644 index 0000000..497f279 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_attack/3.png differ diff --git a/2022-2d-shooter/graphics/player/down_attack/4.png b/2022-2d-shooter/graphics/player/down_attack/4.png new file mode 100644 index 0000000..08773af Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_attack/4.png differ diff --git a/2022-2d-shooter/graphics/player/down_attack/5.png b/2022-2d-shooter/graphics/player/down_attack/5.png new file mode 100644 index 0000000..0f4df0b Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_attack/5.png differ diff --git a/2022-2d-shooter/graphics/player/down_idle/0.png b/2022-2d-shooter/graphics/player/down_idle/0.png new file mode 100644 index 0000000..9cddbfa Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_idle/0.png differ diff --git a/2022-2d-shooter/graphics/player/down_idle/1.png b/2022-2d-shooter/graphics/player/down_idle/1.png new file mode 100644 index 0000000..5592668 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_idle/1.png differ diff --git a/2022-2d-shooter/graphics/player/down_idle/2.png b/2022-2d-shooter/graphics/player/down_idle/2.png new file mode 100644 index 0000000..6b79425 Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_idle/2.png differ diff --git a/2022-2d-shooter/graphics/player/down_idle/3.png b/2022-2d-shooter/graphics/player/down_idle/3.png new file mode 100644 index 0000000..921be7c Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_idle/3.png differ diff --git a/2022-2d-shooter/graphics/player/down_idle/4.png b/2022-2d-shooter/graphics/player/down_idle/4.png new file mode 100644 index 0000000..c1f543a Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_idle/4.png differ diff --git a/2022-2d-shooter/graphics/player/down_idle/5.png b/2022-2d-shooter/graphics/player/down_idle/5.png new file mode 100644 index 0000000..9cddbfa Binary files /dev/null and b/2022-2d-shooter/graphics/player/down_idle/5.png differ diff --git a/2022-2d-shooter/graphics/player/left/0.png b/2022-2d-shooter/graphics/player/left/0.png new file mode 100644 index 0000000..aba1b90 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left/0.png differ diff --git a/2022-2d-shooter/graphics/player/left/1.png b/2022-2d-shooter/graphics/player/left/1.png new file mode 100644 index 0000000..46c8127 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left/1.png differ diff --git a/2022-2d-shooter/graphics/player/left/2.png b/2022-2d-shooter/graphics/player/left/2.png new file mode 100644 index 0000000..f0b64f1 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left/2.png differ diff --git a/2022-2d-shooter/graphics/player/left/3.png b/2022-2d-shooter/graphics/player/left/3.png new file mode 100644 index 0000000..29bfc29 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left/3.png differ diff --git a/2022-2d-shooter/graphics/player/left/4.png b/2022-2d-shooter/graphics/player/left/4.png new file mode 100644 index 0000000..ce1912e Binary files /dev/null and b/2022-2d-shooter/graphics/player/left/4.png differ diff --git a/2022-2d-shooter/graphics/player/left/5.png b/2022-2d-shooter/graphics/player/left/5.png new file mode 100644 index 0000000..e2c23fb Binary files /dev/null and b/2022-2d-shooter/graphics/player/left/5.png differ diff --git a/2022-2d-shooter/graphics/player/left/6.png b/2022-2d-shooter/graphics/player/left/6.png new file mode 100644 index 0000000..4487310 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left/6.png differ diff --git a/2022-2d-shooter/graphics/player/left/7.png b/2022-2d-shooter/graphics/player/left/7.png new file mode 100644 index 0000000..889dda9 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left/7.png differ diff --git a/2022-2d-shooter/graphics/player/left_attack/0.png b/2022-2d-shooter/graphics/player/left_attack/0.png new file mode 100644 index 0000000..5740e69 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_attack/0.png differ diff --git a/2022-2d-shooter/graphics/player/left_attack/1.png b/2022-2d-shooter/graphics/player/left_attack/1.png new file mode 100644 index 0000000..8d42422 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_attack/1.png differ diff --git a/2022-2d-shooter/graphics/player/left_attack/2.png b/2022-2d-shooter/graphics/player/left_attack/2.png new file mode 100644 index 0000000..5c4795c Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_attack/2.png differ diff --git a/2022-2d-shooter/graphics/player/left_attack/3.png b/2022-2d-shooter/graphics/player/left_attack/3.png new file mode 100644 index 0000000..5a6ae36 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_attack/3.png differ diff --git a/2022-2d-shooter/graphics/player/left_attack/4.png b/2022-2d-shooter/graphics/player/left_attack/4.png new file mode 100644 index 0000000..4294753 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_attack/4.png differ diff --git a/2022-2d-shooter/graphics/player/left_attack/5.png b/2022-2d-shooter/graphics/player/left_attack/5.png new file mode 100644 index 0000000..6962acd Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_attack/5.png differ diff --git a/2022-2d-shooter/graphics/player/left_idle/0.png b/2022-2d-shooter/graphics/player/left_idle/0.png new file mode 100644 index 0000000..6962acd Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_idle/0.png differ diff --git a/2022-2d-shooter/graphics/player/left_idle/1.png b/2022-2d-shooter/graphics/player/left_idle/1.png new file mode 100644 index 0000000..70e46ac Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_idle/1.png differ diff --git a/2022-2d-shooter/graphics/player/left_idle/2.png b/2022-2d-shooter/graphics/player/left_idle/2.png new file mode 100644 index 0000000..753d9b6 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_idle/2.png differ diff --git a/2022-2d-shooter/graphics/player/left_idle/3.png b/2022-2d-shooter/graphics/player/left_idle/3.png new file mode 100644 index 0000000..5ef63d1 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_idle/3.png differ diff --git a/2022-2d-shooter/graphics/player/left_idle/4.png b/2022-2d-shooter/graphics/player/left_idle/4.png new file mode 100644 index 0000000..24a4ea0 Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_idle/4.png differ diff --git a/2022-2d-shooter/graphics/player/left_idle/5.png b/2022-2d-shooter/graphics/player/left_idle/5.png new file mode 100644 index 0000000..6962acd Binary files /dev/null and b/2022-2d-shooter/graphics/player/left_idle/5.png differ diff --git a/2022-2d-shooter/graphics/player/right/0.png b/2022-2d-shooter/graphics/player/right/0.png new file mode 100644 index 0000000..c586ec2 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right/0.png differ diff --git a/2022-2d-shooter/graphics/player/right/1.png b/2022-2d-shooter/graphics/player/right/1.png new file mode 100644 index 0000000..138344b Binary files /dev/null and b/2022-2d-shooter/graphics/player/right/1.png differ diff --git a/2022-2d-shooter/graphics/player/right/2.png b/2022-2d-shooter/graphics/player/right/2.png new file mode 100644 index 0000000..591222e Binary files /dev/null and b/2022-2d-shooter/graphics/player/right/2.png differ diff --git a/2022-2d-shooter/graphics/player/right/3.png b/2022-2d-shooter/graphics/player/right/3.png new file mode 100644 index 0000000..a272a57 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right/3.png differ diff --git a/2022-2d-shooter/graphics/player/right/4.png b/2022-2d-shooter/graphics/player/right/4.png new file mode 100644 index 0000000..a0e1067 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right/4.png differ diff --git a/2022-2d-shooter/graphics/player/right/5.png b/2022-2d-shooter/graphics/player/right/5.png new file mode 100644 index 0000000..27578e3 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right/5.png differ diff --git a/2022-2d-shooter/graphics/player/right/6.png b/2022-2d-shooter/graphics/player/right/6.png new file mode 100644 index 0000000..eae9939 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right/6.png differ diff --git a/2022-2d-shooter/graphics/player/right/7.png b/2022-2d-shooter/graphics/player/right/7.png new file mode 100644 index 0000000..52e8dd2 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right/7.png differ diff --git a/2022-2d-shooter/graphics/player/right_attack/0.png b/2022-2d-shooter/graphics/player/right_attack/0.png new file mode 100644 index 0000000..11b0787 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_attack/0.png differ diff --git a/2022-2d-shooter/graphics/player/right_attack/1.png b/2022-2d-shooter/graphics/player/right_attack/1.png new file mode 100644 index 0000000..d3ebca7 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_attack/1.png differ diff --git a/2022-2d-shooter/graphics/player/right_attack/2.png b/2022-2d-shooter/graphics/player/right_attack/2.png new file mode 100644 index 0000000..23c7de8 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_attack/2.png differ diff --git a/2022-2d-shooter/graphics/player/right_attack/3.png b/2022-2d-shooter/graphics/player/right_attack/3.png new file mode 100644 index 0000000..38ace6f Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_attack/3.png differ diff --git a/2022-2d-shooter/graphics/player/right_attack/4.png b/2022-2d-shooter/graphics/player/right_attack/4.png new file mode 100644 index 0000000..545c3c0 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_attack/4.png differ diff --git a/2022-2d-shooter/graphics/player/right_attack/5.png b/2022-2d-shooter/graphics/player/right_attack/5.png new file mode 100644 index 0000000..e3a8965 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_attack/5.png differ diff --git a/2022-2d-shooter/graphics/player/right_idle/0.png b/2022-2d-shooter/graphics/player/right_idle/0.png new file mode 100644 index 0000000..e3a8965 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_idle/0.png differ diff --git a/2022-2d-shooter/graphics/player/right_idle/1.png b/2022-2d-shooter/graphics/player/right_idle/1.png new file mode 100644 index 0000000..b309a65 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_idle/1.png differ diff --git a/2022-2d-shooter/graphics/player/right_idle/2.png b/2022-2d-shooter/graphics/player/right_idle/2.png new file mode 100644 index 0000000..495b7f1 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_idle/2.png differ diff --git a/2022-2d-shooter/graphics/player/right_idle/3.png b/2022-2d-shooter/graphics/player/right_idle/3.png new file mode 100644 index 0000000..cd4f18e Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_idle/3.png differ diff --git a/2022-2d-shooter/graphics/player/right_idle/4.png b/2022-2d-shooter/graphics/player/right_idle/4.png new file mode 100644 index 0000000..8a8cf4e Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_idle/4.png differ diff --git a/2022-2d-shooter/graphics/player/right_idle/5.png b/2022-2d-shooter/graphics/player/right_idle/5.png new file mode 100644 index 0000000..e3a8965 Binary files /dev/null and b/2022-2d-shooter/graphics/player/right_idle/5.png differ diff --git a/2022-2d-shooter/graphics/player/up/0.png b/2022-2d-shooter/graphics/player/up/0.png new file mode 100644 index 0000000..fecbcdd Binary files /dev/null and b/2022-2d-shooter/graphics/player/up/0.png differ diff --git a/2022-2d-shooter/graphics/player/up/1.png b/2022-2d-shooter/graphics/player/up/1.png new file mode 100644 index 0000000..8aa04b2 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up/1.png differ diff --git a/2022-2d-shooter/graphics/player/up/2.png b/2022-2d-shooter/graphics/player/up/2.png new file mode 100644 index 0000000..93d27e6 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up/2.png differ diff --git a/2022-2d-shooter/graphics/player/up/3.png b/2022-2d-shooter/graphics/player/up/3.png new file mode 100644 index 0000000..f688cc1 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up/3.png differ diff --git a/2022-2d-shooter/graphics/player/up/4.png b/2022-2d-shooter/graphics/player/up/4.png new file mode 100644 index 0000000..1a2df05 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up/4.png differ diff --git a/2022-2d-shooter/graphics/player/up/5.png b/2022-2d-shooter/graphics/player/up/5.png new file mode 100644 index 0000000..06a9730 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up/5.png differ diff --git a/2022-2d-shooter/graphics/player/up/6.png b/2022-2d-shooter/graphics/player/up/6.png new file mode 100644 index 0000000..907aee4 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up/6.png differ diff --git a/2022-2d-shooter/graphics/player/up/7.png b/2022-2d-shooter/graphics/player/up/7.png new file mode 100644 index 0000000..7868c43 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up/7.png differ diff --git a/2022-2d-shooter/graphics/player/up_attack/0.png b/2022-2d-shooter/graphics/player/up_attack/0.png new file mode 100644 index 0000000..db399f3 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_attack/0.png differ diff --git a/2022-2d-shooter/graphics/player/up_attack/1.png b/2022-2d-shooter/graphics/player/up_attack/1.png new file mode 100644 index 0000000..9a0f165 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_attack/1.png differ diff --git a/2022-2d-shooter/graphics/player/up_attack/2.png b/2022-2d-shooter/graphics/player/up_attack/2.png new file mode 100644 index 0000000..b521998 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_attack/2.png differ diff --git a/2022-2d-shooter/graphics/player/up_idle/0.png b/2022-2d-shooter/graphics/player/up_idle/0.png new file mode 100644 index 0000000..db399f3 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_idle/0.png differ diff --git a/2022-2d-shooter/graphics/player/up_idle/1.png b/2022-2d-shooter/graphics/player/up_idle/1.png new file mode 100644 index 0000000..bd03f3d Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_idle/1.png differ diff --git a/2022-2d-shooter/graphics/player/up_idle/2.png b/2022-2d-shooter/graphics/player/up_idle/2.png new file mode 100644 index 0000000..d852719 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_idle/2.png differ diff --git a/2022-2d-shooter/graphics/player/up_idle/3.png b/2022-2d-shooter/graphics/player/up_idle/3.png new file mode 100644 index 0000000..3d47bd9 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_idle/3.png differ diff --git a/2022-2d-shooter/graphics/player/up_idle/4.png b/2022-2d-shooter/graphics/player/up_idle/4.png new file mode 100644 index 0000000..b41f871 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_idle/4.png differ diff --git a/2022-2d-shooter/graphics/player/up_idle/5.png b/2022-2d-shooter/graphics/player/up_idle/5.png new file mode 100644 index 0000000..db399f3 Binary files /dev/null and b/2022-2d-shooter/graphics/player/up_idle/5.png differ diff --git a/2022-2d-shooter/graphics/tilesets/fence.png b/2022-2d-shooter/graphics/tilesets/fence.png new file mode 100644 index 0000000..bb889ff Binary files /dev/null and b/2022-2d-shooter/graphics/tilesets/fence.png differ diff --git a/2022-2d-shooter/graphics/tilesets/ground.png b/2022-2d-shooter/graphics/tilesets/ground.png new file mode 100644 index 0000000..9f28a4c Binary files /dev/null and b/2022-2d-shooter/graphics/tilesets/ground.png differ diff --git a/2022-2d-shooter/sound/bullet.wav b/2022-2d-shooter/sound/bullet.wav new file mode 100644 index 0000000..9671ea4 Binary files /dev/null and b/2022-2d-shooter/sound/bullet.wav differ diff --git a/2022-2d-shooter/sound/hit.mp3 b/2022-2d-shooter/sound/hit.mp3 new file mode 100644 index 0000000..27ada35 Binary files /dev/null and b/2022-2d-shooter/sound/hit.mp3 differ diff --git a/2022-2d-shooter/sound/music.mp3 b/2022-2d-shooter/sound/music.mp3 new file mode 100644 index 0000000..7fbac57 Binary files /dev/null and b/2022-2d-shooter/sound/music.mp3 differ diff --git a/2022-asteroids/README.md b/2022-asteroids/README.md new file mode 100644 index 0000000..ad8d05c --- /dev/null +++ b/2022-asteroids/README.md @@ -0,0 +1,58 @@ + +# Asteroids + +## Overview +Asteroids game is built using the [Pygame](https://www.pygame.org/) library, which provides tools for creating 2D games in Python. + +## Prerequisites +To run the game, ensure you have the following installed on your system: + +- **Python 3.13 or later**: Install the latest version of Python from the [official Python website](https://www.python.org/). +- **Pygame**: The game relies on Pygame for graphics and input handling. + +## Setting Up the Environment +To set up the game environment, follow these steps: + +1. **Create a virtual environment:** + ```bash + python3 -m venv venv + ``` + This command creates a virtual environment in the `venv` directory. + +2. **Activate the virtual environment:** + On macOS or Linux: + ```bash + source venv/bin/activate + ``` + On Windows: + ```cmd + venv\Scripts\activate + ``` + +3. **Install Pygame:** + With the virtual environment activated, install Pygame: + ```bash + pip3 install pygame + ``` + +## Running the Game +To start the game, ensure the virtual environment is activated, then run the following command: + +```bash +python3 asteroids.py +``` + +## Troubleshooting +- Ensure the virtual environment is activated before running the game or installing dependencies. +- If you encounter issues with Pygame installation, ensure your Python version is compatible with the latest Pygame release. +- Check that all game files, including `asteroids.py`, are in the correct directory. + +## License +This project is distributed under the MIT License. See the `LICENSE` file for details. + +## Contributions +Contributions are welcome! Feel free to fork the repository and submit pull requests. + +## Credits +- **Developer:** Joaquin Gottlebe +- **Built With:** Pygame and Python diff --git a/2022-asteroids/asteroids.py b/2022-asteroids/asteroids.py new file mode 100644 index 0000000..4dd7466 --- /dev/null +++ b/2022-asteroids/asteroids.py @@ -0,0 +1,187 @@ +import pygame +import sys +from random import randint, uniform + + +class Ship(pygame.sprite.Sprite): + def __init__(self, groups): + super().__init__(groups) + self.image = pygame.image.load('ship.png').convert_alpha() + self.rect = self.image.get_rect(center=(WINDOW_WIDTH / 2, WINDOW_HEIGHT / 2)) + self.mask = pygame.mask.from_surface(self.image) + + self.can_shoot = True + self.shoot_time = None + + self.laser_sound = pygame.mixer.Sound('laser.ogg') + + def laser_timer(self): + if not self.can_shoot: + current_time = pygame.time.get_ticks() + if current_time - self.shoot_time > 500: + self.can_shoot = True + + def input_position(self): + pos = pygame.mouse.get_pos() + self.rect.center = pos + + + def laser_shoot(self): + if pygame.mouse.get_pressed()[0] and self.can_shoot: + self.can_shoot = False + self.shoot_time = pygame.time.get_ticks() + Laser(self.rect.midtop, laser_group) + self.laser_sound.play().set_volume(0.1) + + def meteor_collision(self): + if pygame.sprite.spritecollide(self, meteor_group, False, pygame.sprite.collide_mask): + pygame.quit() + sys.exit() + + def update(self): + self.laser_timer() + self.laser_shoot() + self.input_position() + self.meteor_collision() + + +class Laser(pygame.sprite.Sprite): + def __init__(self, pos, groups): + super().__init__(groups) + self.image = pygame.image.load('laser.png').convert_alpha() + self.rect = self.image.get_rect(midbottom=pos) + self.mask = pygame.mask.from_surface(self.image) + + self.pos = pygame.math.Vector2(self.rect.topleft) + self.direction = pygame.math.Vector2(0, -1) + self.speed = 600 + + self.explosio_sound = pygame.mixer.Sound('explosion.wav') + + def meteor_collision(self): + if pygame.sprite.spritecollide(self, meteor_group, True, pygame.sprite.collide_mask): + self.kill() + self.explosio_sound.play().set_volume(0.1) + + def update(self): + self.pos += self.direction * self.speed * dt + self.rect.topleft = (round(self.pos.x), round(self.pos.y)) + self.meteor_collision() + + if self.rect.bottom < 0: + self.kill() + + +class Meteor(pygame.sprite.Sprite): + + def __init__(self, pos, groups): + # basic setup + super().__init__(groups) + + # surface + meteor_surf = pygame.image.load('meteor.png').convert_alpha() + meteor_size = pygame.math.Vector2(meteor_surf.get_size()) * uniform(0.5,2) + self.scaled_surf = pygame.transform.scale(meteor_surf, meteor_size) + self.image = self.scaled_surf + + # rectangle + self.rect = self.image.get_rect(center=pos) + self.mask = pygame.mask.from_surface(self.image) + + + # positioning + self.pos = pygame.math.Vector2(self.rect.topleft) + self.direction = pygame.math.Vector2(uniform(-0.5, 0.5), 1) + self.speed = randint(400, 600) + + # rotation + self.rotation = 0 + self.rotation_speed = randint(-20,20) + + def rotate(self): + self.rotation += self.rotation_speed * dt + rotated_surf = pygame.transform.rotozoom(self.scaled_surf, self.rotation,1 ) + self.image = rotated_surf + self.rect = self.image.get_rect(center=self.rect.center) + self.mask = pygame.mask.from_surface(self.image) + + + def update(self): + self.pos += self.direction * self.speed * dt + self.rect.topleft = (round(self.pos.x), round(self.pos.y)) + self.rotate() + + if self.rect.top > WINDOW_HEIGHT: + self.kill() + + +class Score: + def __init__(self): + self.font = pygame.font.Font('subatomic.ttf',50) + + def display(self): + score_text = f'Score: {pygame.time.get_ticks() // 1000}' + text_surf = self.font.render(score_text, True, (255,255,255)) + text_rect = text_surf.get_rect(midbottom=(WINDOW_WIDTH / 2, WINDOW_HEIGHT - 80)) + display_surface.blit(text_surf,text_rect) + pygame.draw.rect(display_surface, + (255,255,255), + text_rect.inflate(30,30), + width=8, + border_radius=5) + + +# basic setup +pygame.init() +WINDOW_WIDTH, WINDOW_HEIGHT = 1280,720 +display_surface = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) +pygame.display.set_caption('Space shooter') +clock = pygame.time.Clock() + +# background +background_surf = pygame.image.load('background.png').convert() + +# sprite groups +spaceship_group = pygame.sprite.GroupSingle() +laser_group = pygame.sprite.Group() +meteor_group = pygame.sprite.Group() +score = Score() + +music = pygame.mixer.Sound('music.wav').play(loops = -1).set_volume(0.01) + +# sprite creation +ship = Ship(spaceship_group) + +# timer +meteor_timer = pygame.event.custom_type() +pygame.time.set_timer(meteor_timer, 200) + + +# game loop +while True: + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + + if event.type == meteor_timer: + meteor_y_pos = randint(-150, -50) + meteor_x_pos = randint(-100, WINDOW_WIDTH + 100) + Meteor((meteor_x_pos, meteor_y_pos), groups=meteor_group) + + dt = clock.tick() / 1000 + + display_surface.blit(background_surf, (0, 0)) + + spaceship_group.update() + laser_group.update() + meteor_group.update() + + score.display() + + spaceship_group.draw(display_surface) + laser_group.draw(display_surface) + meteor_group.draw(display_surface) + + pygame.display.update() diff --git a/2022-asteroids/background.png b/2022-asteroids/background.png new file mode 100644 index 0000000..3f588f8 Binary files /dev/null and b/2022-asteroids/background.png differ diff --git a/2022-asteroids/explosion.wav b/2022-asteroids/explosion.wav new file mode 100644 index 0000000..a5322b1 Binary files /dev/null and b/2022-asteroids/explosion.wav differ diff --git a/2022-asteroids/icon.icns b/2022-asteroids/icon.icns new file mode 100644 index 0000000..1aee799 Binary files /dev/null and b/2022-asteroids/icon.icns differ diff --git a/2022-asteroids/laser.ogg b/2022-asteroids/laser.ogg new file mode 100644 index 0000000..9d27da6 Binary files /dev/null and b/2022-asteroids/laser.ogg differ diff --git a/2022-asteroids/laser.png b/2022-asteroids/laser.png new file mode 100644 index 0000000..b12fcd5 Binary files /dev/null and b/2022-asteroids/laser.png differ diff --git a/2022-asteroids/meteor.png b/2022-asteroids/meteor.png new file mode 100644 index 0000000..31e06a4 Binary files /dev/null and b/2022-asteroids/meteor.png differ diff --git a/2022-asteroids/music.wav b/2022-asteroids/music.wav new file mode 100644 index 0000000..c0766b4 Binary files /dev/null and b/2022-asteroids/music.wav differ diff --git a/2022-asteroids/ship.png b/2022-asteroids/ship.png new file mode 100644 index 0000000..3902283 Binary files /dev/null and b/2022-asteroids/ship.png differ diff --git a/2022-asteroids/subatomic.ttf b/2022-asteroids/subatomic.ttf new file mode 100644 index 0000000..4771a3b Binary files /dev/null and b/2022-asteroids/subatomic.ttf differ diff --git a/2022-frogger/README.md b/2022-frogger/README.md new file mode 100644 index 0000000..ea64447 --- /dev/null +++ b/2022-frogger/README.md @@ -0,0 +1,58 @@ + +# Frogger + +## Overview +This Frogger game is built using the [Pygame](https://www.pygame.org/) library, which is ideal for creating 2D games in Python. + +## Prerequisites +To run the game, ensure you have the following installed on your system: + +- **Python 3.13 or later**: Install the latest version of Python from the [official Python website](https://www.python.org/). +- **Pygame**: The game relies on Pygame for graphical rendering, input handling, and sound. + +## Setting Up the Environment +Follow these steps to set up the game environment: + +1. **Create a virtual environment:** + ```bash + python3 -m venv venv + ``` + This will create a virtual environment in the `venv` directory. + +2. **Activate the virtual environment:** + On macOS or Linux: + ```bash + source venv/bin/activate + ``` + On Windows: + ```cmd + venv\Scriptsctivate + ``` + +3. **Install Pygame:** + With the virtual environment activated, install Pygame: + ```bash + pip3 install pygame + ``` + +## Running the Game +To start the game, activate the virtual environment and run the following command: + +```bash +python3 code/main.py +``` + +## Troubleshooting +- Ensure the virtual environment is activated before running the game or installing dependencies. +- If you encounter issues with Pygame installation, confirm your Python version is compatible with the latest Pygame release. +- Verify that all necessary game files, including `code/main.py`, are in the correct directory. + +## License +This project is distributed under the MIT License. See the `LICENSE` file for details. + +## Contributions +Contributions are welcome! Fork the repository, make your changes, and submit a pull request. + +## Credits +- **Developer:** Joaquin Gottlebe +- **Built With:** Pygame and Python diff --git a/2022-frogger/audio/music 2.mp3 b/2022-frogger/audio/music 2.mp3 new file mode 100644 index 0000000..b7d4d29 Binary files /dev/null and b/2022-frogger/audio/music 2.mp3 differ diff --git a/2022-frogger/audio/music.mp3 b/2022-frogger/audio/music.mp3 new file mode 100644 index 0000000..b7d4d29 Binary files /dev/null and b/2022-frogger/audio/music.mp3 differ diff --git a/2022-frogger/code/car.py b/2022-frogger/code/car.py new file mode 100644 index 0000000..53a972c --- /dev/null +++ b/2022-frogger/code/car.py @@ -0,0 +1,37 @@ +import pygame +from os import walk +from random import choice + +class Car(pygame.sprite.Sprite): + def __init__(self, pos, groups): + super().__init__(groups) + + self.name = 'car' + + # image + for _, _, img_list in walk('../graphics/cars'): + car_name = choice(img_list) + self.image = pygame.image.load('../graphics/cars/'+car_name).convert_alpha() + self.rect = self.image.get_rect(center = pos) + + # float based movement + self.pos = pygame.math.Vector2(self.rect.center) + + if pos[0] < 200: + self.direction = pygame.math.Vector2(1,0) + + else: + self.direction = pygame.math.Vector2(-1,0) + self.image = pygame.transform.flip(self.image, True, False) + + self.speed = 300 + self.hitbox = self.rect.inflate(0, -self.rect.height / 2) + + + def update(self, dt): + self.pos += self.direction * self.speed * dt + self.hitbox.center = (round(self.pos.x),round(self.pos.y)) + self.rect.center = self.hitbox.center + + if not -200 < self.rect.x < 3400: + self.kill() diff --git a/2022-frogger/code/frogger.sublime-workspace b/2022-frogger/code/frogger.sublime-workspace new file mode 100644 index 0000000..a96d340 --- /dev/null +++ b/2022-frogger/code/frogger.sublime-workspace @@ -0,0 +1,280 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "s", + "ship_rect" + ], + [ + "te", + "text_rect" + ], + [ + "shi", + "ship_rect" + ], + [ + "sh", + "ship_y_pos" + ], + [ + "ship", + "ship_y_pos" + ], + [ + "w", + "WINDOW_WIDTH" + ], + [ + "dis", + "display_surface" + ], + [ + "sco", + "scorpion_health" + ], + [ + "so", + "sorted_comp_num" + ], + [ + "sorte", + "sorted_comp_name" + ] + ] + }, + "buffers": + [ + ], + "build_system": "", + "build_system_choices": + [ + [ + [ + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ] + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ] + ] + ], + "build_varint": "", + "command_palette": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + [ + "git", + "Git: Init" + ], + [ + "install", + "Package Control: Install Package" + ], + [ + "python", + "Build With: Python" + ], + [ + "mar", + "Markdown Preview: Save to HTML" + ], + [ + "mark", + "Markdown Preview: Save to HTML" + ], + [ + "markd", + "Markdown Preview: Save to HTML" + ], + [ + "markdown", + "Markdown Preview: Save to HTML" + ], + [ + "Markdown", + "Markdown Preview: Preview in Browser" + ], + [ + "markdwon extende", + "Set Syntax: Markdown Extended" + ], + [ + "package", + "Package Control: List Packages" + ], + [ + "insta", + "Package Control: Install Package" + ], + [ + "markdownpre", + "Markdown Preview: Preview in Browser" + ] + ], + "width": 0.0 + }, + "console": + { + "height": 0.0, + "history": + [ + ] + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "file_history": + [ + "/Users/huaqo/PycharmProjects/Frogger/code/main.py", + "/Users/huaqo/Desktop/website.html", + "/Users/huaqo/Desktop/Praktikumsbericht", + "/Users/huaqo/Library/Mobile Documents/com~apple~CloudDocs/Desktop/preamble.tex", + "/Users/huaqo/Library/Mobile Documents/com~apple~CloudDocs/Home/Hobbys/Programmieren/Python/Learn Python by making games/5. Data Handling/test.txt", + "/Users/huaqo/Desktop/paper.html" + ], + "find": + { + "height": 41.0 + }, + "find_in_files": + { + "height": 0.0, + "where_history": + [ + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + ], + "highlight": true, + "in_selection": false, + "preserve_case": false, + "regex": false, + "replace_history": + [ + ], + "reverse": false, + "scrollbar_highlights": true, + "show_context": true, + "use_buffer2": true, + "use_gitignore": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "sheets": + [ + ] + } + ], + "incremental_find": + { + "height": 29.0 + }, + "input": + { + "height": 33.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": true, + "output.exec": + { + "height": 243.0 + }, + "output.find_results": + { + "height": 0.0 + }, + "pinned_build_system": "", + "project": "frogger.sublime-project", + "replace": + { + "height": 54.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_project": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_symbol": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "selected_group": 0, + "settings": + { + }, + "show_minimap": false, + "show_open_files": true, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 150.0, + "status_bar_visible": false, + "template_settings": + { + } +} diff --git a/2022-frogger/code/main.py b/2022-frogger/code/main.py new file mode 100644 index 0000000..78041a8 --- /dev/null +++ b/2022-frogger/code/main.py @@ -0,0 +1,97 @@ +import pygame, sys +from settings import * +from player import Player +from car import Car +from random import choice, randint +from sprite import SimpleSprite, LongSprite + +class AllSprites(pygame.sprite.Group): + + def __init__(self): + super().__init__() + self.offset = pygame.math.Vector2() + self.bg = pygame.image.load('../graphics/main/map.png').convert() + self.fg = pygame.image.load('../graphics/main/overlay.png').convert_alpha() + + def customize_draw(self): + + self.offset.x = player.rect.centerx - WINDOW_WIDTH / 2 + self.offset.y = player.rect.centery - WINDOW_HEIGHT / 2 + + display_surface.blit(self.bg,-self.offset) + + for sprite in sorted(self.sprites(), key = lambda sprite: sprite.rect.centery): + offset_pos = sprite.rect.topleft - self.offset + display_surface.blit(sprite.image, offset_pos) + + display_surface.blit(self.fg,-self.offset) + + +# basic setup +pygame.init() +display_surface = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) +pygame.display.set_caption('Frogger') +clock = pygame.time.Clock() + +# groups +all_sprites = AllSprites() +obstacle_sprites = pygame.sprite.Group() + +# sprites +player = Player((2062,3274),all_sprites,obstacle_sprites) + +# car timer +car_timer = pygame.event.custom_type() +pygame.time.set_timer(car_timer,50) +pos_list = [] + +# font +score_text = 'Du hast es geschaft, super!' +font = pygame.font.Font(None,50) +text_surf = font.render(score_text, True, 'White') +text_rect = text_surf.get_rect(center = (WINDOW_WIDTH / 2, WINDOW_HEIGHT / 2)) + +# sprite setup +for file_name,pos_list in SIMPLE_OBJECTS.items(): + surf = pygame.image.load(f'../graphics/objects/simple/{file_name}.png').convert_alpha() + for pos in pos_list: + SimpleSprite(surf, pos, [all_sprites,obstacle_sprites]) + +for file_name,pos_list in LONG_OBJECTS.items(): + surf = pygame.image.load(f'../graphics/objects/long/{file_name}.png').convert_alpha() + for pos in pos_list: + LongSprite(surf, pos, [all_sprites,obstacle_sprites]) + +# game loop +while True: + +# event loop + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + if event.type == car_timer: + random_pos = choice(CAR_START_POSITIONS) + if random_pos not in pos_list: + pos_list.append(random_pos) + pos = (random_pos[0],random_pos[1] + randint(-8,8)) + Car(pos,[all_sprites,obstacle_sprites]) + if len(pos_list) >5: + del pos_list[0] + + # delta time + dt = clock.tick() / 1000 + + + if player.pos.y >= 1180: + # update + all_sprites.update(dt) + + # draw + all_sprites.customize_draw() + else: + display_surface.fill('teal') + display_surface.blit(text_surf,text_rect) + + # update the display surface -> drawing the frame + pygame.display.update() diff --git a/2022-frogger/code/main.sublime-workspace b/2022-frogger/code/main.sublime-workspace new file mode 100644 index 0000000..db6d8b5 --- /dev/null +++ b/2022-frogger/code/main.sublime-workspace @@ -0,0 +1,259 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "s", + "ship_rect" + ], + [ + "te", + "text_rect" + ], + [ + "shi", + "ship_rect" + ], + [ + "sh", + "ship_y_pos" + ], + [ + "ship", + "ship_y_pos" + ], + [ + "w", + "WINDOW_WIDTH" + ], + [ + "dis", + "display_surface" + ], + [ + "sco", + "scorpion_health" + ], + [ + "so", + "sorted_comp_num" + ], + [ + "sorte", + "sorted_comp_name" + ] + ] + }, + "buffers": + [ + ], + "build_system": "", + "build_system_choices": + [ + ], + "build_varint": "", + "command_palette": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + [ + "git", + "Git: Init" + ], + [ + "install", + "Package Control: Install Package" + ], + [ + "python", + "Build With: Python" + ], + [ + "mar", + "Markdown Preview: Save to HTML" + ], + [ + "mark", + "Markdown Preview: Save to HTML" + ], + [ + "markd", + "Markdown Preview: Save to HTML" + ], + [ + "markdown", + "Markdown Preview: Save to HTML" + ], + [ + "Markdown", + "Markdown Preview: Preview in Browser" + ], + [ + "markdwon extende", + "Set Syntax: Markdown Extended" + ], + [ + "package", + "Package Control: List Packages" + ], + [ + "insta", + "Package Control: Install Package" + ], + [ + "markdownpre", + "Markdown Preview: Preview in Browser" + ] + ], + "width": 0.0 + }, + "console": + { + "height": 0.0, + "history": + [ + ] + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "file_history": + [ + "/Users/huaqo/Desktop/website.html", + "/Users/huaqo/Desktop/Praktikumsbericht", + "/Users/huaqo/Library/Mobile Documents/com~apple~CloudDocs/Desktop/preamble.tex", + "/Users/huaqo/Library/Mobile Documents/com~apple~CloudDocs/Home/Hobbys/Programmieren/Python/Learn Python by making games/5. Data Handling/test.txt", + "/Users/huaqo/Desktop/paper.html" + ], + "find": + { + "height": 41.0 + }, + "find_in_files": + { + "height": 0.0, + "where_history": + [ + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + ], + "highlight": true, + "in_selection": false, + "preserve_case": false, + "regex": false, + "replace_history": + [ + ], + "reverse": false, + "scrollbar_highlights": true, + "show_context": true, + "use_buffer2": true, + "use_gitignore": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "sheets": + [ + ] + } + ], + "incremental_find": + { + "height": 29.0 + }, + "input": + { + "height": 33.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": true, + "output.find_results": + { + "height": 0.0 + }, + "pinned_build_system": "", + "project": "main.sublime-project", + "replace": + { + "height": 54.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_project": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_symbol": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "selected_group": 0, + "settings": + { + }, + "show_minimap": false, + "show_open_files": true, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 150.0, + "status_bar_visible": false, + "template_settings": + { + } +} diff --git a/2022-frogger/code/player.py b/2022-frogger/code/player.py new file mode 100644 index 0000000..4d8872e --- /dev/null +++ b/2022-frogger/code/player.py @@ -0,0 +1,145 @@ +import pygame, sys +from os import walk + +class Player(pygame.sprite.Sprite): + def __init__(self, pos, groups, collision_sprites): + super().__init__(groups) + + # image + self.import_assets() + self.frame_index = 0 + self.status = 'up' + # self.image = self.animation[self.frame_index] + self.image = self.animations[self.status][self.frame_index] + self.rect = self.image.get_rect(center = pos) + + # float based movement + self.pos = pygame.math.Vector2(self.rect.center) + self.direction = pygame.math.Vector2() + self.speed = 200 + + # collisions + self.collision_sprites = collision_sprites + self.hitbox = self.rect.inflate(0, -self.rect.height / 2) + + def collision(self,direction): + + if direction == 'horizontal': + for sprite in self.collision_sprites.sprites(): + if sprite.hitbox.colliderect(self.hitbox): + if hasattr(sprite,'name') and sprite.name == 'car': + pygame.quit + sys.exit + + if self.direction.x > 0: #moving right + self.hitbox.right = sprite.hitbox.left + self.rect.centerx = self.hitbox.centerx + self.pos.x = self.hitbox.centerx + if self.direction.x < 0: #moving right + self.hitbox.left = sprite.hitbox.right + self.rect.centerx = self.hitbox.centerx + self.pos.x = self.hitbox.centerx + + else: + for sprite in self.collision_sprites.sprites(): + if sprite.hitbox.colliderect(self.hitbox): + if hasattr(sprite,'name') and sprite.name == 'car': + pygame.quit + sys.exit + + if self.direction.y > 0: # moving down + self.hitbox.bottom = sprite.hitbox.top + self.rect.centery = self.hitbox.centery + self.pos.y = self.hitbox.centery + if self.direction.y < 0: # moving up + self.hitbox.top = sprite.hitbox.bottom + self.rect.centery = self.hitbox.centery + self.pos.y = self.hitbox.centery + + def import_assets(self): + self.animations = {} + for index, folder in enumerate(walk('../graphics/player')): + if index == 0: + for name in folder[1]: + self.animations[name] = [] + else: + for file_name in sorted(folder[2]): + path = folder[0].replace('\\', '/') + '/' + file_name + surf = pygame.image.load(path).convert_alpha() + key = folder[0].replace('\\', '/').split('/')[-1] + self.animations[key].append(surf) + + def move(self,dt): + + # normalize a vector -> the length of a vector is going to be 1 + if self.direction.magnitude() != 0: + self.direction = self.direction.normalize() + + # vertical movement + collision + self.pos.y += self.direction.y * self.speed * dt + self.hitbox.centery = round(self.pos.y) + self.rect.centery = self.hitbox.centery + self.collision('vertical') + + # horizontal movement + collision + self.pos.x += self.direction.x * self.speed * dt + self.hitbox.centerx = round(self.pos.x) + self.rect.centerx = self.hitbox.centerx + self.collision('horizontal') + + def input(self): + keys = pygame.key.get_pressed() + + # horizontal input + if keys[pygame.K_RIGHT]: + self.direction.x = 1 + self.status = 'right' + elif keys[pygame.K_LEFT]: + self.direction.x = -1 + self.status = 'left' + else: + self.direction.x = 0 + + # vertical input + if keys[pygame.K_UP]: + self.direction.y = -1 + self.status = 'up' + elif keys[pygame.K_DOWN]: + self.direction.y = 1 + self.status = 'down' + else: + self.direction.y = 0 + + def animate(self,dt): + current_animation = self.animations[self.status] + + if self.direction.magnitude() != 0: + self.frame_index += 10 * dt + if self.frame_index >= len(current_animation): + self.frame_index = 0 + else: + self.frame_index = 0 + self.image = current_animation[int(self.frame_index)] + + def restrict(self): + if self.rect.left < 640: + self.pos.x = 640 + self.rect.width / 2 + self.hitbox.left = 640 + self.rect.left = 640 + + if self.rect.right > 2560: + self.pos.x = 2560 - self.rect.width / 2 + self.hitbox.right = 2560 + self.rect.right = 2560 + + if self.rect.bottom > 3500: + self.pos.y = 3500 - self.rect.height / 2 + self.rect.bottom = 3500 + self.hitbox.centery = self.rect.centery + + def update(self,dt): + self.input() + self.move(dt) + self.animate(dt) + self.restrict() + diff --git a/2022-frogger/code/settings.py b/2022-frogger/code/settings.py new file mode 100644 index 0000000..a72776a --- /dev/null +++ b/2022-frogger/code/settings.py @@ -0,0 +1,46 @@ +WINDOW_WIDTH, WINDOW_HEIGHT = 1280,720 + +CAR_START_POSITIONS = [(-100, 1312), (-100, 1632), (-100,1888), + (-100, 2471), (-100,2853), (-100, 3080), (3300, 1400), + (3300,1760), (3300, 1970), (3300, 2550), (3300, 2981)] + +SIMPLE_OBJECTS = { + 'green': [(969.0,3104.17),(986.833,3164.67),(1327.33,3288.67),(1114.67,3084.0),(1468.67,3165.33),(1589.33,3305.33),(1456.67,3298.67),(1659.0,3112.0), + (2358.67,3254.67),(2437.33,3315.33),(2470.0,3107.33),(2154.67,3275.33),(1729.33,3210.0),(1747.33,3288.67),(1188.0,3186.67),(1019.67,3262.67), + (1552.67,3324.0),(1814.0,3351.33),(2402.0,3366.67),(1047.0,3304.0),(980.5,3327.0),(1050.0,3365.5),(2278.0,2624.0),(2346.0,2560.0), + (2209.0,2594.0),(2229.0,2665.0),(834.667,2149.33),(928.0,2209.33),(2473.33,2121.33),(2449.33,2232.67),(877.333,766.667), + (648.0,941.3299999999999),(681.333,897.33), (1346.00,1070.00), (1794.00,1070.00)], + 'green_bush': [(1626.5,3235.67),(1482.67,3264.0),(1520.0,3304.0),(1407.33,3390.67),(1084.67,3172.67),(1003.83,3145.83),(1010.67,3261.0), + (1385.0,2627.0),(865.0,2675.0),(941.0,2614.0),(1086.0,2693.0),(1275.0,2723.0),(1407.0,2716.0),(1166.0,2618.0), + (826.0,2720.0),(1066.0,2714.0),(1220.0,2726.0),(1244.0,2709.0),(652.0,2198.67),(916.0,2190.67),(2274.0,2218.0), + (2280.0,2246.0),(2382.0,2286.0),(2364.0,2213.33),(2413.33,1134.67),(2165.33,1126.67),(2065.33,985.3299999999999), + (2361.33,956.0)], + 'green_mini': [(1140.67,3175.33),(1338.0,3130.67),(1368.67,3236.67),(1108.0,3278.67),(1173.33,3338.0),(1226.0,3216.67),(1272.0,3178.67), + (1268.66,3270.0),(2348.67,3417.33),(2456.67,3204.67),(2323.33,3162.0),(2091.33,3372.67),(1776.67,3165.33),(1938.67,3157.33), + (1846.0,3279.33),(1081.0,3383.5),(1010.0,2665.0),(1163.0,2690.0),(1344.0,2651.0),(2204.0,2695.0),(2262.0,2729.0),(664.0,2288.0), + (858.667,2230.67)], + 'green_small_potted': [(1504.00, 936.00), (1740.00,936.0)], + 'barrel_1': [(642.5,3138.0),(663.0,3164.0),(2560.67,2174.0),(2566.0,2116.0),(2616.67,2072.0),(2616.67,2118.0),(2683.33,2160.0), + (2677.33,2116.0),(2680.0,2038.0),(664.0,2718.0),(2572.0,1466.0),(678.0,3319.83),(700.667,3334.5)], + 'barrel_2': [(2579.33,2147.33),(2568.0,2050.0),(2635.33,2150.0),(2607.33,2046.0),(2600.0,2088.0), (2566.00,1576.00), (2546.00,1538.00)], + 'barrel_3': [(2560.0,2080.0),(2696.0,2106.0),(2657.33,2058.0),(860.667,2289.0)], + 'hydrant': [(919.333,2093.0),(650.0,3245.83)], + 'bench_down': [(1235.33,3333.33), (2213.0,3157.0)], + 'bench_left': [(2522.0,3263.33),(2518.67,2233.33)], + 'letterbox_down': [(1418.67,928.67)], + 'yellow_up': [(819.00,3224.50)], + 'red_right': [(740.00,3315.50)], + 'red_left': [(550.67,1200.00)], + 'green_down': [(713.00,3236.50), (510.67,1140.67)], + 'barrier_1': [(647.0,2633.0)], + 'barrier_4': [(898.0,3147.5),(694.667,2669.67),(661.333,2745.67),(608.0,1528.0),(588.0,1462.0)], + 'barrier_5': [(2368.06,3471.44)], + 'box_4': [(716.0,865.333),(866.667,892.0)], + 'box_7': [(782.667,942.667),(752.0,888.0),(817.333,845.333)], + 'box_10': [(730.667,951.33), (865.333,952.67), (805.333,900.667)]} + +LONG_OBJECTS = { + 'light_both': [(2333.5,2669.0),(2112.67,2669.33),(1087.33,2278.67),(2012.67,2035.33)], + 'light_green': [(2439.33,2116.0), (911.333,2170.67), (2284.67,3089.33)], + 'light_wooden': [(795.913,2087.96), (1106.0,1430.0), (2046.0,1428.0), (2202.67,2016.0)], + 'sign_2': [(1882.00,956.00)]} diff --git a/2022-frogger/code/sprite.py b/2022-frogger/code/sprite.py new file mode 100644 index 0000000..299d9d5 --- /dev/null +++ b/2022-frogger/code/sprite.py @@ -0,0 +1,17 @@ +import pygame + +class SimpleSprite(pygame.sprite.Sprite): + def __init__(self,surf,pos,groups): + super().__init__(groups) + self.image = surf + self.rect = self.image.get_rect(topleft = pos) + + self.hitbox = self.rect.inflate(0,-self.rect.height / 2) + +class LongSprite(pygame.sprite.Sprite): + def __init__(self,surf,pos,groups): + super().__init__(groups) + self.image = surf + self.rect = self.image.get_rect(topleft = pos) + self.hitbox = self.rect.inflate(-self.rect.width * 0.8, -self.rect.height / 2) + self.hitbox.bottom = self.rect.bottom -10 diff --git a/2022-frogger/graphics/background.png b/2022-frogger/graphics/background.png new file mode 100644 index 0000000..0efaff5 Binary files /dev/null and b/2022-frogger/graphics/background.png differ diff --git a/2022-frogger/graphics/cars/green 2.png b/2022-frogger/graphics/cars/green 2.png new file mode 100644 index 0000000..b24bd32 Binary files /dev/null and b/2022-frogger/graphics/cars/green 2.png differ diff --git a/2022-frogger/graphics/cars/green.png b/2022-frogger/graphics/cars/green.png new file mode 100644 index 0000000..b24bd32 Binary files /dev/null and b/2022-frogger/graphics/cars/green.png differ diff --git a/2022-frogger/graphics/cars/red 2.png b/2022-frogger/graphics/cars/red 2.png new file mode 100644 index 0000000..17abdd8 Binary files /dev/null and b/2022-frogger/graphics/cars/red 2.png differ diff --git a/2022-frogger/graphics/cars/red.png b/2022-frogger/graphics/cars/red.png new file mode 100644 index 0000000..17abdd8 Binary files /dev/null and b/2022-frogger/graphics/cars/red.png differ diff --git a/2022-frogger/graphics/cars/yellow 2.png b/2022-frogger/graphics/cars/yellow 2.png new file mode 100644 index 0000000..441c9a3 Binary files /dev/null and b/2022-frogger/graphics/cars/yellow 2.png differ diff --git a/2022-frogger/graphics/cars/yellow.png b/2022-frogger/graphics/cars/yellow.png new file mode 100644 index 0000000..441c9a3 Binary files /dev/null and b/2022-frogger/graphics/cars/yellow.png differ diff --git a/2022-frogger/graphics/main/map 2.png b/2022-frogger/graphics/main/map 2.png new file mode 100644 index 0000000..45756b3 Binary files /dev/null and b/2022-frogger/graphics/main/map 2.png differ diff --git a/2022-frogger/graphics/main/map.png b/2022-frogger/graphics/main/map.png new file mode 100644 index 0000000..45756b3 Binary files /dev/null and b/2022-frogger/graphics/main/map.png differ diff --git a/2022-frogger/graphics/main/overlay 2.png b/2022-frogger/graphics/main/overlay 2.png new file mode 100644 index 0000000..719e66b Binary files /dev/null and b/2022-frogger/graphics/main/overlay 2.png differ diff --git a/2022-frogger/graphics/main/overlay.png b/2022-frogger/graphics/main/overlay.png new file mode 100644 index 0000000..719e66b Binary files /dev/null and b/2022-frogger/graphics/main/overlay.png differ diff --git a/2022-frogger/graphics/objects/long/light_both 2.png b/2022-frogger/graphics/objects/long/light_both 2.png new file mode 100644 index 0000000..c112305 Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_both 2.png differ diff --git a/2022-frogger/graphics/objects/long/light_both.png b/2022-frogger/graphics/objects/long/light_both.png new file mode 100644 index 0000000..c112305 Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_both.png differ diff --git a/2022-frogger/graphics/objects/long/light_green 2.png b/2022-frogger/graphics/objects/long/light_green 2.png new file mode 100644 index 0000000..7dbe084 Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_green 2.png differ diff --git a/2022-frogger/graphics/objects/long/light_green.png b/2022-frogger/graphics/objects/long/light_green.png new file mode 100644 index 0000000..7dbe084 Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_green.png differ diff --git a/2022-frogger/graphics/objects/long/light_left 2.png b/2022-frogger/graphics/objects/long/light_left 2.png new file mode 100644 index 0000000..41b4d71 Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_left 2.png differ diff --git a/2022-frogger/graphics/objects/long/light_left.png b/2022-frogger/graphics/objects/long/light_left.png new file mode 100644 index 0000000..41b4d71 Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_left.png differ diff --git a/2022-frogger/graphics/objects/long/light_right 2.png b/2022-frogger/graphics/objects/long/light_right 2.png new file mode 100644 index 0000000..223983b Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_right 2.png differ diff --git a/2022-frogger/graphics/objects/long/light_right.png b/2022-frogger/graphics/objects/long/light_right.png new file mode 100644 index 0000000..223983b Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_right.png differ diff --git a/2022-frogger/graphics/objects/long/light_wooden 2.png b/2022-frogger/graphics/objects/long/light_wooden 2.png new file mode 100644 index 0000000..1e19b6c Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_wooden 2.png differ diff --git a/2022-frogger/graphics/objects/long/light_wooden.png b/2022-frogger/graphics/objects/long/light_wooden.png new file mode 100644 index 0000000..1e19b6c Binary files /dev/null and b/2022-frogger/graphics/objects/long/light_wooden.png differ diff --git a/2022-frogger/graphics/objects/long/sign_1 2.png b/2022-frogger/graphics/objects/long/sign_1 2.png new file mode 100644 index 0000000..aeae7f4 Binary files /dev/null and b/2022-frogger/graphics/objects/long/sign_1 2.png differ diff --git a/2022-frogger/graphics/objects/long/sign_1.png b/2022-frogger/graphics/objects/long/sign_1.png new file mode 100644 index 0000000..aeae7f4 Binary files /dev/null and b/2022-frogger/graphics/objects/long/sign_1.png differ diff --git a/2022-frogger/graphics/objects/long/sign_2 2.png b/2022-frogger/graphics/objects/long/sign_2 2.png new file mode 100644 index 0000000..9e90feb Binary files /dev/null and b/2022-frogger/graphics/objects/long/sign_2 2.png differ diff --git a/2022-frogger/graphics/objects/long/sign_2.png b/2022-frogger/graphics/objects/long/sign_2.png new file mode 100644 index 0000000..9e90feb Binary files /dev/null and b/2022-frogger/graphics/objects/long/sign_2.png differ diff --git a/2022-frogger/graphics/objects/long/sign_3 2.png b/2022-frogger/graphics/objects/long/sign_3 2.png new file mode 100644 index 0000000..8c864c9 Binary files /dev/null and b/2022-frogger/graphics/objects/long/sign_3 2.png differ diff --git a/2022-frogger/graphics/objects/long/sign_3.png b/2022-frogger/graphics/objects/long/sign_3.png new file mode 100644 index 0000000..8c864c9 Binary files /dev/null and b/2022-frogger/graphics/objects/long/sign_3.png differ diff --git a/2022-frogger/graphics/objects/simple/barrel_1 2.png b/2022-frogger/graphics/objects/simple/barrel_1 2.png new file mode 100644 index 0000000..585031c Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrel_1 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrel_1.png b/2022-frogger/graphics/objects/simple/barrel_1.png new file mode 100644 index 0000000..585031c Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrel_1.png differ diff --git a/2022-frogger/graphics/objects/simple/barrel_2 2.png b/2022-frogger/graphics/objects/simple/barrel_2 2.png new file mode 100644 index 0000000..ad0705a Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrel_2 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrel_2.png b/2022-frogger/graphics/objects/simple/barrel_2.png new file mode 100644 index 0000000..ad0705a Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrel_2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrel_3 2.png b/2022-frogger/graphics/objects/simple/barrel_3 2.png new file mode 100644 index 0000000..2abd1bc Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrel_3 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrel_3.png b/2022-frogger/graphics/objects/simple/barrel_3.png new file mode 100644 index 0000000..2abd1bc Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrel_3.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_1 2.png b/2022-frogger/graphics/objects/simple/barrier_1 2.png new file mode 100644 index 0000000..8d64c80 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_1 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_1.png b/2022-frogger/graphics/objects/simple/barrier_1.png new file mode 100644 index 0000000..8d64c80 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_1.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_2 2.png b/2022-frogger/graphics/objects/simple/barrier_2 2.png new file mode 100644 index 0000000..b9d34cf Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_2 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_2.png b/2022-frogger/graphics/objects/simple/barrier_2.png new file mode 100644 index 0000000..b9d34cf Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_3 2.png b/2022-frogger/graphics/objects/simple/barrier_3 2.png new file mode 100644 index 0000000..beafc25 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_3 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_3.png b/2022-frogger/graphics/objects/simple/barrier_3.png new file mode 100644 index 0000000..beafc25 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_3.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_4 2.png b/2022-frogger/graphics/objects/simple/barrier_4 2.png new file mode 100644 index 0000000..5b85c79 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_4 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_4.png b/2022-frogger/graphics/objects/simple/barrier_4.png new file mode 100644 index 0000000..5b85c79 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_4.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_5 2.png b/2022-frogger/graphics/objects/simple/barrier_5 2.png new file mode 100644 index 0000000..c774482 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_5 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_5.png b/2022-frogger/graphics/objects/simple/barrier_5.png new file mode 100644 index 0000000..c774482 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_5.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_6 2.png b/2022-frogger/graphics/objects/simple/barrier_6 2.png new file mode 100644 index 0000000..e0b0ab9 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_6 2.png differ diff --git a/2022-frogger/graphics/objects/simple/barrier_6.png b/2022-frogger/graphics/objects/simple/barrier_6.png new file mode 100644 index 0000000..e0b0ab9 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/barrier_6.png differ diff --git a/2022-frogger/graphics/objects/simple/bench_down 2.png b/2022-frogger/graphics/objects/simple/bench_down 2.png new file mode 100644 index 0000000..c26ecc8 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bench_down 2.png differ diff --git a/2022-frogger/graphics/objects/simple/bench_down.png b/2022-frogger/graphics/objects/simple/bench_down.png new file mode 100644 index 0000000..c26ecc8 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bench_down.png differ diff --git a/2022-frogger/graphics/objects/simple/bench_left 2.png b/2022-frogger/graphics/objects/simple/bench_left 2.png new file mode 100644 index 0000000..a0f7514 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bench_left 2.png differ diff --git a/2022-frogger/graphics/objects/simple/bench_left.png b/2022-frogger/graphics/objects/simple/bench_left.png new file mode 100644 index 0000000..a0f7514 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bench_left.png differ diff --git a/2022-frogger/graphics/objects/simple/bench_right 2.png b/2022-frogger/graphics/objects/simple/bench_right 2.png new file mode 100644 index 0000000..b079214 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bench_right 2.png differ diff --git a/2022-frogger/graphics/objects/simple/bench_right.png b/2022-frogger/graphics/objects/simple/bench_right.png new file mode 100644 index 0000000..b079214 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bench_right.png differ diff --git a/2022-frogger/graphics/objects/simple/bin_closed 2.png b/2022-frogger/graphics/objects/simple/bin_closed 2.png new file mode 100644 index 0000000..8cb434a Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bin_closed 2.png differ diff --git a/2022-frogger/graphics/objects/simple/bin_closed.png b/2022-frogger/graphics/objects/simple/bin_closed.png new file mode 100644 index 0000000..8cb434a Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bin_closed.png differ diff --git a/2022-frogger/graphics/objects/simple/bin_open 2.png b/2022-frogger/graphics/objects/simple/bin_open 2.png new file mode 100644 index 0000000..ffd5714 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bin_open 2.png differ diff --git a/2022-frogger/graphics/objects/simple/bin_open.png b/2022-frogger/graphics/objects/simple/bin_open.png new file mode 100644 index 0000000..ffd5714 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/bin_open.png differ diff --git a/2022-frogger/graphics/objects/simple/box_1 2.png b/2022-frogger/graphics/objects/simple/box_1 2.png new file mode 100644 index 0000000..ba6b8c5 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_1 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_1.png b/2022-frogger/graphics/objects/simple/box_1.png new file mode 100644 index 0000000..ba6b8c5 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_1.png differ diff --git a/2022-frogger/graphics/objects/simple/box_10 2.png b/2022-frogger/graphics/objects/simple/box_10 2.png new file mode 100644 index 0000000..4d391b9 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_10 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_10.png b/2022-frogger/graphics/objects/simple/box_10.png new file mode 100644 index 0000000..4d391b9 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_10.png differ diff --git a/2022-frogger/graphics/objects/simple/box_2 2.png b/2022-frogger/graphics/objects/simple/box_2 2.png new file mode 100644 index 0000000..48d1316 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_2 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_2.png b/2022-frogger/graphics/objects/simple/box_2.png new file mode 100644 index 0000000..48d1316 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_3 2.png b/2022-frogger/graphics/objects/simple/box_3 2.png new file mode 100644 index 0000000..9f9a7e7 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_3 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_3.png b/2022-frogger/graphics/objects/simple/box_3.png new file mode 100644 index 0000000..9f9a7e7 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_3.png differ diff --git a/2022-frogger/graphics/objects/simple/box_4 2.png b/2022-frogger/graphics/objects/simple/box_4 2.png new file mode 100644 index 0000000..c1e47b0 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_4 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_4.png b/2022-frogger/graphics/objects/simple/box_4.png new file mode 100644 index 0000000..c1e47b0 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_4.png differ diff --git a/2022-frogger/graphics/objects/simple/box_5 2.png b/2022-frogger/graphics/objects/simple/box_5 2.png new file mode 100644 index 0000000..fe10f5e Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_5 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_5.png b/2022-frogger/graphics/objects/simple/box_5.png new file mode 100644 index 0000000..fe10f5e Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_5.png differ diff --git a/2022-frogger/graphics/objects/simple/box_6 2.png b/2022-frogger/graphics/objects/simple/box_6 2.png new file mode 100644 index 0000000..59c5dae Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_6 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_6.png b/2022-frogger/graphics/objects/simple/box_6.png new file mode 100644 index 0000000..59c5dae Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_6.png differ diff --git a/2022-frogger/graphics/objects/simple/box_7 2.png b/2022-frogger/graphics/objects/simple/box_7 2.png new file mode 100644 index 0000000..86b267d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_7 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_7.png b/2022-frogger/graphics/objects/simple/box_7.png new file mode 100644 index 0000000..86b267d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_7.png differ diff --git a/2022-frogger/graphics/objects/simple/box_8 2.png b/2022-frogger/graphics/objects/simple/box_8 2.png new file mode 100644 index 0000000..edee0d1 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_8 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_8.png b/2022-frogger/graphics/objects/simple/box_8.png new file mode 100644 index 0000000..edee0d1 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_8.png differ diff --git a/2022-frogger/graphics/objects/simple/box_9 2.png b/2022-frogger/graphics/objects/simple/box_9 2.png new file mode 100644 index 0000000..d35bc7d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_9 2.png differ diff --git a/2022-frogger/graphics/objects/simple/box_9.png b/2022-frogger/graphics/objects/simple/box_9.png new file mode 100644 index 0000000..d35bc7d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/box_9.png differ diff --git a/2022-frogger/graphics/objects/simple/cone 2.png b/2022-frogger/graphics/objects/simple/cone 2.png new file mode 100644 index 0000000..ccd6dcb Binary files /dev/null and b/2022-frogger/graphics/objects/simple/cone 2.png differ diff --git a/2022-frogger/graphics/objects/simple/cone.png b/2022-frogger/graphics/objects/simple/cone.png new file mode 100644 index 0000000..ccd6dcb Binary files /dev/null and b/2022-frogger/graphics/objects/simple/cone.png differ diff --git a/2022-frogger/graphics/objects/simple/green 2.png b/2022-frogger/graphics/objects/simple/green 2.png new file mode 100644 index 0000000..050553d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green.png b/2022-frogger/graphics/objects/simple/green.png new file mode 100644 index 0000000..050553d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green.png differ diff --git a/2022-frogger/graphics/objects/simple/green_bush 2.png b/2022-frogger/graphics/objects/simple/green_bush 2.png new file mode 100644 index 0000000..1b86f91 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_bush 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_bush.png b/2022-frogger/graphics/objects/simple/green_bush.png new file mode 100644 index 0000000..1b86f91 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_bush.png differ diff --git a/2022-frogger/graphics/objects/simple/green_down 2.png b/2022-frogger/graphics/objects/simple/green_down 2.png new file mode 100644 index 0000000..039b756 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_down 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_down.png b/2022-frogger/graphics/objects/simple/green_down.png new file mode 100644 index 0000000..039b756 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_down.png differ diff --git a/2022-frogger/graphics/objects/simple/green_left 2.png b/2022-frogger/graphics/objects/simple/green_left 2.png new file mode 100644 index 0000000..277fde1 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_left 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_left.png b/2022-frogger/graphics/objects/simple/green_left.png new file mode 100644 index 0000000..277fde1 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_left.png differ diff --git a/2022-frogger/graphics/objects/simple/green_mini 2.png b/2022-frogger/graphics/objects/simple/green_mini 2.png new file mode 100644 index 0000000..9bea80c Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_mini 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_mini.png b/2022-frogger/graphics/objects/simple/green_mini.png new file mode 100644 index 0000000..9bea80c Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_mini.png differ diff --git a/2022-frogger/graphics/objects/simple/green_potted 2.png b/2022-frogger/graphics/objects/simple/green_potted 2.png new file mode 100644 index 0000000..7cc5964 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_potted 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_potted.png b/2022-frogger/graphics/objects/simple/green_potted.png new file mode 100644 index 0000000..7cc5964 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_potted.png differ diff --git a/2022-frogger/graphics/objects/simple/green_right 2.png b/2022-frogger/graphics/objects/simple/green_right 2.png new file mode 100644 index 0000000..b24bd32 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_right 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_right.png b/2022-frogger/graphics/objects/simple/green_right.png new file mode 100644 index 0000000..b24bd32 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_right.png differ diff --git a/2022-frogger/graphics/objects/simple/green_small 2.png b/2022-frogger/graphics/objects/simple/green_small 2.png new file mode 100644 index 0000000..fdb993f Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_small 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_small.png b/2022-frogger/graphics/objects/simple/green_small.png new file mode 100644 index 0000000..fdb993f Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_small.png differ diff --git a/2022-frogger/graphics/objects/simple/green_small_potted 2.png b/2022-frogger/graphics/objects/simple/green_small_potted 2.png new file mode 100644 index 0000000..898bed3 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_small_potted 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_small_potted.png b/2022-frogger/graphics/objects/simple/green_small_potted.png new file mode 100644 index 0000000..898bed3 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_small_potted.png differ diff --git a/2022-frogger/graphics/objects/simple/green_up 2.png b/2022-frogger/graphics/objects/simple/green_up 2.png new file mode 100644 index 0000000..68a541a Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_up 2.png differ diff --git a/2022-frogger/graphics/objects/simple/green_up.png b/2022-frogger/graphics/objects/simple/green_up.png new file mode 100644 index 0000000..68a541a Binary files /dev/null and b/2022-frogger/graphics/objects/simple/green_up.png differ diff --git a/2022-frogger/graphics/objects/simple/hydrant 2.png b/2022-frogger/graphics/objects/simple/hydrant 2.png new file mode 100644 index 0000000..e7fb68d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/hydrant 2.png differ diff --git a/2022-frogger/graphics/objects/simple/hydrant.png b/2022-frogger/graphics/objects/simple/hydrant.png new file mode 100644 index 0000000..e7fb68d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/hydrant.png differ diff --git a/2022-frogger/graphics/objects/simple/letterbox_down 2.png b/2022-frogger/graphics/objects/simple/letterbox_down 2.png new file mode 100644 index 0000000..08f5350 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/letterbox_down 2.png differ diff --git a/2022-frogger/graphics/objects/simple/letterbox_down.png b/2022-frogger/graphics/objects/simple/letterbox_down.png new file mode 100644 index 0000000..08f5350 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/letterbox_down.png differ diff --git a/2022-frogger/graphics/objects/simple/letterbox_up 2.png b/2022-frogger/graphics/objects/simple/letterbox_up 2.png new file mode 100644 index 0000000..d02f532 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/letterbox_up 2.png differ diff --git a/2022-frogger/graphics/objects/simple/letterbox_up.png b/2022-frogger/graphics/objects/simple/letterbox_up.png new file mode 100644 index 0000000..d02f532 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/letterbox_up.png differ diff --git a/2022-frogger/graphics/objects/simple/red 2.png b/2022-frogger/graphics/objects/simple/red 2.png new file mode 100644 index 0000000..3b8285d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red.png b/2022-frogger/graphics/objects/simple/red.png new file mode 100644 index 0000000..3b8285d Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red.png differ diff --git a/2022-frogger/graphics/objects/simple/red_bush 2.png b/2022-frogger/graphics/objects/simple/red_bush 2.png new file mode 100644 index 0000000..62424e1 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_bush 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red_bush.png b/2022-frogger/graphics/objects/simple/red_bush.png new file mode 100644 index 0000000..62424e1 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_bush.png differ diff --git a/2022-frogger/graphics/objects/simple/red_down 2.png b/2022-frogger/graphics/objects/simple/red_down 2.png new file mode 100644 index 0000000..a703c92 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_down 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red_down.png b/2022-frogger/graphics/objects/simple/red_down.png new file mode 100644 index 0000000..a703c92 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_down.png differ diff --git a/2022-frogger/graphics/objects/simple/red_left 2.png b/2022-frogger/graphics/objects/simple/red_left 2.png new file mode 100644 index 0000000..4bb8aee Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_left 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red_left.png b/2022-frogger/graphics/objects/simple/red_left.png new file mode 100644 index 0000000..4bb8aee Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_left.png differ diff --git a/2022-frogger/graphics/objects/simple/red_mini 2.png b/2022-frogger/graphics/objects/simple/red_mini 2.png new file mode 100644 index 0000000..6d712c3 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_mini 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red_mini.png b/2022-frogger/graphics/objects/simple/red_mini.png new file mode 100644 index 0000000..6d712c3 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_mini.png differ diff --git a/2022-frogger/graphics/objects/simple/red_potted 2.png b/2022-frogger/graphics/objects/simple/red_potted 2.png new file mode 100644 index 0000000..01551d6 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_potted 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red_potted.png b/2022-frogger/graphics/objects/simple/red_potted.png new file mode 100644 index 0000000..01551d6 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_potted.png differ diff --git a/2022-frogger/graphics/objects/simple/red_right 2.png b/2022-frogger/graphics/objects/simple/red_right 2.png new file mode 100644 index 0000000..17abdd8 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_right 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red_right.png b/2022-frogger/graphics/objects/simple/red_right.png new file mode 100644 index 0000000..17abdd8 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_right.png differ diff --git a/2022-frogger/graphics/objects/simple/red_small 2.png b/2022-frogger/graphics/objects/simple/red_small 2.png new file mode 100644 index 0000000..9cfdc09 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_small 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red_small.png b/2022-frogger/graphics/objects/simple/red_small.png new file mode 100644 index 0000000..9cfdc09 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_small.png differ diff --git a/2022-frogger/graphics/objects/simple/red_up 2.png b/2022-frogger/graphics/objects/simple/red_up 2.png new file mode 100644 index 0000000..533c1ba Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_up 2.png differ diff --git a/2022-frogger/graphics/objects/simple/red_up.png b/2022-frogger/graphics/objects/simple/red_up.png new file mode 100644 index 0000000..533c1ba Binary files /dev/null and b/2022-frogger/graphics/objects/simple/red_up.png differ diff --git a/2022-frogger/graphics/objects/simple/yellow_down 2.png b/2022-frogger/graphics/objects/simple/yellow_down 2.png new file mode 100644 index 0000000..11d6c59 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/yellow_down 2.png differ diff --git a/2022-frogger/graphics/objects/simple/yellow_down.png b/2022-frogger/graphics/objects/simple/yellow_down.png new file mode 100644 index 0000000..11d6c59 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/yellow_down.png differ diff --git a/2022-frogger/graphics/objects/simple/yellow_left 2.png b/2022-frogger/graphics/objects/simple/yellow_left 2.png new file mode 100644 index 0000000..1bb0782 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/yellow_left 2.png differ diff --git a/2022-frogger/graphics/objects/simple/yellow_left.png b/2022-frogger/graphics/objects/simple/yellow_left.png new file mode 100644 index 0000000..1bb0782 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/yellow_left.png differ diff --git a/2022-frogger/graphics/objects/simple/yellow_right 2.png b/2022-frogger/graphics/objects/simple/yellow_right 2.png new file mode 100644 index 0000000..441c9a3 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/yellow_right 2.png differ diff --git a/2022-frogger/graphics/objects/simple/yellow_right.png b/2022-frogger/graphics/objects/simple/yellow_right.png new file mode 100644 index 0000000..441c9a3 Binary files /dev/null and b/2022-frogger/graphics/objects/simple/yellow_right.png differ diff --git a/2022-frogger/graphics/objects/simple/yellow_up 2.png b/2022-frogger/graphics/objects/simple/yellow_up 2.png new file mode 100644 index 0000000..1ccf54c Binary files /dev/null and b/2022-frogger/graphics/objects/simple/yellow_up 2.png differ diff --git a/2022-frogger/graphics/objects/simple/yellow_up.png b/2022-frogger/graphics/objects/simple/yellow_up.png new file mode 100644 index 0000000..1ccf54c Binary files /dev/null and b/2022-frogger/graphics/objects/simple/yellow_up.png differ diff --git a/2022-frogger/graphics/player/down/0 2.png b/2022-frogger/graphics/player/down/0 2.png new file mode 100644 index 0000000..f464c1b Binary files /dev/null and b/2022-frogger/graphics/player/down/0 2.png differ diff --git a/2022-frogger/graphics/player/down/0.png b/2022-frogger/graphics/player/down/0.png new file mode 100644 index 0000000..f464c1b Binary files /dev/null and b/2022-frogger/graphics/player/down/0.png differ diff --git a/2022-frogger/graphics/player/down/1 2.png b/2022-frogger/graphics/player/down/1 2.png new file mode 100644 index 0000000..8177859 Binary files /dev/null and b/2022-frogger/graphics/player/down/1 2.png differ diff --git a/2022-frogger/graphics/player/down/1.png b/2022-frogger/graphics/player/down/1.png new file mode 100644 index 0000000..8177859 Binary files /dev/null and b/2022-frogger/graphics/player/down/1.png differ diff --git a/2022-frogger/graphics/player/down/2 2.png b/2022-frogger/graphics/player/down/2 2.png new file mode 100644 index 0000000..f464c1b Binary files /dev/null and b/2022-frogger/graphics/player/down/2 2.png differ diff --git a/2022-frogger/graphics/player/down/2.png b/2022-frogger/graphics/player/down/2.png new file mode 100644 index 0000000..f464c1b Binary files /dev/null and b/2022-frogger/graphics/player/down/2.png differ diff --git a/2022-frogger/graphics/player/down/3 2.png b/2022-frogger/graphics/player/down/3 2.png new file mode 100644 index 0000000..522fe2d Binary files /dev/null and b/2022-frogger/graphics/player/down/3 2.png differ diff --git a/2022-frogger/graphics/player/down/3.png b/2022-frogger/graphics/player/down/3.png new file mode 100644 index 0000000..522fe2d Binary files /dev/null and b/2022-frogger/graphics/player/down/3.png differ diff --git a/2022-frogger/graphics/player/left/0 2.png b/2022-frogger/graphics/player/left/0 2.png new file mode 100644 index 0000000..66312dd Binary files /dev/null and b/2022-frogger/graphics/player/left/0 2.png differ diff --git a/2022-frogger/graphics/player/left/0.png b/2022-frogger/graphics/player/left/0.png new file mode 100644 index 0000000..66312dd Binary files /dev/null and b/2022-frogger/graphics/player/left/0.png differ diff --git a/2022-frogger/graphics/player/left/1 2.png b/2022-frogger/graphics/player/left/1 2.png new file mode 100644 index 0000000..b87881b Binary files /dev/null and b/2022-frogger/graphics/player/left/1 2.png differ diff --git a/2022-frogger/graphics/player/left/1.png b/2022-frogger/graphics/player/left/1.png new file mode 100644 index 0000000..b87881b Binary files /dev/null and b/2022-frogger/graphics/player/left/1.png differ diff --git a/2022-frogger/graphics/player/left/2 2.png b/2022-frogger/graphics/player/left/2 2.png new file mode 100644 index 0000000..66312dd Binary files /dev/null and b/2022-frogger/graphics/player/left/2 2.png differ diff --git a/2022-frogger/graphics/player/left/2.png b/2022-frogger/graphics/player/left/2.png new file mode 100644 index 0000000..66312dd Binary files /dev/null and b/2022-frogger/graphics/player/left/2.png differ diff --git a/2022-frogger/graphics/player/left/3 2.png b/2022-frogger/graphics/player/left/3 2.png new file mode 100644 index 0000000..5960687 Binary files /dev/null and b/2022-frogger/graphics/player/left/3 2.png differ diff --git a/2022-frogger/graphics/player/left/3.png b/2022-frogger/graphics/player/left/3.png new file mode 100644 index 0000000..5960687 Binary files /dev/null and b/2022-frogger/graphics/player/left/3.png differ diff --git a/2022-frogger/graphics/player/right/0 2.png b/2022-frogger/graphics/player/right/0 2.png new file mode 100644 index 0000000..cb39b6d Binary files /dev/null and b/2022-frogger/graphics/player/right/0 2.png differ diff --git a/2022-frogger/graphics/player/right/0.png b/2022-frogger/graphics/player/right/0.png new file mode 100644 index 0000000..cb39b6d Binary files /dev/null and b/2022-frogger/graphics/player/right/0.png differ diff --git a/2022-frogger/graphics/player/right/1 2.png b/2022-frogger/graphics/player/right/1 2.png new file mode 100644 index 0000000..730bca9 Binary files /dev/null and b/2022-frogger/graphics/player/right/1 2.png differ diff --git a/2022-frogger/graphics/player/right/1.png b/2022-frogger/graphics/player/right/1.png new file mode 100644 index 0000000..730bca9 Binary files /dev/null and b/2022-frogger/graphics/player/right/1.png differ diff --git a/2022-frogger/graphics/player/right/2 2.png b/2022-frogger/graphics/player/right/2 2.png new file mode 100644 index 0000000..cb39b6d Binary files /dev/null and b/2022-frogger/graphics/player/right/2 2.png differ diff --git a/2022-frogger/graphics/player/right/2.png b/2022-frogger/graphics/player/right/2.png new file mode 100644 index 0000000..cb39b6d Binary files /dev/null and b/2022-frogger/graphics/player/right/2.png differ diff --git a/2022-frogger/graphics/player/right/3 2.png b/2022-frogger/graphics/player/right/3 2.png new file mode 100644 index 0000000..3ca535a Binary files /dev/null and b/2022-frogger/graphics/player/right/3 2.png differ diff --git a/2022-frogger/graphics/player/right/3.png b/2022-frogger/graphics/player/right/3.png new file mode 100644 index 0000000..3ca535a Binary files /dev/null and b/2022-frogger/graphics/player/right/3.png differ diff --git a/2022-frogger/graphics/player/up/0 2.png b/2022-frogger/graphics/player/up/0 2.png new file mode 100644 index 0000000..d03c3a3 Binary files /dev/null and b/2022-frogger/graphics/player/up/0 2.png differ diff --git a/2022-frogger/graphics/player/up/0.png b/2022-frogger/graphics/player/up/0.png new file mode 100644 index 0000000..d03c3a3 Binary files /dev/null and b/2022-frogger/graphics/player/up/0.png differ diff --git a/2022-frogger/graphics/player/up/1 2.png b/2022-frogger/graphics/player/up/1 2.png new file mode 100644 index 0000000..e51d8ef Binary files /dev/null and b/2022-frogger/graphics/player/up/1 2.png differ diff --git a/2022-frogger/graphics/player/up/1.png b/2022-frogger/graphics/player/up/1.png new file mode 100644 index 0000000..e51d8ef Binary files /dev/null and b/2022-frogger/graphics/player/up/1.png differ diff --git a/2022-frogger/graphics/player/up/2 2.png b/2022-frogger/graphics/player/up/2 2.png new file mode 100644 index 0000000..d03c3a3 Binary files /dev/null and b/2022-frogger/graphics/player/up/2 2.png differ diff --git a/2022-frogger/graphics/player/up/2.png b/2022-frogger/graphics/player/up/2.png new file mode 100644 index 0000000..d03c3a3 Binary files /dev/null and b/2022-frogger/graphics/player/up/2.png differ diff --git a/2022-frogger/graphics/player/up/3 2.png b/2022-frogger/graphics/player/up/3 2.png new file mode 100644 index 0000000..2141e9c Binary files /dev/null and b/2022-frogger/graphics/player/up/3 2.png differ diff --git a/2022-frogger/graphics/player/up/3.png b/2022-frogger/graphics/player/up/3.png new file mode 100644 index 0000000..2141e9c Binary files /dev/null and b/2022-frogger/graphics/player/up/3.png differ diff --git a/2022-frogger/graphics/tilesets/buildings 2.png b/2022-frogger/graphics/tilesets/buildings 2.png new file mode 100644 index 0000000..248c54c Binary files /dev/null and b/2022-frogger/graphics/tilesets/buildings 2.png differ diff --git a/2022-frogger/graphics/tilesets/buildings.png b/2022-frogger/graphics/tilesets/buildings.png new file mode 100644 index 0000000..248c54c Binary files /dev/null and b/2022-frogger/graphics/tilesets/buildings.png differ diff --git a/2022-frogger/graphics/tilesets/floor 2.png b/2022-frogger/graphics/tilesets/floor 2.png new file mode 100644 index 0000000..f071231 Binary files /dev/null and b/2022-frogger/graphics/tilesets/floor 2.png differ diff --git a/2022-frogger/graphics/tilesets/floor.png b/2022-frogger/graphics/tilesets/floor.png new file mode 100644 index 0000000..f071231 Binary files /dev/null and b/2022-frogger/graphics/tilesets/floor.png differ diff --git a/2023-terminal-tictactoe/README.md b/2023-terminal-tictactoe/README.md new file mode 100644 index 0000000..695a3a7 --- /dev/null +++ b/2023-terminal-tictactoe/README.md @@ -0,0 +1,54 @@ +# terminal-tictactoe + +## Overview +This Tic Tac Toe game is implemented in C++ and allows two players to take turns marking spaces on a 3x3 grid. The game determines a winner if a player successfully aligns three of their symbols horizontally, vertically, or diagonally. + +## Prerequisites +To compile and run the game, ensure you have the following installed on your system: + +- **g++ (GNU Compiler Collection)**: A C++ compiler to build the project. + +## Compilation and Execution +Follow these steps to compile and run the program: + +1. Open a terminal and navigate to the directory containing `tictactoe.cpp`. +2. Compile the code with the following command: + ```bash + g++ -std=c++11 tictactoe.cpp -o tictactoe + ``` + This will create an executable file named `tictactoe`. + +3. Run the program using: + ```bash + ./tictactoe + ``` + +## Gameplay Instructions +1. At the start, the game displays an empty 3x3 board and a guide for the input keys. +2. Players take turns entering their moves. Input keys correspond to the grid positions: + - `L1`, `M1`, `R1` for the top row. + - `L2`, `M2`, `R2` for the middle row. + - `L3`, `M3`, `R3` for the bottom row. + +3. Example of valid input: + - `M2` will place the current player's marker in the middle cell of the board. + +4. The game checks for a win or draw after each move. If a player wins, the game announces the winner and exits. + +5. If a player attempts to mark an already occupied cell, they will be prompted to choose another position. + +6. Invalid input (e.g., `X1`, `middle`) will prompt the player to enter a valid move. + +## Troubleshooting +- If you encounter issues running the game, ensure `g++` is installed and the file paths are correct. +- If the program fails to compile, ensure you are using at least C++11 by specifying `-std=c++11` during compilation. + +## License +This project is distributed under the MIT License. + +## Contributions +Contributions are welcome! Feel free to fork the repository and submit pull requests. + +## Credits +- **Developer:** Joaquin Gottlebe +- **Built With:** C++ diff --git a/2023-terminal-tictactoe/tictactoe.cpp b/2023-terminal-tictactoe/tictactoe.cpp new file mode 100644 index 0000000..d2e3ed9 --- /dev/null +++ b/2023-terminal-tictactoe/tictactoe.cpp @@ -0,0 +1,122 @@ +// clear && g++ -std=c++11 tictactoe.cpp -o tictactoe && ./tictactoe + +#include +#include +#include +#include + +bool checkWin(std::vector>& board, char player); +void printBoard(const std::vector>& board); + +int main() { + + std::vector> board = {{' ', ' ', ' '}, + {' ', ' ', ' '}, + {' ', ' ', ' '}}; + + struct position { + int row; + int col; + }; + + std::map input = { + {"L1", {0, 0}}, + {"M1", {0, 1}}, + {"R1", {0, 2}}, + {"L2", {1, 0}}, + {"M2", {1, 1}}, + {"R2", {1, 2}}, + {"L3", {2, 0}}, + {"M3", {2, 1}}, + {"R3", {2, 2}}, + }; + + char Player1 = 'X'; + char Player2 = 'O'; + char currentPlayer = Player1; + std::string move; + char winner = ' '; + + while (winner == ' ') { + std::cout << "This is the Tic Tac Toe the Board: \n"; + std::cout << "\n"; + printBoard(board); + std::cout << "Here are the inputs for the Board: \n"; + std::cout << "\n"; + std::cout << "|L1|M1|R1| \n"; + std::cout << "|L2|M2|R2| \n"; + std::cout << "|L3|M3|R3| \n"; + std::cout << "\n"; + std::cout << "Spieler " << currentPlayer << ", du bist am Zug: "; + + std::cin >> move; + std::cout << "\n\n"; + + if (input.find(move) != input.end()) { + position pos = input[move]; + + if (board[pos.row][pos.col] == ' ') { + board[pos.row][pos.col] = currentPlayer; + + if (checkWin(board, currentPlayer)) { + winner = currentPlayer; + break; + } + + if (currentPlayer == Player1) { + currentPlayer = Player2; + } + else { + currentPlayer = Player1; + } + } + else { + std::cout << "Das Feld ist bereits besetzt. Bitte waehle ein anderes Feld.\n"; + } + } + else { + std::cout << "Ungueltige Eingabe. Bitte gebe einen gueltigen Zug ein (z.B. 'L1', 'M2', ...).\n"; + } + } + + printBoard(board); + std::cout << "!!! Der Gewinner ist " << winner << " 🥳🥳🥳 !!!" <>& board, char player) { + // Überprüfe die Zeilen + for (int i = 0; i < 3; ++i) { + if (board[i][0] == player && board[i][1] == player && board[i][2] == player) { + return true; + } + } + + // Überprüfe die Spalten + for (int i = 0; i < 3; ++i) { + if (board[0][i] == player && board[1][i] == player && board[2][i] == player) { + return true; + } + } + + // Überprüfe die Diagonalen + if (board[0][0] == player && board[1][1] == player && board[2][2] == player) { + return true; + } + if (board[0][2] == player && board[1][1] == player && board[2][0] == player) { + return true; + } + + return false; +} + +void printBoard(const std::vector>& board) { + for (const auto &row : board) { + for (const auto &col : row) { + std::cout << '|' << col << '|'; + } + std::cout << '\n'; + } + std::cout << '\n'; +} diff --git a/2024-father-and-son/.gitignore b/2024-father-and-son/.gitignore new file mode 100644 index 0000000..3451f97 --- /dev/null +++ b/2024-father-and-son/.gitignore @@ -0,0 +1,72 @@ +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +# Visual Studio files +[Dd]ebug/ +[Dd]ebug.DLL/ +[R]elease/ +[Rr]elease.DLL/ +*.user +*.aps +.vs + +# Clangd LSP +.cache +compile_commands.json + +# Build folder +[Bb]uild + +# Android +*apk* +android.* \ No newline at end of file diff --git a/2024-father-and-son/Makefile b/2024-father-and-son/Makefile new file mode 100644 index 0000000..5d3764d --- /dev/null +++ b/2024-father-and-son/Makefile @@ -0,0 +1,15 @@ +CXX = clang++ +FLAGS = -Wall -std=c++17 $(shell pkg-config --libs --cflags raylib) +TARGET = game +SRC = src/main.cpp + +all: $(TARGET) + +$(TARGET): $(SRC) + $(CXX) $(FLAGS) $(SRC) -o $(TARGET) + +clean: + rm -f $(TARGET) + +run: clean $(TARGET) + ./$(TARGET) diff --git a/2024-father-and-son/README.md b/2024-father-and-son/README.md new file mode 100644 index 0000000..ae18b7f --- /dev/null +++ b/2024-father-and-son/README.md @@ -0,0 +1,32 @@ + +# Father and Son + +## Overview +This Jump and Run game is a 2D platformer built using the [raylib](https://www.raylib.com/) library. Players navigate through levels filled with obstacles and challenges, aiming to reach the end goal while collecting points. + +## Prerequisites +To compile and run the game, ensure you have the following installed on your system: + +- **Make**: A build tool for automating the compilation process. +- **C Compiler**: Ensure you have a C compiler like `gcc` or `clang` installed. + +## Building and run the Game +To build the game, use the following command: + +```bash +make run +``` + +## Troubleshooting +- Verify that all game files, including source code and assets, are in the correct directories. +- If the program does not run, ensure `make` and your C compiler are properly installed and configured. + +## License +This project is distributed under the MIT License. See the `LICENSE` file for details. + +## Contributions +Contributions are welcome! Fork the repository, make your changes, and submit a pull request. + +## Credits +- **Developer:** Joaquin Gottlebe +- **Built With:** raylib and C diff --git a/2024-father-and-son/assets/background.png b/2024-father-and-son/assets/background.png new file mode 100644 index 0000000..838d08a Binary files /dev/null and b/2024-father-and-son/assets/background.png differ diff --git a/2024-father-and-son/assets/father-and-son.png b/2024-father-and-son/assets/father-and-son.png new file mode 100644 index 0000000..4eb4f17 Binary files /dev/null and b/2024-father-and-son/assets/father-and-son.png differ diff --git a/2024-father-and-son/assets/foreground.png b/2024-father-and-son/assets/foreground.png new file mode 100644 index 0000000..da857eb Binary files /dev/null and b/2024-father-and-son/assets/foreground.png differ diff --git a/2024-father-and-son/assets/idle.png b/2024-father-and-son/assets/idle.png new file mode 100644 index 0000000..5b6a495 Binary files /dev/null and b/2024-father-and-son/assets/idle.png differ diff --git a/2024-father-and-son/assets/midground.png b/2024-father-and-son/assets/midground.png new file mode 100644 index 0000000..e9edc66 Binary files /dev/null and b/2024-father-and-son/assets/midground.png differ diff --git a/2024-father-and-son/assets/palette.pdf b/2024-father-and-son/assets/palette.pdf new file mode 100644 index 0000000..069bdc4 Binary files /dev/null and b/2024-father-and-son/assets/palette.pdf differ diff --git a/2024-father-and-son/assets/palette_source.jpg b/2024-father-and-son/assets/palette_source.jpg new file mode 100644 index 0000000..b88c90c Binary files /dev/null and b/2024-father-and-son/assets/palette_source.jpg differ diff --git a/2024-father-and-son/assets/soundtrack.wav b/2024-father-and-son/assets/soundtrack.wav new file mode 100644 index 0000000..5a31231 Binary files /dev/null and b/2024-father-and-son/assets/soundtrack.wav differ diff --git a/2024-father-and-son/game b/2024-father-and-son/game new file mode 100755 index 0000000..d915338 Binary files /dev/null and b/2024-father-and-son/game differ diff --git a/2024-father-and-son/shaders/radial_light.fs b/2024-father-and-son/shaders/radial_light.fs new file mode 100644 index 0000000..7562165 --- /dev/null +++ b/2024-father-and-son/shaders/radial_light.fs @@ -0,0 +1,41 @@ +#version 330 // Adjust version if needed + +// Our uniforms (variables passed from the CPU code): +uniform vec2 lightPos; // Torch position in *screen* coordinates +uniform float radius; // How far the torch reaches +uniform float intensity; // Brightness at the center + +// Varyings from raylib's default vertex shader +in vec2 fragTexCoord; // [0..1] texture coordinates +in vec4 fragColor; // Not often needed here + +// The texture(s) we read from +uniform sampler2D texture0; + +// Final color we output +out vec4 finalColor; + +void main() +{ + // Grab whatever is in the render texture at this pixel: + vec4 color = texture(texture0, fragTexCoord); + + // Convert fragTexCoord from [0..1] range into actual screen coords. + // If your screen is 1280x720, for example: + vec2 screenCoord = vec2(fragTexCoord.x * 1280.0, + fragTexCoord.y * 720.0); + + // Distance from this pixel to the torch center: + float dist = distance(screenCoord, lightPos); + + // Basic “1 - distance/radius” falloff. + // Then clamp so it won’t go below 0 or above 1. + float factor = 1.0 - (dist / radius); + factor = clamp(factor, 0.0, 1.0); + + // Multiply by intensity if you want the center brighter or dimmer. + factor *= intensity; + + // Multiply the original color by our factor: + finalColor = vec4(color.rgb * factor, color.a); +} diff --git a/2024-father-and-son/src/main.cpp b/2024-father-and-son/src/main.cpp new file mode 100644 index 0000000..bf090c8 --- /dev/null +++ b/2024-father-and-son/src/main.cpp @@ -0,0 +1,266 @@ +#include + +class Player +{ +private: + Vector2 position = {0, 0}; + Vector2 spriteSize = {1.0f, 1.0f}; + Texture2D texture = {0}; + Rectangle frameRec = {0.0f, 0.0f, 0.0f, 0.0f}; + float scale = 1.0f; + bool loaded = false; + int currentFrame = 0; + int framesCounter = 0; + int framesSpeed = 8; + +public: + Player() = default; + + Player(const char *path, Vector2 textureGrid) + { + load(path, textureGrid); + } + + void load(const char *path, Vector2 textureGrid) + { + texture = LoadTexture(path); + spriteSize.x = texture.width / textureGrid.x; + spriteSize.y = texture.height / textureGrid.y; + frameRec = {0.0f, 0.0f, spriteSize.x, spriteSize.y}; + scale = GetScreenHeight() / texture.height / 2.0f; + loaded = true; + position = {0,0}; + } + + ~Player() + { + if (loaded) + { + UnloadTexture(texture); + } + } + + void update() + { + framesCounter++; + + if (framesCounter >= (60/framesSpeed)) + { + framesCounter = 0; + currentFrame++; + + if (currentFrame > 5) currentFrame = 0; + + frameRec.x = (float)currentFrame * spriteSize.x; + } + + if (IsKeyDown(KEY_RIGHT)){ + position.x += 2.0f; + frameRec.width = spriteSize.x; + } + + if (IsKeyDown(KEY_LEFT)){ + position.x -= 2.0f; + frameRec.width = -spriteSize.x; + } + if (IsKeyDown(KEY_DOWN)){ + position.y += 2.0f; + } + if (IsKeyDown(KEY_UP)){ + position.y -= 2.0f; + } + + scale = GetScreenHeight() / texture.height / 2.0f; + + } + + void draw() + { + if (loaded) + { + Rectangle dest = {position.x, position.y, spriteSize.x * scale, spriteSize.y * scale}; + Vector2 origin = {0.0f, 0.0f}; + DrawTexturePro(texture, frameRec, dest, origin, 0.0f, WHITE); + } + } + + + Vector2 getPosition() { return position; } + Vector2 getSpriteSize() { return spriteSize; } + float getScale() { return scale;} +}; + +/////////////////////////////////////////////////////////////////////////// + +class Background +{ +private: + Texture2D texture = {0}; + float scrolling = 0.0f; + float scale = 1.0f; + bool loaded = false; + +public: + Background() = default; + + Background(const char *path) { load(path); } + + void load(const char *path) + { + texture = LoadTexture(path); + scale = GetScreenHeight() / texture.height; + loaded = true; + } + + ~Background() + { + if (loaded) + { + UnloadTexture(texture); + } + } + + void update() + { + // updateScrolling(); + scale = GetScreenHeight() / texture.height; + + } + + void draw() + { + if (!loaded) + return; + for (int i = -1; i <= 1; i++) + { + DrawTextureEx(texture, {scrolling + i * texture.width * scale, 0.0f}, 0.0f, scale, WHITE); + } + } +}; + +/////////////////////////////////////////////////////////////////////////// + +class CameraController +{ +private: + Camera2D camera; + Vector2 center; + Vector2 targetOffset; + float transitionSpeed = 0.01f; // Speed of transition + +public: + + void initialize(Vector2 position, Vector2 spriteSize) + { + center = {(GetScreenWidth() / 2.0f) - (spriteSize.x / 2.0f), (GetScreenHeight() / 2.0f) - (spriteSize.y / 2.0f)}; + camera = { + .offset = center, + .target = position, + .rotation = 0.0f, + .zoom = 1.0f}; + targetOffset = camera.offset; + } + + void update(Vector2 position, Vector2 spriteSize, float scale) + { + if (IsKeyDown(KEY_RIGHT)) + targetOffset = {(GetScreenWidth() / 2.0f) - (spriteSize.x * scale / 2.0f) - (GetScreenWidth() / 4.0f), (GetScreenHeight() / 2.0f) - (spriteSize.y * scale / 2.0f)}; + if (IsKeyDown(KEY_LEFT)) + targetOffset = {(GetScreenWidth() / 2.0f) - (spriteSize.x * scale / 2.0f) + (GetScreenWidth() / 4.0f), (GetScreenHeight() / 2.0f) - (spriteSize.y * scale / 2.0f)}; + if (IsKeyDown(KEY_UP) || IsKeyDown(KEY_DOWN)) + targetOffset = center; // Reset to center for vertical movement or no horizontal input. + + // Smooth transition using LERP + camera.offset.x += (targetOffset.x - camera.offset.x) * transitionSpeed; + camera.offset.y += (targetOffset.y - camera.offset.y) * transitionSpeed; + + camera.target = position; + } + + Camera2D getCamera() const { return camera; } +}; + +/////////////////////////////////////////////////////////////////////////// + +class Game +{ +private: + Player player; + Background background; + Background midground; + Background foreground; + CameraController camera; + +public: + Game() = default; + + void initialize() + { + player.load("assets/character.png", {4.0f, 12.0f}); + // background.load("assets/background.png"); + // midground.load("assets/midground.png"); + // foreground.load("assets/foreground.png"); + camera.initialize(player.getPosition(),player.getSpriteSize()); + } + + void update() + { + player.update(); + camera.update(player.getPosition(),player.getSpriteSize(), player.getScale()); + // background.update(); + + } + + void render() + { + BeginDrawing(); + ClearBackground(BLACK); + BeginMode2D(camera.getCamera()); + background.draw(); + midground.draw(); + foreground.draw(); + player.draw(); + EndMode2D(); + drawDebug(); + EndDrawing(); + } + + void shutdown() + { + CloseWindow(); + } + +private: + + void drawDebug (){ + DrawCircle(camera.getCamera().offset.x,camera.getCamera().offset.y,20,RED); + DrawText(TextFormat("camera.offset.x: %f",camera.getCamera().offset.x),0,0,20,WHITE); + DrawText(TextFormat("camera.offset.y: %f",camera.getCamera().offset.y),0,20,20,WHITE); + + DrawCircle(camera.getCamera().target.x,camera.getCamera().target.y,30,BLUE); + DrawText(TextFormat("camera.target.x: %f",camera.getCamera().target.x),0,40,20,WHITE); + DrawText(TextFormat("camera.target.y: %f",camera.getCamera().target.y),0,60,20,WHITE); + + DrawCircle(player.getPosition().x,player.getPosition().y,20,GREEN); + DrawText(TextFormat("player.position.x: %f",player.getPosition().x),0,80,20,WHITE); + DrawText(TextFormat("player.position.y: %f",player.getPosition().y),0,100,20,WHITE); + } + +}; + +/////////////////////////////////////////////////////////////////////////// + +int main() +{ + InitWindow(1280, 720, "Father and Son"); + SetTargetFPS(60); + Game game; + game.initialize(); + while (!WindowShouldClose()) + { + game.update(); + game.render(); + } + game.shutdown(); + return 0; +} diff --git a/2024-father-and-son/src/main_old b/2024-father-and-son/src/main_old new file mode 100644 index 0000000..d8d74f4 --- /dev/null +++ b/2024-father-and-son/src/main_old @@ -0,0 +1,317 @@ +#include "raylib.h" +#include + +// const char *title = "Father and son"; + +// int screenWidth = 1280; +// int screenHeight = 720; + +// int FPS = 60; + +float distanceBack = 40.0f; +float distanceMid = 20.0f; +float distanceFore = 10.0f; + +float charSpriteHeight = 256.0f; +float bottomSpace = 64.0f; +Vector2 charPos = { + static_cast(screenWidth) / 2.0f - 128.0f, + static_cast(screenHeight) - (256.0f + 64.0f) +}; + +// Dialog & font +int fontSize = 20; +int steps = 0; + +// Tints +Color backgroundTint = {171, 157, 146, 100}; +Color midgroundTint = {171, 157, 146, 130}; +Color foregroundTint = {171, 157, 146, 150}; +Color characterTint = {171, 157, 146, 100}; + +// Dialog struct and list +typedef struct { + const char *text; + int next; +} Dialog; + +Dialog dialogs[] = { + {"Son: Father?", 1}, + {"Father: Everything ok?", 2}, + {"Son: When do we reach the coast?", 3}, + {"Father: It will take some time.", 4}, + {"Son: I am tired.", -1} +}; + +const char *continueDialog = "[Press SPACE to continue]"; + +// Simple control structure for movement +struct Control { + int direction; + float speed; +}; + +// Get input function +Control getInput() { + int direction = 1; + float speed = 0.0f; + + if (IsKeyDown(KEY_RIGHT)) { + direction = 1; + speed = 7.5f; + } + else if (IsKeyDown(KEY_LEFT)) { + direction = -1; + speed = 7.5f; + } + else { + direction = 1; + speed = 0.0f; + } + + Control input; + input.direction = direction; + input.speed = speed; + return input; +} + +// Character class +class Character { +private: + Texture2D sprite; + Rectangle frameRec; + Vector2 position; + int framesCounter; + int currentFrame; + int framesSpeed; + +public: + Character(const char* filePath, Vector2 pos) { + sprite = LoadTexture(filePath); + position = pos; + frameRec = {0.0f, 0.0f, static_cast(sprite.width) / 6, static_cast(sprite.height)}; + framesCounter = 0; + currentFrame = 0; + framesSpeed = 0; + } + + ~Character() { + UnloadTexture(sprite); + } + + void Update(int direction, float speed) { + if (direction != 0) { + framesSpeed = 30; + } + else { + framesSpeed = 0; + currentFrame = 4; + } + + framesCounter++; + + if (framesSpeed > 0 && framesCounter >= (480 / framesSpeed)) { + framesCounter = 0; + currentFrame++; + if (currentFrame > 5) currentFrame = 0; + frameRec.x = static_cast(currentFrame) * (sprite.width / 6.0f); + } + } + + void Draw(int direction) { + Rectangle sourceRec = frameRec; + if (direction == -1) { + sourceRec.width *= -1; + } + DrawTextureRec(sprite, sourceRec, position, WHITE); + } +}; + +class Background { +private: + Texture2D texture; + float scrolling = 0.0f; + float scale; + +public: + Background(const char* filePath, float initialScale = 1.0f) { + texture = LoadTexture(filePath); + scale = initialScale; + } + + ~Background() { + UnloadTexture(texture); + } + + Texture2D GetTexture() const { + return texture; + } + + void Update(int direction, float speed, float distance) { + scrolling -= direction * (speed / distance); + float textureWidth = static_cast(texture.width) * scale; + + if (scrolling <= -textureWidth) { + scrolling += textureWidth; + } + else if (scrolling >= textureWidth) { + scrolling -= textureWidth; + } + } + + void Draw() { + float textureWidth = static_cast(texture.width) * scale; + + DrawTextureEx(texture, {scrolling - textureWidth, 0}, 0.0f, scale, WHITE); + DrawTextureEx(texture, {scrolling, 0}, 0.0f, scale, WHITE); + DrawTextureEx(texture, {scrolling + textureWidth,0}, 0.0f, scale, WHITE); + } + + void SetScale(float newScale) { + scale = newScale; + } +}; + +void AdjustBackgroundScale(Background& bg) { + Texture2D texture = bg.GetTexture(); + float scaleX = static_cast(GetScreenWidth()) / texture.width; + float scaleY = static_cast(GetScreenHeight()) / texture.height; + bg.SetScale(fmaxf(scaleX, scaleY)); +} + +int main(void) { + InitWindow(screenWidth, screenHeight, title); + SetTargetFPS(FPS); + + Shader radialLightShader = LoadShader(NULL, "shaders/radial_light.fs"); + int lightPosLoc = GetShaderLocation(radialLightShader, "lightPos"); + int radiusLoc = GetShaderLocation(radialLightShader, "radius"); + int intensityLoc = GetShaderLocation(radialLightShader, "intensity"); + + float torchRadius = 1200.0f; + float torchIntensity = 1.0f; + + RenderTexture2D mainTarget = LoadRenderTexture(screenWidth, screenHeight); + + InitAudioDevice(); + Music music = LoadMusicStream("assets/soundtrack.mp3"); + PlayMusicStream(music); + SetMusicVolume(music, 0.0f); + + Character character("assets/father-and-son.png", charPos); + Background background("assets/background.png"); + Background midground("assets/midground.png"); + Background foreground("assets/foreground.png"); + + AdjustBackgroundScale(background); + AdjustBackgroundScale(midground); + AdjustBackgroundScale(foreground); + + int currentDialog = 0; + bool dialogActive = true; + + while (!WindowShouldClose()) { + UpdateMusicStream(music); + + Control input = getInput(); + + if (input.direction == 1 && input.speed == 7.5f) { + steps++; + } + + if (torchRadius > 1.0f) { + torchRadius -= 1.0f; + torchIntensity -= 0.001f; + } + else { + torchRadius = 0.01f; + torchIntensity = 0.001f; + + } + + character.Update(input.direction, input.speed); + background.Update(input.direction, input.speed, distanceBack); + midground.Update(input.direction, input.speed, distanceMid); + foreground.Update(input.direction, input.speed, distanceFore); + + BeginTextureMode(mainTarget); + ClearBackground(BLACK); + + background.Draw(); + DrawRectangle(0, 0, screenWidth, screenHeight, backgroundTint); + + midground.Draw(); + DrawRectangle(0, 0, screenWidth, screenHeight, midgroundTint); + + foreground.Draw(); + DrawRectangle(0, 0, screenWidth, screenHeight, foregroundTint); + + character.Draw(input.direction); + DrawRectangle(0, 0, screenWidth, screenHeight, characterTint); + EndTextureMode(); + + BeginDrawing(); + ClearBackground(BLACK); + + Vector2 torchPos; + if (input.direction == 1) { + torchPos = {charPos.x + 219.0f, charPos.y - 120.0f}; + } else { + torchPos = {charPos.x + (256.0f - 219.0f), charPos.y - 120.0f}; + } + + SetShaderValue(radialLightShader, lightPosLoc, &torchPos, SHADER_UNIFORM_VEC2); + SetShaderValue(radialLightShader, radiusLoc, &torchRadius, SHADER_UNIFORM_FLOAT); + SetShaderValue(radialLightShader, intensityLoc, &torchIntensity, SHADER_UNIFORM_FLOAT); + + BeginShaderMode(radialLightShader); + DrawTextureRec( + mainTarget.texture, + Rectangle{ + 0.0f, + 0.0f, + static_cast(mainTarget.texture.width), + static_cast(-mainTarget.texture.height) + }, + Vector2{0.0f, 0.0f}, + WHITE + ); + EndShaderMode(); + + if (dialogActive && IsKeyPressed(KEY_SPACE)) { + if (dialogs[currentDialog].next == -1) { + dialogActive = false; + } else { + currentDialog = dialogs[currentDialog].next; + } + } + + int textWidthDialog = MeasureText(dialogs[currentDialog].text, fontSize); + int textWidthContinueDialog = MeasureText(continueDialog, fontSize); + + if (torchRadius < 1.0f) { + DrawText( + dialogs[currentDialog].text, + (screenWidth / 2) - (textWidthDialog / 2), + screenHeight / 2, + fontSize, + WHITE + ); + DrawText( + continueDialog, + (screenWidth / 2) - (textWidthContinueDialog / 2), + screenHeight - 50, + fontSize, + DARKGRAY + ); + } + + EndDrawing(); + } + + UnloadMusicStream(music); + CloseAudioDevice(); + CloseWindow(); + + return 0; +} diff --git a/2024-platformer b/2024-platformer new file mode 160000 index 0000000..7c85b78 --- /dev/null +++ b/2024-platformer @@ -0,0 +1 @@ +Subproject commit 7c85b78f7f1bb7254728d88b353c2dfe2c0a0091 diff --git a/2025-rpg/Makefile b/2025-rpg/Makefile new file mode 100644 index 0000000..daf1ab7 --- /dev/null +++ b/2025-rpg/Makefile @@ -0,0 +1,16 @@ +CC = gcc +CFLAGS = -Wall -std=c99 +INCLUDE_PATH = -I/opt/homebrew/include +LIB_PATH = -L/opt/homebrew/Cellar/raylib/5.0/lib +LDFLAGS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit +TARGET = game +SRC = main.c # add here more source files + +$(TARGET): $(SRC) + $(CC) $(CFLAGS) $(INCLUDE_PATH) -o $(TARGET) $(SRC) $(LIB_PATH) $(LDFLAGS) + +clean: + rm -f $(TARGET) + +run: clean $(TARGET) + ./$(TARGET) \ No newline at end of file diff --git a/2025-rpg/README.md b/2025-rpg/README.md new file mode 100644 index 0000000..14c71fa --- /dev/null +++ b/2025-rpg/README.md @@ -0,0 +1,51 @@ + +# RPG + +## Overview +This project is an RPG game built using the [raylib](https://www.raylib.com/) library. The game uses raylib for rendering, input handling, and other graphical features. + +## Prerequisites +Before building and running the game, ensure you have the following installed on your system: + +- **raylib**: The game relies on raylib for graphical rendering. You can install it via Homebrew or other package managers. For Homebrew: + ```bash + brew install raylib + ``` +- **Make**: A build automation tool to compile the game. +- **C Compiler**: Ensure a C compiler like `gcc` or `clang` is installed on your system. + +## Configuration +Update the `Makefile` to reflect your raylib installation paths. Below is an example configuration: + +```Makefile +INCLUDE_PATH = -I/opt/homebrew/include +LIB_PATH = -L/opt/homebrew/Cellar/raylib/5.0/lib +LDFLAGS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit +``` + +Replace the paths if raylib is installed in a different location on your system. + +## Building the Game + +- **Build the game:** + ```bash + make + ``` + +## Running the Game + +- **Run the game:** + ```bash + make run + ``` + +## Troubleshooting +- Ensure the paths in the `Makefile` point to the correct raylib installation directories. +- If raylib is not installed, install it using your package manager. +- For macOS users, ensure `-framework OpenGL`, `-framework Cocoa`, and `-framework IOKit` are included in the `LDFLAGS`. + +## License +This project is distributed under the MIT License. See the `LICENSE` file for details. + +## Contributions +Contributions are welcome! Feel free to fork the repository and submit pull requests. diff --git a/2025-rpg/game b/2025-rpg/game new file mode 100644 index 0000000..6481238 Binary files /dev/null and b/2025-rpg/game differ diff --git a/2025-rpg/main.c b/2025-rpg/main.c new file mode 100644 index 0000000..9287d00 --- /dev/null +++ b/2025-rpg/main.c @@ -0,0 +1,229 @@ +#include +#include + +const int TILEMAP_COLUMNS = 16; +const int TILEMAP_ROWS = 10; +const int TILE_WIDTH = 8; +const int TILE_HEIGHT = 8; +const int WORLD_WIDTH = 100; +const int WORLD_HEIGHT = 100; +const int screenWidth = 800; +const int screenHeight = 600; +const char *gameTitle = "RPG"; +const int fps = 60; + +// Camera +Camera2D camera = {0}; +const Vector2 initialTarget = {0, 0}; +const Vector2 initialOffset = {(float)(screenWidth / 2) - TILE_WIDTH, (float)(screenHeight / 2) - TILE_HEIGHT}; +const float initialRotation = 0.0f; +const float initialZoom = 5.0f; + +// Texture +const int MAX_TEXTURES = 1; +typedef enum +{ + TEXTURE_TILEMAP = 0 +} texture_asset; + +Texture2D textures[MAX_TEXTURES]; + +typedef struct +{ + int x; + int y; +} sTile; + +sTile world[WORLD_WIDTH][WORLD_HEIGHT]; + +// player +typedef struct +{ + int x; + int y; +} sEntity; + +sEntity player; + +// Audios +const int MAX_SOUNDS = 1; +typedef enum +{ + SOUNDTRACK_AUDIO = 0 +} audio_asset; + +Sound sounds[MAX_SOUNDS]; + +// functions +void DrawTile(int pos_x, int pos_y, int tile_x, int tile_y) +{ + + Rectangle source = { + (float)(TILE_WIDTH * tile_x), + (float)(TILE_HEIGHT * tile_y), + (float)(TILE_WIDTH), + (float)(TILE_HEIGHT)}; + + Rectangle dest = { + (float)(pos_x), + (float)(pos_y), + (float)(TILE_WIDTH), + (float)(TILE_HEIGHT)}; + + Vector2 origin = {0, 0}; + + DrawTexturePro(textures[TEXTURE_TILEMAP], source, dest, origin, 0.0f, WHITE); +} + +void GameStartup(Vector2 initialTarget, Vector2 initialOffset, float initialRotation, float initialZoom) +{ + // Player setup + player = (sEntity){ + .x = 0, + .y = 0}; + + // Camera setup + camera.target = (Vector2){player.x, player.y}; + camera.offset = initialOffset; + camera.rotation = initialRotation; + camera.zoom = initialZoom; + + // Audio setup + InitAudioDevice(); + Wave wave = LoadWave("assets/wav/Dark Ambient 1.wav"); + sounds[SOUNDTRACK_AUDIO] = LoadSoundFromWave(wave); + UnloadWave(wave); + PlaySound(sounds[SOUNDTRACK_AUDIO]); + + // Texture setup + Image image = LoadImage("assets/Tilemap/colored_tilemap_packed.png"); + textures[TEXTURE_TILEMAP] = LoadTextureFromImage(image); + UnloadImage(image); + + // World setup + + for (int i = 0; i < WORLD_WIDTH; i++) + { + for (int j = 0; j < WORLD_HEIGHT; j++) + { + world[i][j] = (sTile){ + .x = i, + .y = j, + }; + } + } +} + +void GameUpdate() +{ + // WASD Movement + if (IsKeyReleased(KEY_A)) + player.x -= 8.0f; + if (IsKeyReleased(KEY_D)) + player.x += 8.0f; + if (IsKeyReleased(KEY_W)) + player.y -= 8.0f; + if (IsKeyReleased(KEY_S)) + player.y += 8.0f; + + // Arrow movement + if (IsKeyReleased(KEY_LEFT)) + player.x -= 8.0f; + if (IsKeyReleased(KEY_RIGHT)) + player.x += 8.0f; + if (IsKeyReleased(KEY_UP)) + player.y -= 8.0f; + if (IsKeyReleased(KEY_DOWN)) + player.y += 8.0f; + + camera.target.x = player.x + TILE_WIDTH / 2; + camera.target.y = player.y + TILE_HEIGHT / 2; + + printf("Player X%d", player.x); + + // MouseWheelZoom + float wheelMove = GetMouseWheelMove(); + if (wheelMove != 0) + { + const float zoomIncrement = 0.125f; + camera.zoom += wheelMove * zoomIncrement; + if (camera.zoom < 2.5f) + camera.zoom = 2.5f; + if (camera.zoom > 10.0f) + camera.zoom = 10.0f; + } +} + +void GameRender(Vector2 initialTarget) +{ + BeginDrawing(); + ClearBackground(BLACK); + BeginMode2D(camera); + + // Floor + for (int i = 0; i < WORLD_WIDTH; i++) + { + for (int j = 0; j < WORLD_HEIGHT; j++) + { + sTile tile = world[i][j]; + DrawTile(tile.x * TILE_WIDTH, tile.y * TILE_HEIGHT, 4, 4); + } + } + + // Grid + for (int x = -WORLD_WIDTH * TILE_WIDTH * 10; x <= WORLD_WIDTH * TILE_WIDTH * 10; x += TILE_WIDTH) + { + DrawLine(x, -1000, x, 1000, GRAY); + } + for (int y = -WORLD_WIDTH * TILE_WIDTH * 10; y <= WORLD_WIDTH * TILE_WIDTH * 10; y += TILE_WIDTH) + { + DrawLine(-1000, y, 1000, y, GRAY); + } + + // Manual + DrawText("Use WASD to move the camera", 10, 10, 10, LIGHTGRAY); + DrawText("Scroll to zoom in/out", 10, 40, 10, LIGHTGRAY); + + // Player + DrawTile(player.x, player.y, 15, 0); + + EndMode2D(); + + // Debug + DrawText(TextFormat("Player X: %.2f", player.x), 10, 0, 20, LIGHTGRAY); + DrawText(TextFormat("Player Y: %.2f", player.y), 10, 20, 20, LIGHTGRAY); + DrawText(TextFormat("Zoom Level: %.2f", camera.zoom), 10, 80, 20, LIGHTGRAY); + + EndDrawing(); +} + +void GameShutdown() +{ + + for (int i = 0; i < MAX_TEXTURES; i++) + { + UnloadTexture(textures[i]); + } + + for (int i = 0; i < MAX_SOUNDS; i++) + { + UnloadSound(sounds[i]); + } + + CloseAudioDevice(); +} + +int main() +{ + InitWindow(screenWidth, screenHeight, gameTitle); + SetTargetFPS(fps); + GameStartup(initialTarget, initialOffset, initialRotation, initialZoom); + while (!WindowShouldClose()) + { + GameUpdate(); + GameRender(initialTarget); + } + GameShutdown(); + CloseWindow(); + return 0; +}