Merge pull request 'SURV-002' (#9) from SURV-002 into master
Reviewed-on: #9
This commit is contained in:
commit
a7176490ab
@ -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())
|
||||
|
@ -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())
|
||||
|
@ -1,4 +1,4 @@
|
||||
SCREEN_WIDTH = 1920
|
||||
SCREEN_HEIGHT = 1080
|
||||
SCREEN_WIDTH = 1000
|
||||
SCREEN_HEIGHT = 600
|
||||
RESOURCES_AMOUNT = 300
|
||||
DIRECTION_CHANGE_DELAY = 200
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user