Merge pull request 'SURV-002' (#9) from SURV-002 into master

Reviewed-on: #9
This commit is contained in:
Jakub Klupieć 2021-05-24 13:20:42 +02:00
commit a7176490ab
4 changed files with 11 additions and 11 deletions

View File

@ -13,8 +13,8 @@ class TileGenerator:
"Grass2": Tile(origin=(32, 0), cost=1),
"Grass3": Tile(origin=(64, 0), cost=1),
"Grass4": Tile(origin=(96, 0), cost=1),
"Sand": Tile(origin=(64, 64), cost=20),
"Puddle": Tile(origin=(96, 64), cost=20),
"Sand": Tile(origin=(64, 64), cost=4),
"Puddle": Tile(origin=(96, 64), cost=5),
}
TilesValues = list(Tiles.values())

View File

@ -15,7 +15,7 @@ class WorldGenerator:
world = esper.World()
world.add_processor(InputSystem(camera))
world.add_processor(CameraSystem(camera))
world.add_processor(MovementSystem(), priority=1)
world.add_processor(MovementSystem(game_map), priority=1)
world.add_processor(CollisionSystem(game_map), priority=2)
world.add_processor(DrawSystem(camera))
world.add_processor(TimeSystem())

View File

@ -1,4 +1,4 @@
SCREEN_WIDTH = 1920
SCREEN_HEIGHT = 1080
SCREEN_WIDTH = 1000
SCREEN_HEIGHT = 600
RESOURCES_AMOUNT = 300
DIRECTION_CHANGE_DELAY = 200

View File

@ -1,4 +1,4 @@
from survival import esper
from survival import esper, GameMap
from survival.components.movement_component import MovementComponent
from survival.components.moving_component import MovingComponent
from survival.components.position_component import PositionComponent
@ -6,16 +6,16 @@ from survival.components.sprite_component import SpriteComponent
class MovementSystem(esper.Processor):
def __init__(self):
self.map = None
def __init__(self, game_map: GameMap):
self.map = game_map
def process(self, dt):
for ent, (mov, pos, moving, sprite) in self.world.get_components(MovementComponent, PositionComponent,
MovingComponent,
SpriteComponent):
pos.position[0] += moving.direction_vector[0] * mov.speed * dt / 100
pos.position[1] += moving.direction_vector[1] * mov.speed * dt / 100
cost = self.map.get_cost(moving.target)
pos.position[0] += moving.direction_vector[0] * mov.speed * dt / 100 / cost
pos.position[1] += moving.direction_vector[1] * mov.speed * dt / 100 / cost
if abs(moving.target[0] * 32 - pos.position[0]) < 0.1 * mov.speed and abs(
pos.position[1] - moving.target[1] * 32) < 0.1 * mov.speed: