garbageCan
This commit is contained in:
commit
cb890c028c
@ -1,2 +1,3 @@
|
||||
# sztuczna_inteligencja_2023_smieciarka
|
||||
|
||||
Symulacja inteligentnej śmieciarki. Śmieciarka zbiera śmieci z kubłów wystawionych przez mieszkańców, samodzielnie je segreguje i zawozi na wysypisko.
|
12
gameContext.py
Normal file
12
gameContext.py
Normal file
@ -0,0 +1,12 @@
|
||||
import pygame
|
||||
|
||||
class GameContext:
|
||||
dust_car_speed = 20
|
||||
dust_car_position_x = 0
|
||||
dust_car_position_y = 0
|
||||
dust_car_pygame = None
|
||||
dust_car_pil = None
|
||||
canvas = None
|
||||
|
||||
def startup(game_context: GameContext):
|
||||
game_context.canvas.blit(game_context.dust_car_pygame, (game_context.dust_car_position_x, game_context.dust_car_position_y))
|
@ -1,4 +1,24 @@
|
||||
import pygame
|
||||
from gameContext import GameContext
|
||||
|
||||
def handle_game_event(event):
|
||||
return
|
||||
def handle_game_event(event, game_context: GameContext):
|
||||
dust_car_movement(event, game_context)
|
||||
return
|
||||
|
||||
def dust_car_movement(event, game_context:GameContext):
|
||||
if event.type != pygame.KEYDOWN:
|
||||
return
|
||||
(width, height) = game_context.dust_car_pil.size
|
||||
if event.key == pygame.K_LEFT:
|
||||
pygame.draw.rect(game_context.canvas, (0, 0, 0), (game_context.dust_car_position_x, game_context.dust_car_position_y, width, height))
|
||||
game_context.dust_car_position_x -= game_context.dust_car_speed
|
||||
elif event.key == pygame.K_RIGHT:
|
||||
pygame.draw.rect(game_context.canvas, (0, 0, 0), (game_context.dust_car_position_x, game_context.dust_car_position_y, width, height))
|
||||
game_context.dust_car_position_x += game_context.dust_car_speed
|
||||
elif event.key == pygame.K_UP:
|
||||
pygame.draw.rect(game_context.canvas, (0, 0, 0), (game_context.dust_car_position_x, game_context.dust_car_position_y, width, height))
|
||||
game_context.dust_car_position_y -= game_context.dust_car_speed
|
||||
elif event.key == pygame.K_DOWN:
|
||||
pygame.draw.rect(game_context.canvas, (0, 0, 0), (game_context.dust_car_position_x, game_context.dust_car_position_y, width, height))
|
||||
game_context.dust_car_position_y += game_context.dust_car_speed
|
||||
game_context.canvas.blit(game_context.dust_car_pygame, (game_context.dust_car_position_x, game_context.dust_car_position_y))
|
||||
|
21
garbage.py
Normal file
21
garbage.py
Normal file
@ -0,0 +1,21 @@
|
||||
from enum import Enum
|
||||
|
||||
class GarbageType (Enum):
|
||||
PAPER = 0,
|
||||
PLASTIC_AND_METAL = 1
|
||||
GLASS = 3
|
||||
BIO = 4
|
||||
MIXED = 5
|
||||
|
||||
class Garbage:
|
||||
img: str
|
||||
|
||||
def __init__(self, img: str) -> None:
|
||||
self.img = img
|
||||
|
||||
class RecognizedGarbage (Garbage):
|
||||
garbage_type: GarbageType
|
||||
|
||||
def __init__(self, src: Garbage, garbage_type: GarbageType) -> None:
|
||||
super().__init__(src.img)
|
||||
self.garbage_type = garbage_type
|
16
garbageCan.py
Normal file
16
garbageCan.py
Normal file
@ -0,0 +1,16 @@
|
||||
from garbage import RecognizedGarbage
|
||||
from typing import List, Tuple
|
||||
|
||||
class GarbageCan:
|
||||
position: Tuple[float, float]
|
||||
garbage: List[RecognizedGarbage]
|
||||
|
||||
def __init__(self, position: Tuple[float, float]) -> None:
|
||||
self.position = position
|
||||
self.garbage = []
|
||||
|
||||
def add_garbage(self, garbage: RecognizedGarbage) -> None:
|
||||
self.garbage.append(garbage)
|
||||
|
||||
def remove_garbage(self, garbage: RecognizedGarbage) -> None:
|
||||
self.garbage.remove(garbage)
|
BIN
imgs/container.png
Normal file
BIN
imgs/container.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 331 B |
BIN
imgs/dust_car.png
Normal file
BIN
imgs/dust_car.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 348 B |
BIN
imgs/house.jpg
BIN
imgs/house.jpg
Binary file not shown.
Before Width: | Height: | Size: 5.3 KiB |
45
main.py
45
main.py
@ -1,45 +0,0 @@
|
||||
from gameEventHandler import handle_game_event
|
||||
|
||||
import pygame
|
||||
from PIL import Image
|
||||
|
||||
|
||||
pygame.init()
|
||||
window_size = (800, 600)
|
||||
screen = pygame.display.set_mode(window_size)
|
||||
|
||||
# wczytanie mapy i ludzika (jezeli chcemy robic to bez przeksztłcania pilem i uzyc samego pygame to trzeba miec img w tym samym
|
||||
# folderze co gra)
|
||||
mapa_pil = Image.open('imgs/house.jpg')
|
||||
mapa_pygame = pygame.image.frombuffer(mapa_pil.tobytes(), mapa_pil.size, 'RGB')
|
||||
ludzik_pil = Image.open('imgs/a.jpg')
|
||||
ludzik_pygame = pygame.image.frombuffer(ludzik_pil.tobytes(), ludzik_pil.size, 'RGB')
|
||||
|
||||
# pozycja ludzika
|
||||
ludzik_x = 0
|
||||
ludzik_y = 0
|
||||
|
||||
# główna pętla gry
|
||||
while True:
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
pygame.quit()
|
||||
quit()
|
||||
elif event.type == pygame.KEYDOWN:
|
||||
if event.key == pygame.K_LEFT:
|
||||
ludzik_x -= 10
|
||||
elif event.key == pygame.K_RIGHT:
|
||||
ludzik_x += 10
|
||||
elif event.key == pygame.K_UP:
|
||||
ludzik_y -= 10
|
||||
elif event.key == pygame.K_DOWN:
|
||||
ludzik_y += 10
|
||||
|
||||
screen.fill((255, 255, 255))
|
||||
|
||||
# wyświetlenie mapy i ludzika
|
||||
screen.blit(mapa_pygame, (0, 0))
|
||||
screen.blit(ludzik_pygame, (ludzik_x, ludzik_y))
|
||||
|
||||
# odświeżenie ekranu
|
||||
pygame.display.update()
|
Loading…
Reference in New Issue
Block a user