Implementation de la base de l'engine #3
|
@ -1,3 +1,5 @@
|
||||||
|
import math
|
||||||
|
|
||||||
from src.map_manager import MapManager
|
from src.map_manager import MapManager
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,7 +10,7 @@ class Entity:
|
||||||
self.x = 8
|
self.x = 8
|
||||||
self.y = 8
|
self.y = 8
|
||||||
|
|
||||||
self.collision_rect = [-7, -7, 40, 40] # x1, y1, x2, y2
|
self.collision_rect = [-7, -7, 7, 7] # x1, y1, x2, y2
|
||||||
|
|
||||||
# Time utilisé pour les IA
|
# Time utilisé pour les IA
|
||||||
self.time = 0
|
self.time = 0
|
||||||
|
@ -29,13 +31,9 @@ class Entity:
|
||||||
|
|
||||||
top_left_corner_tile = (int((x + self.collision_rect[0]) / 16),
|
top_left_corner_tile = (int((x + self.collision_rect[0]) / 16),
|
||||||
int((y + self.collision_rect[1]) / 16))
|
int((y + self.collision_rect[1]) / 16))
|
||||||
top_right_corner_tile = (int((x + self.collision_rect[2]) / 16),
|
|
||||||
int((y + self.collision_rect[1]) / 16))
|
|
||||||
|
|
||||||
bottom_left_corner_tile = (int((x + self.collision_rect[0]) / 16),
|
bottom_right_corner_tile = (int((x + self.collision_rect[2]-1) / 16),
|
||||||
int((y + self.collision_rect[3]) / 16))
|
int((y + self.collision_rect[3]-1) / 16))
|
||||||
bottom_right_corner_tile = (int((x + self.collision_rect[2]) / 16),
|
|
||||||
int((y + self.collision_rect[3]) / 16))
|
|
||||||
|
|
||||||
collision = False
|
collision = False
|
||||||
|
|
||||||
|
@ -55,8 +53,33 @@ class Entity:
|
||||||
|
|
||||||
if not collision_x:
|
if not collision_x:
|
||||||
self.x += x
|
self.x += x
|
||||||
|
else:
|
||||||
|
i = 0
|
||||||
|
if x > 0:
|
||||||
|
while not self.get_collisions(self.x + i, self.y, map_manager):
|
||||||
|
i += 1
|
||||||
|
i -= 1
|
||||||
|
else:
|
||||||
|
while not self.get_collisions(self.x + i, self.y, map_manager):
|
||||||
|
i -= 1
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
self.x += i
|
||||||
|
|
||||||
if not collision_y:
|
if not collision_y:
|
||||||
self.y += y
|
self.y += y
|
||||||
|
else:
|
||||||
|
i = 0
|
||||||
|
if y > 0:
|
||||||
|
while not self.get_collisions(self.x, self.y + i, map_manager):
|
||||||
|
i += 1
|
||||||
|
i -= 1
|
||||||
|
else:
|
||||||
|
while not self.get_collisions(self.x, self.y + i, map_manager):
|
||||||
|
i -= 1
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
self.y += i
|
||||||
|
|
||||||
|
|
||||||
#print(top_left_corner_tile, top_right_corner_tile, bottom_left_corner_tile, bottom_right_corner_tile)
|
#print(top_left_corner_tile, top_right_corner_tile, bottom_left_corner_tile, bottom_right_corner_tile)
|
||||||
|
|
Loading…
Reference in a new issue