feat 稳定300人
This commit is contained in:
@@ -23,54 +23,3 @@ func NewNPCNode(gatewaySID int64, uid int) *NPCNode {
|
||||
Action: make([]*grpc_pb.ActionReq, 0),
|
||||
}
|
||||
}
|
||||
|
||||
// 逻辑帧-移动
|
||||
func (p *NPCNode) logicMove() bool {
|
||||
if p.MoveCross&DirUp != 0 && p.MoveCross&DirDown != 0 {
|
||||
p.MoveCross &^= DirUp | DirDown
|
||||
}
|
||||
if p.MoveCross&DirLeft != 0 && p.MoveCross&DirRight != 0 {
|
||||
p.MoveCross &^= DirLeft | DirRight
|
||||
}
|
||||
|
||||
var moveX, moveY float64
|
||||
if p.MoveCross&DirUp != 0 {
|
||||
moveY += 1
|
||||
}
|
||||
if p.MoveCross&DirDown != 0 {
|
||||
moveY -= 1
|
||||
}
|
||||
if p.MoveCross&DirLeft != 0 {
|
||||
moveX -= 1
|
||||
}
|
||||
if p.MoveCross&DirRight != 0 {
|
||||
moveX += 1
|
||||
}
|
||||
// 没有移动
|
||||
if moveX == 0 && moveY == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
if moveX != 0 && moveY != 0 {
|
||||
const diagonalFactor = 0.7071
|
||||
moveX *= diagonalFactor
|
||||
moveY *= diagonalFactor
|
||||
}
|
||||
|
||||
speed := 10.0
|
||||
p.Position[0] += moveX * speed
|
||||
p.Position[1] += moveY * speed
|
||||
if p.Position[0] < 0 {
|
||||
p.Position[0] = 0
|
||||
}
|
||||
if p.Position[0] > 400 {
|
||||
p.Position[0] = 400
|
||||
}
|
||||
if p.Position[1] < 0 {
|
||||
p.Position[1] = 0
|
||||
}
|
||||
if p.Position[1] > 400 {
|
||||
p.Position[1] = 400
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user