Fix movement on other player
This commit is contained in:
@ -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
1
goonserver
Submodule
Submodule goonserver added at 1d6d3ab2ea
14
network.go
14
network.go
@ -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{
|
||||
@ -112,7 +111,8 @@ func HandleServerCommunication(conn net.Conn, playerID int32, player *Player, ot
|
||||
Y: float32(state.Y * TileHeight),
|
||||
Z: float32(state.Y * TileSize),
|
||||
},
|
||||
ID: state.PlayerId,
|
||||
ID: state.PlayerId,
|
||||
Speed: 50.0, // Make sure to set the speed for smooth movement
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user