Fix movement on other player
This commit is contained in:
parent
5c5040cd42
commit
63e3837441
@ -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
@ -0,0 +1 @@
|
||||
Subproject commit 1d6d3ab2eadf488d6ec0e5ba85005b3e57e372ea
|
12
network.go
12
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{
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user