Fix movement on other player

This commit is contained in:
bdnugget 2025-01-12 23:57:18 +01:00
parent 5c5040cd42
commit 63e3837441
3 changed files with 9 additions and 8 deletions

View File

@ -7,6 +7,6 @@ const (
MapHeight = 50
TileSize = 32
TileHeight = 2.0
TickRate = 2600 * time.Millisecond // Server tick rate (600ms)
TickRate = 600 * time.Millisecond // Server tick rate (600ms)
serverAddr = "localhost:6969"
)

1
goonserver Submodule

@ -0,0 +1 @@
Subproject commit 1d6d3ab2eadf488d6ec0e5ba85005b3e57e372ea

View File

@ -97,14 +97,13 @@ func HandleServerCommunication(conn net.Conn, playerID int32, player *Player, ot
for _, state := range serverMessage.Players {
if state.PlayerId != playerID {
if otherPlayer, exists := otherPlayers[state.PlayerId]; exists {
otherPlayer.PosTile = Tile{X: int(state.X), Y: int(state.Y)}
otherPlayer.PosActual = rl.Vector3{
X: float32(state.X * TileSize),
Y: float32(state.Y * TileHeight),
Z: float32(state.Y * TileSize),
// Instead of directly setting position, set up path for smooth movement
targetTile := Tile{X: int(state.X), Y: int(state.Y)}
if otherPlayer.PosTile != targetTile {
otherPlayer.TargetPath = []Tile{targetTile}
}
otherPlayer.MoveTowards(Tile{X: int(state.X), Y: int(state.Y)}, 0)
} else {
// Initialize new player
otherPlayers[state.PlayerId] = &Player{
PosTile: Tile{X: int(state.X), Y: int(state.Y)},
PosActual: rl.Vector3{
@ -113,6 +112,7 @@ func HandleServerCommunication(conn net.Conn, playerID int32, player *Player, ot
Z: float32(state.Y * TileSize),
},
ID: state.PlayerId,
Speed: 50.0, // Make sure to set the speed for smooth movement
}
}
}