Dodano mozliwosc zarzadania slotami

This commit is contained in:
jakzar 2024-03-10 15:03:56 +01:00
parent c9d5b8684c
commit 8a54333c43
3 changed files with 107 additions and 10 deletions

22
Slot.py Normal file
View File

@ -0,0 +1,22 @@
import pygame
CUBE_SIZE=128
WIDTH = 1024
HEIGHT = 512
BLACK=(0,0,0)
BORDER_COLOR=BLACK
BORDER_THICKNESS=1 #Has to be INT value
class Slot:
def __init__(self,x_axis,y_axis,color,screen): #TODO crop and related to it things handling. for now as a place holder crop=>color
self.x_axis=x_axis
self.y_axis=y_axis
self.color=color
self.screen=screen
self.field=pygame.Rect(self.x_axis*CUBE_SIZE,self.y_axis*CUBE_SIZE,CUBE_SIZE,CUBE_SIZE)
def draw(self):
pygame.draw.rect(self.screen,self.color,self.field,0) #Draw field
pygame.draw.rect(self.screen,BLACK,self.field,BORDER_THICKNESS) #Draw border
pygame.display.update()
def color_change(self,color):
self.color=color
self.draw()

BIN
images/traktor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

95
main.py
View File

@ -1,16 +1,91 @@
# This is a sample Python script.
import pygame
import Slot
import random
import time
# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
pygame.init()
def print_hi(name):
# Use a breakpoint in the code line below to debug your script.
print(f'Hi, {name}') # Press ⌘F8 to toggle the breakpoint.
BLACK = (0, 0, 0)
BROWN = (139, 69, 19)
WHITE = (255, 255, 255)
RED=(255,0,0)
GREEN=(0,255,0)
CUBE_SIZE = 128
NUM_X = 8
NUM_Y = 4
WIDTH = 1024
HEIGHT = 512
screen = pygame.display.set_mode((WIDTH, HEIGHT))
screen.fill(WHITE)
pygame.display.update()
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print_hi('AI Team')
# See PyCharm help at https://www.jetbrains.com/help/pycharm/
SLOT_DICT={} #Slot are stored in dictionary with key being a Tuple of x and y coordinates so top left slot key is (0,0) and value is slot object
"""#Draw grid and tractor (old one)
def draw_grid():
for x in range(0, 8):
pygame.draw.line(screen, BLACK, (x*CUBE_SIZE, 0), (x*CUBE_SIZE, HEIGHT)) #We got 8 lines in Y axis so to draw them we use x from range <0,7) to make slot manage easier
for y in range(0, 5):
pygame.draw.line(screen, BLACK, (0, y*CUBE_SIZE), (WIDTH, y*CUBE_SIZE)) #We got 4 lines in X axis so to draw them we use y from range <0,5) to make slot manage easier
# Draw tractor
tractor_image = pygame.image.load('images/traktor.png')
tractor_image = pygame.transform.scale(tractor_image, (CUBE_SIZE, CUBE_SIZE))
screen.blit(tractor_image, (CUBE_SIZE - 128, CUBE_SIZE - 128))"""
def draw_tractor(): #TODO? I think we should move draw_tractor to tractor class in the future
tractor_image = pygame.image.load('images/traktor.png')
tractor_image = pygame.transform.scale(tractor_image, (CUBE_SIZE, CUBE_SIZE))
screen.blit(tractor_image, (CUBE_SIZE - 128, CUBE_SIZE - 128))
pygame.display.update()
#Draw grid and tractor (new one)
def draw_grid():
for x in range(0,8):
for y in range(0,5):
new_slot=Slot.Slot(x,y,BROWN,screen)
SLOT_DICT[(x,y)]=new_slot
for entity in SLOT_DICT:
SLOT_DICT[entity].draw()
draw_tractor()
def change_color_of_slot(coordinates,color):
SLOT_DICT[coordinates].color_change(color)
def random_color():
x=random.randint(0,3)
switcher={0:BROWN,
1:GREEN,
2:RED,
3:WHITE}
return switcher[x]
def randomize_colors():
font=pygame.font.Font('freesansbold.ttf',32)
text=font.render('Randomizing crops',True,BLACK,WHITE)
textRect=text.get_rect()
textRect.center=(WIDTH//2,HEIGHT//2)
screen.blit(text,textRect)
pygame.display.update()
time.sleep(3)
for coordinates in SLOT_DICT:
SLOT_DICT[coordinates].color_change(random_color())
draw_tractor()
def init_demo():
draw_grid()
time.sleep(2)
randomize_colors()
init_demo()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit()