fixed higher speed collisions, removed Speed comp, put into Velocity
This commit is contained in:
@@ -14,7 +14,7 @@ func (grid *Grid) GetSolidNeighborPosition(
|
||||
return false, nil
|
||||
}
|
||||
|
||||
// set to true, if we are already on the last tile in the current
|
||||
// set to true if we are already on the last tile in the current
|
||||
// direction, i.e. on the edge of the grid
|
||||
edge := true
|
||||
neighborpos := position.Point()
|
||||
@@ -44,6 +44,9 @@ func (grid *Grid) GetSolidNeighborPosition(
|
||||
|
||||
newpos := components.NewPosition(neighborpos, grid.Tilesize)
|
||||
|
||||
// slog.Debug("SolidNeighbor?", "player", position.Point(),
|
||||
// "neighbor", neighborpos, "edge", edge, "neighbor-solid",
|
||||
// grid.Map[neighborpos].Solid, "newpos", newpos.Point())
|
||||
if !edge && grid.Map[neighborpos].Solid {
|
||||
return true, newpos
|
||||
}
|
||||
|
||||
15
grid/grid.go
15
grid/grid.go
@@ -29,11 +29,10 @@ func NewGrid(world *ecs.World,
|
||||
|
||||
// we use this to turn our tiles into iterable entities, used for
|
||||
// collision detection, transformation and other things
|
||||
playermapper := generic.NewMap5[
|
||||
playermapper := generic.NewMap4[
|
||||
components.Position,
|
||||
components.Velocity,
|
||||
components.Renderable,
|
||||
components.Speed,
|
||||
components.Player](world)
|
||||
|
||||
solidmapper := generic.NewMap4[
|
||||
@@ -49,11 +48,10 @@ func NewGrid(world *ecs.World,
|
||||
components.Renderable,
|
||||
components.Collectible](world)
|
||||
|
||||
obsmapper := generic.NewMap5[
|
||||
obsmapper := generic.NewMap4[
|
||||
components.Position,
|
||||
components.Velocity,
|
||||
components.Renderable,
|
||||
components.Speed,
|
||||
components.Obstacle](world)
|
||||
|
||||
transmapper := generic.NewMap3[
|
||||
@@ -69,7 +67,6 @@ func NewGrid(world *ecs.World,
|
||||
var pos *components.Position
|
||||
var vel *components.Velocity
|
||||
var render *components.Renderable
|
||||
var speed *components.Speed
|
||||
var transient *components.Transient
|
||||
var player *components.Player
|
||||
var destroyable *components.Destroyable
|
||||
@@ -86,9 +83,9 @@ func NewGrid(world *ecs.World,
|
||||
pos, render, _, _ = solidmapper.Get(entity)
|
||||
case tile.Player:
|
||||
entity := playermapper.New()
|
||||
pos, _, render, speed, player = playermapper.Get(entity)
|
||||
pos, vel, render, player = playermapper.Get(entity)
|
||||
playerobserver.AddEntity(entity)
|
||||
speed.Value = config.PLAYERSPEED
|
||||
vel.Speed = config.PLAYERSPEED
|
||||
player.IsPrimary = tile.IsPrimary
|
||||
player.Sprites = tile.Tiles
|
||||
case tile.Collectible:
|
||||
@@ -96,10 +93,10 @@ func NewGrid(world *ecs.World,
|
||||
pos, render, _ = colmapper.Get(entity)
|
||||
case tile.Obstacle:
|
||||
entity := obsmapper.New()
|
||||
pos, vel, render, speed, _ = obsmapper.Get(entity)
|
||||
pos, vel, render, _ = obsmapper.Get(entity)
|
||||
vel.Direction = tile.Direction
|
||||
vel.PointingAt = tile.Direction
|
||||
speed.Value = config.PLAYERSPEED
|
||||
vel.Speed = config.PLAYERSPEED
|
||||
obstacleobserver.AddEntity(entity)
|
||||
case tile.Transient:
|
||||
entity := transmapper.New()
|
||||
|
||||
Reference in New Issue
Block a user