Postać zwalnia gdy wchodzi na płytkę o większym koszcie.
This commit is contained in:
parent
474a6dd525
commit
d051f68e52
@ -12,8 +12,8 @@ class TileGenerator:
|
|||||||
"Grass2": Tile(origin=(32, 0), cost=1),
|
"Grass2": Tile(origin=(32, 0), cost=1),
|
||||||
"Grass3": Tile(origin=(64, 0), cost=1),
|
"Grass3": Tile(origin=(64, 0), cost=1),
|
||||||
"Grass4": Tile(origin=(96, 0), cost=1),
|
"Grass4": Tile(origin=(96, 0), cost=1),
|
||||||
"Sand": Tile(origin=(64, 64), cost=20),
|
"Sand": Tile(origin=(64, 64), cost=4),
|
||||||
"Puddle": Tile(origin=(96, 64), cost=20),
|
"Puddle": Tile(origin=(96, 64), cost=5),
|
||||||
}
|
}
|
||||||
|
|
||||||
TilesValues = list(Tiles.values())
|
TilesValues = list(Tiles.values())
|
||||||
|
@ -15,7 +15,7 @@ class WorldGenerator:
|
|||||||
world = esper.World()
|
world = esper.World()
|
||||||
world.add_processor(InputSystem(camera))
|
world.add_processor(InputSystem(camera))
|
||||||
world.add_processor(CameraSystem(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(CollisionSystem(game_map), priority=2)
|
||||||
world.add_processor(DrawSystem(camera))
|
world.add_processor(DrawSystem(camera))
|
||||||
world.add_processor(TimeSystem())
|
world.add_processor(TimeSystem())
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
SCREEN_WIDTH = 1920
|
SCREEN_WIDTH = 1000
|
||||||
SCREEN_HEIGHT = 1080
|
SCREEN_HEIGHT = 600
|
||||||
RESOURCES_AMOUNT = 300
|
RESOURCES_AMOUNT = 300
|
||||||
DIRECTION_CHANGE_DELAY = 200
|
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.movement_component import MovementComponent
|
||||||
from survival.components.moving_component import MovingComponent
|
from survival.components.moving_component import MovingComponent
|
||||||
from survival.components.position_component import PositionComponent
|
from survival.components.position_component import PositionComponent
|
||||||
@ -6,16 +6,16 @@ from survival.components.sprite_component import SpriteComponent
|
|||||||
|
|
||||||
|
|
||||||
class MovementSystem(esper.Processor):
|
class MovementSystem(esper.Processor):
|
||||||
def __init__(self):
|
def __init__(self, game_map: GameMap):
|
||||||
self.map = None
|
self.map = game_map
|
||||||
|
|
||||||
def process(self, dt):
|
def process(self, dt):
|
||||||
for ent, (mov, pos, moving, sprite) in self.world.get_components(MovementComponent, PositionComponent,
|
for ent, (mov, pos, moving, sprite) in self.world.get_components(MovementComponent, PositionComponent,
|
||||||
MovingComponent,
|
MovingComponent,
|
||||||
SpriteComponent):
|
SpriteComponent):
|
||||||
|
cost = self.map.get_cost(moving.target)
|
||||||
pos.position[0] += moving.direction_vector[0] * mov.speed * dt / 100
|
pos.position[0] += moving.direction_vector[0] * mov.speed * dt / 100 / cost
|
||||||
pos.position[1] += moving.direction_vector[1] * mov.speed * dt / 100
|
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(
|
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:
|
pos.position[1] - moving.target[1] * 32) < 0.1 * mov.speed:
|
||||||
|
Loading…
Reference in New Issue
Block a user