Fixed desync issue for PacMan moves
This commit is contained in:
@@ -50,9 +50,7 @@ namespace Marro.PacManUdon
|
||||
private Ghost blinky;
|
||||
private ScoreBonusDisplay scoreBonusDisplay;
|
||||
|
||||
private Vector3 startPosition;
|
||||
private Quaternion startRotation;
|
||||
|
||||
private Vector2 startPosition;
|
||||
private Vector2 homePosition;
|
||||
private Vector2 idlePosition1;
|
||||
private Vector2 idlePosition2;
|
||||
@@ -110,7 +108,6 @@ namespace Marro.PacManUdon
|
||||
scoreBonusDisplay = transform.Find("ScoreBonusDisplay").gameObject.GetComponent<ScoreBonusDisplay>();
|
||||
scoreBonusDisplay.Initialize();
|
||||
startPosition = startTransform.localPosition;
|
||||
startRotation = startTransform.localRotation;
|
||||
|
||||
frozenState = PacManGhostFrozenState.Frozen;
|
||||
|
||||
@@ -124,7 +121,7 @@ namespace Marro.PacManUdon
|
||||
public void Reset()
|
||||
{
|
||||
// Debug.Log($"{gameObject} Reset!");
|
||||
transform.SetLocalPositionAndRotation(startPosition, startRotation);
|
||||
SetPosition(startPosition);
|
||||
|
||||
offGrid = true;
|
||||
isScared = false;
|
||||
@@ -393,25 +390,26 @@ namespace Marro.PacManUdon
|
||||
default:
|
||||
return gridPosition;
|
||||
case PacManGhostType.Blinky: // Chase PacMan directly
|
||||
return PositionToGrid(pacMan.transform.localPosition);
|
||||
return PositionToGrid(pacMan.GetPosition());
|
||||
case PacManGhostType.Pinky: // Try to get ahead of PacMan
|
||||
return GetTargetAheadOfPacMan(4);
|
||||
case PacManGhostType.Inky: // Try to attack from the opposite side of Blinky
|
||||
var blinkyPosition = PositionToGrid(blinky.transform.localPosition);
|
||||
var blinkyPosition = PositionToGrid(blinky.GetPosition());
|
||||
return ((GetTargetAheadOfPacMan(2) - blinkyPosition) * 2) + blinkyPosition;
|
||||
case PacManGhostType.Clyde: // Chase PacMan, but retreat to corner if PacMan gets to close
|
||||
if (Vector2.Distance(gridPosition, PositionToGrid(pacMan.transform.localPosition)) < 8)
|
||||
var pacManPosition = PositionToGrid(pacMan.GetPosition());
|
||||
if (Vector2.Distance(gridPosition, pacManPosition) < 8)
|
||||
{
|
||||
return cornerPosition;
|
||||
}
|
||||
return PositionToGrid(pacMan.transform.localPosition);
|
||||
return pacManPosition;
|
||||
}
|
||||
}
|
||||
|
||||
private Vector2 GetTargetAheadOfPacMan(int tilesInFront)
|
||||
{
|
||||
var direction = pacMan.GetTargetDirection();
|
||||
var result = PositionToGrid(pacMan.transform.localPosition) + directionVectors[(int)direction] * tilesInFront;
|
||||
var result = PositionToGrid(pacMan.GetPosition()) + directionVectors[(int)direction] * tilesInFront;
|
||||
|
||||
if (direction == Direction.Up) // Reproducing a bug in the original game
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user