XsedoX
deabeeac43
step_onto -> put_on(zmiana nazwy), dziala poprawnie(maly bug byl);funkcja put_on_tile(row, column, obj) sluzy polozeniu danego obiektu na danym tilu, przyklad uzycia zakomentowany w game.py(wywolujcie po spawnerze, bo nadpisze pozycje xd); dorobilem wlasny exception, gdy tile jest zajety w pliku exceptions.py - moze sie przyda ten plik
29 lines
850 B
Python
29 lines
850 B
Python
import pygame
|
|
|
|
from logic.exceptions import FieldNotWalkable
|
|
|
|
|
|
class Field(pygame.sprite.Sprite):
|
|
def __init__(self, texture_path, converted_texture, img, rect, row=0, column=0):
|
|
super().__init__()
|
|
self.texture_path = texture_path
|
|
self.converted_texture = converted_texture
|
|
self.image = img
|
|
self.row = row
|
|
self.column = column
|
|
self.rect = rect
|
|
self.busy = False
|
|
self.busy_detection()
|
|
|
|
def busy_detection(self):
|
|
if self.texture_path == 'water.png' or self.texture_path == 'grass_with_tree.jpg':
|
|
self.busy = True
|
|
|
|
def put_on(self, obj): # ustawia objekt na srodku pola
|
|
if not self.busy:
|
|
obj.rect = obj.rect.clamp(self.rect)
|
|
self.busy = True
|
|
obj.update()
|
|
else:
|
|
raise FieldNotWalkable
|