71 lines
3.2 KiB
Python
71 lines
3.2 KiB
Python
import pygame
|
|
import random
|
|
class game_ui():
|
|
|
|
def __init__(self,traktor,field):
|
|
self.traktor = traktor
|
|
self.field = field
|
|
self.window_name = "SI_Projekt"
|
|
self.szer = 850
|
|
self.wys = 1000
|
|
self.col =(0,255,0)
|
|
self.POLE_SZER = 700
|
|
self.POLE_WYS = 700
|
|
self.POLE_COL = (128, 128, 0)
|
|
self.POLE_POZ = (75, 75)
|
|
self.text_rect = [self.POLE_POZ[0], self.POLE_WYS + self.POLE_POZ[1] + 100]
|
|
self.pogoda_rect = [self.POLE_POZ[0], self.POLE_WYS + self.POLE_POZ[1] + 125]
|
|
self.text_weather = "Pogoda: "+self.field.get_pogoda_name()
|
|
|
|
# Init pola gry
|
|
self.okno = pygame.display.set_mode((self.szer, self.wys), 0, 32)
|
|
|
|
# Tytuł okna
|
|
pygame.display.set_caption(self.window_name)
|
|
|
|
# Tworzenie powierzchni pola
|
|
self.pole_surf = pygame.Surface([self.POLE_SZER, self.POLE_WYS])
|
|
self.pole_surf.fill(self.POLE_COL)
|
|
self.pole_surf_rect = self.pole_surf.get_rect()
|
|
self.pole_surf_rect.x = self.POLE_POZ[0]
|
|
self.pole_surf_rect.y = self.POLE_POZ[1]
|
|
self.pole1_surf = pygame.Surface([self.POLE_SZER + 150, self.POLE_WYS + 150])
|
|
self.pole1_surf.fill((0, 0, 0))
|
|
self.pole1_surf_rect = self.pole_surf.get_rect()
|
|
self.pole1_surf_rect.x = self.POLE_POZ[0] - 75
|
|
self.pole1_surf_rect.y = self.POLE_POZ[1] - 75
|
|
self.traktor_img = ["traktor_d.png", "traktor_l.png", "traktor_u.png", "traktor_r.png"]
|
|
self.field_images = []
|
|
# self.field_images_path = []
|
|
# self.random = random.randint(0,99)
|
|
for i in ['gleba_pix','gleba_chwasty_pix','sadzonka_suchi_pix','sadzonka_chwasty_pix','gleba_mokra_pix','gleba_mokra_chwasty','sadzonka_mokra_pix','sadzonka_mokra_chwasty_pix','gotowy_burak_pix']:
|
|
# self.field_images_path.append("images/"+i+"/"+i+str(self.random)+".png")
|
|
self.field_images.append(pygame.image.load("images/"+i+".png"))
|
|
|
|
# Zezwalamy na przechwytywanie klawiszy
|
|
pygame.event.pump()
|
|
|
|
def update(self):
|
|
# kolor okna
|
|
self.okno.fill(self.col)
|
|
# wstawienie pola
|
|
self.okno.blit(self.pole1_surf, self.pole1_surf_rect)
|
|
self.okno.blit(self.pole_surf, self.pole_surf_rect)
|
|
self.text_value = "Ile ruchów: " + str(self.traktor.get_moves()) + " Tryb: " + self.traktor.get_mode_name()
|
|
|
|
self.font = pygame.font.Font('freesansbold.ttf', 24)
|
|
self.text = self.font.render(self.text_value, True, (0, 0, 0), self.col)
|
|
self.text_pogoda = self.font.render(self.text_weather, True,(0, 0, 0), self.col)
|
|
self.okno.blit(self.text, self.text_rect)
|
|
self.okno.blit(self.text_pogoda, self.pogoda_rect)
|
|
for i in range(0, 10):
|
|
for j in range(0, 10):
|
|
self.pole_surf.blit(self.field_images[self.field.get_value([i,j])], (i*70, j*70))
|
|
self.traktor_actual_img = pygame.image.load('images/' + self.traktor_img[self.traktor.get_turn()])
|
|
self.okno.blit(self.traktor_actual_img,self.traktor.get_poz_on_screen())
|
|
# aktualizacja okna i wyświetlenie
|
|
pygame.display.update()
|
|
|
|
def pogoda(self):
|
|
self.text_weather = "Pogoda: "+self.field.get_pogoda_name()
|