Added static plants, fixed cat moving out of the world
Reviewed-on: s473601/Machine_learning_2023#10 Reviewed-by: Tim Barvenov <timbar@st.amu.edu.pl>
This commit is contained in:
commit
adf4eaee00
Binary file not shown.
Before Width: | Height: | Size: 38 KiB |
Binary file not shown.
Before Width: | Height: | Size: 30 KiB |
Binary file not shown.
Before Width: | Height: | Size: 39 KiB |
@ -20,6 +20,13 @@ def initial_draw(window_dimensions, board_size):
|
||||
newGrid = Grid(board_size, window_dimensions=window_dimensions, board_size=board_size)
|
||||
newGrid.add(objectOnTile(1, 1, acceptedType.PLAYER))
|
||||
newGrid.add(objectOnTile(7, 8, acceptedType.ANIMAL))
|
||||
newGrid.add(objectOnTile(2, 8, acceptedType.PLANT1))
|
||||
newGrid.add(objectOnTile(4, 1, acceptedType.PLANT1))
|
||||
newGrid.add(objectOnTile(3, 4, acceptedType.PLANT2))
|
||||
newGrid.add(objectOnTile(8, 8, acceptedType.PLANT2))
|
||||
newGrid.add(objectOnTile(9, 3, acceptedType.PLANT3))
|
||||
|
||||
|
||||
player = newGrid.findFirst(acceptedType.PLAYER)
|
||||
newGrid.move(1, 1, 1, 2)
|
||||
newGrid.move(1, 2, 1, 1)
|
||||
@ -52,7 +59,9 @@ class acceptedType(Enum):
|
||||
EMPTY = "empty"
|
||||
PLAYER = "player"
|
||||
RUBBISH = "rubbish"
|
||||
PLANT = "plant"
|
||||
PLANT1 = "plant1"
|
||||
PLANT2 = "plant2"
|
||||
PLANT3 = "plant3"
|
||||
ANIMAL = "animal"
|
||||
|
||||
|
||||
@ -79,6 +88,7 @@ class Grid:
|
||||
self.list: List[objectOnTile] = []
|
||||
|
||||
self.tile_size = window_dimensions / board_size
|
||||
self.board_size = board_size
|
||||
|
||||
self.cat_last_tick = pygame.time.get_ticks()
|
||||
self.cat_cooldown = 1000
|
||||
@ -91,6 +101,9 @@ class Grid:
|
||||
self.cat_left_image = pygame.transform.scale(pygame.image.load("Interface/images/cat/standing_left.png"), (self.tile_size, self.tile_size))
|
||||
self.cat_right_image = pygame.transform.scale(pygame.image.load("Interface/images/cat/standing_right.png"), (self.tile_size, self.tile_size))
|
||||
self.cat_current_image = self.cat_front_image
|
||||
self.plant1 = pygame.transform.scale(pygame.image.load("Interface/images/plants/plant1.png"), (self.tile_size + self.tile_size/4, self.tile_size + self.tile_size/4))
|
||||
self.plant2 = pygame.transform.scale(pygame.image.load("Interface/images/plants/plant2.png"), (self.tile_size + self.tile_size/4, self.tile_size + self.tile_size/4))
|
||||
self.plant3 = pygame.transform.scale(pygame.image.load("Interface/images/plants/plant3.png"), (self.tile_size + self.tile_size/4, self.tile_size + self.tile_size/4))
|
||||
#endregion
|
||||
|
||||
# render the array
|
||||
@ -123,8 +136,12 @@ class Grid:
|
||||
now = pygame.time.get_ticks()
|
||||
#region cat random movement
|
||||
if now - self.cat_last_tick >= self.cat_cooldown:
|
||||
|
||||
if self.cat_busy == False:
|
||||
self.cat_direction = random.randint(0,3)
|
||||
while True:
|
||||
self.cat_direction = random.randint(0,3)
|
||||
if not((self.cat_direction == 0 and item.position_y == 0) or (self.cat_direction == 1 and item.position_x == self.board_size - 1) or (self.cat_direction == 2 and item.position_y == self.board_size - 1) or (self.cat_direction == 3 and item.position_x == 0)):
|
||||
break
|
||||
|
||||
if self.cat_direction == 0: #up
|
||||
if self.cat_current_image == self.cat_back_image:
|
||||
@ -162,7 +179,16 @@ class Grid:
|
||||
|
||||
drawer.image(render_x, render_y, self.cat_current_image)
|
||||
|
||||
# TODO act accordingly to other options
|
||||
if item.type == acceptedType.PLANT1:
|
||||
drawer.image((item.position_x - 0.1) * self.tile_size, (item.position_y - 0.25) * self.tile_size, self.plant1)
|
||||
if item.type == acceptedType.PLANT2:
|
||||
drawer.image((item.position_x - 0.1) * self.tile_size, (item.position_y - 0.25) * self.tile_size, self.plant2)
|
||||
if item.type == acceptedType.PLANT3:
|
||||
drawer.image((item.position_x - 0.1) * self.tile_size, (item.position_y - 0.25) * self.tile_size, self.plant3)
|
||||
|
||||
|
||||
|
||||
# TODO act accordingly to other options(rubbish)
|
||||
|
||||
# add new object on grid
|
||||
def add(self, newObject: objectOnTile):
|
||||
@ -200,6 +226,13 @@ class Grid:
|
||||
if start_x == end_x and start_y == end_y:
|
||||
return
|
||||
|
||||
#check if object moves beyond border
|
||||
if end_x > self.board_size - 1 or end_y > self.board_size - 1 or end_x < 0 or end_y < 0:
|
||||
print(
|
||||
f"Cannot move object beyond board"
|
||||
)
|
||||
return
|
||||
|
||||
# check if obj exist at starting position
|
||||
if self.array[start_x][start_y].type == acceptedType.EMPTY:
|
||||
print(
|
||||
@ -214,6 +247,8 @@ class Grid:
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
|
||||
# all OK
|
||||
# change position attribute in array
|
||||
self.array[start_x][start_y].position_x = end_x
|
||||
|
Loading…
Reference in New Issue
Block a user