35 lines
1.5 KiB
Python
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))
|