Projekt_Si/classes/cell.py
2024-05-05 12:39:12 +02:00

35 lines
1.5 KiB
Python

import pygame
import prefs
class Cell:
def __init__(self, x, y,waga, blocking_movement=False, interactableItem=False, texture=None):
self.X = x
self.Y = y
self.waga = waga
self.rect = pygame.Rect(x * prefs.CELL_SIZE, y * prefs.CELL_SIZE, prefs.CELL_SIZE, prefs.CELL_SIZE)
self.blocking_movement = blocking_movement
self.interactableItem = interactableItem
if texture:
self.prepareTexture(texture)
else:
self.texture = texture
def blit_text(self,tekst, x, y, rozmiar_czcionki,window):
font = pygame.font.Font('freesansbold.ttf', rozmiar_czcionki)
text = font.render(str(tekst), True, (0, 255, 0), (0, 0, 128))
textRect = text.get_rect()
textRect.center = (x,y)
window.blit(text, textRect)
def prepareTexture(self, texture):
preparedTexture = pygame.image.load(texture).convert_alpha()
preparedTexture = pygame.transform.scale(preparedTexture, (prefs.CELL_SIZE, prefs.CELL_SIZE))
self.texture = preparedTexture
def update(self,window):
if(self.texture):
window.blit(self.texture, self.rect)
else:
pygame.draw.rect(window, prefs.COLORS[(self.X*prefs.GRID_SIZE+self.Y)%len(prefs.COLORS)], self.rect)
pygame.draw.line(window, (0, 0, 0), (self.rect.left, self.rect.top), (self.rect.right, self.rect.top))
pygame.draw.line(window, (0, 0, 0), (self.rect.left, self.rect.top), (self.rect.left, self.rect.bottom))