protected void Awake() { PlayerState = GetComponent <Animator>(); PlayerObject = GetComponent <Rigidbody2D>(); OverlapChecker = GetComponent <OverlapChecker>(); PlayerState.SetBool(PlayerIsAlive, true); }
/// <summary> /// Awake is a Unity built-in message. /// Unity calls it when the object is loaded into the scene. Think of it like /// a constructor. /// </summary> protected void Awake() { animator = GetComponent <Animator>(); body = GetComponent <Rigidbody2D>(); ground_overlap_checker = GetComponent <OverlapChecker>(); animator.SetBool(animatorAlive, true); }
protected void Awake() { playerAnimator = GetComponent <Animator>(); cubePhysics = GetComponent <Rigidbody2D>(); playerOverlapChecker = GetComponent <OverlapChecker>(); playerAnimator.SetBool(isAlive, true); }
/// <summary> /// Awake is a Unity built-in message. /// Unity calls it when the object is loaded into the scene. Think of it like /// a constructor. /// </summary> protected void Awake() { animator = GetComponent <Animator>(); physicsComponent = GetComponent <Rigidbody2D>(); overlapChecker = GetComponent <OverlapChecker>(); // Make the player alive animator.SetBool(isAliveParam, true); }
void Start() { startWait = new WaitForSeconds(startDelay); endWait = new WaitForSeconds(endDelay); pausePanel.SetActive(false); endGamePanel.SetActive(false); SpawnAllPlayers(); SetCameraTargets(); SetScores(); OverlapChecker.Setup(); StartCoroutine(GameLoop()); }
private void CheckPressed() { if (!isButtonPressed) { if (Input.GetAxis("Horizontal" + playerNumber) > 0 && curZCoord < gridUpperZLimit) { if (OverlapChecker.CheckOverlap(playerNumber - 1, "Z", curZCoord + 1, curXCoord)) { isButtonPressed = true; MoveRight(); } } else if (Input.GetAxis("Horizontal" + playerNumber) < 0 && curZCoord > gridLowerZLimit) { if (OverlapChecker.CheckOverlap(playerNumber - 1, "Z", curZCoord - 1, curXCoord)) { isButtonPressed = true; MoveLeft(); } } else if (Input.GetAxis("Vertical" + playerNumber) > 0 && curXCoord > gridLowerXLimit) { if (OverlapChecker.CheckOverlap(playerNumber - 1, "X", curXCoord - 1, curZCoord)) { isButtonPressed = true; MoveUp(); } } else if (Input.GetAxis("Vertical" + playerNumber) < 0 && curXCoord < gridUpperXLimit) { if (OverlapChecker.CheckOverlap(playerNumber - 1, "X", curXCoord + 1, curZCoord)) { isButtonPressed = true; MoveDown(); } } } }
public List <PipeGroup> GetPipeGroups(double lengthBetweenPipe_Inch) { PipeGroupCollection pipeGroups = new PipeGroupCollection(); SkewPipe start; SkewPipe pre, cur; start = pre = cur = SkewPipes[0]; OverlapChecker overlap = new OverlapChecker(cur, lengthBetweenPipe_Inch); for (int i = 1; i < SkewPipes.Count(); i++) { var result = overlap.Push(SkewPipes[i]); if (result != null && result.Count != 0) { pipeGroups.AddRange(result); } } pipeGroups.AddRange(overlap.Clear()); return(pipeGroups); }
public void ShowAll() { OverlapChecker matrix = new OverlapChecker(PuzzleOption.BlockCountX, PuzzleOption.BlockCountY); foreach (var entity in inARowHorizontal) { int effectWidth = 3; int effectHeight = 1; int blockCount = entity.pattern.Count; float centerX = entity.x + (entity.pattern.width - 1) / 2f; float centerY = entity.y + (entity.pattern.height - 1) / 2f; AdjustEffectPos(matrix, effectWidth, effectHeight, blockCount, ref centerX, ref centerY); matrix.IncreaseOverlap(effectWidth, effectHeight, centerX, centerY); panel.AttachChild(UIEffectInARow.Create(blockCount), new Vector2(centerX, centerY), 1f); } foreach (var entity in inARowVertical) { int effectWidth = 3; int effectHeight = 1; int blockCount = entity.pattern.Count; float centerX = entity.x + (entity.pattern.width - 1) / 2f; float centerY = entity.y + (entity.pattern.height - 1) / 2f; AdjustEffectPos(matrix, effectWidth, effectHeight, blockCount, ref centerX, ref centerY); matrix.IncreaseOverlap(effectWidth, effectHeight, centerX, centerY); panel.AttachChild(UIEffectInARow.Create(blockCount), new Vector2(centerX, centerY), 1f); } // chains if (chainCount >= 3) { int effectWidth = 3; int effectHeight = 1; int minOverlap = int.MaxValue; float minOverlapX = 0; float minOverlapY = 0; foreach (var entity in matches) { int blockCount = entity.pattern.Count; float centerX = entity.x + (entity.pattern.width - 1) / 2f; float centerY = entity.y + (entity.pattern.height - 1) / 2f; AdjustEffectPos(matrix, effectWidth, effectHeight, blockCount, ref centerX, ref centerY); int overlap = matrix.GetOverlap(effectWidth, effectHeight, centerX, centerY); if (minOverlap > overlap) { minOverlap = overlap; minOverlapX = centerX; minOverlapY = centerY; } } matrix.IncreaseOverlap(effectWidth, effectHeight, minOverlapX, minOverlapY); panel.AttachChild(UIEffectChain.Create(chainCount), new Vector2(minOverlapX, minOverlapY), 1f); } // multi-matches if (matches.Count >= 3) { int effectWidth = 2; int effectHeight = 1; int minOverlap = int.MaxValue; float minOverlapX = 0; float minOverlapY = 0; foreach (var entity in matches) { int blockCount = entity.pattern.Count; float centerX = entity.x + (entity.pattern.width - 1) / 2f; float centerY = entity.y + (entity.pattern.height - 1) / 2f; AdjustEffectPos(matrix, effectWidth, effectHeight, blockCount, ref centerX, ref centerY); int overlap = matrix.GetOverlap(effectWidth, effectHeight, centerX, centerY); if (minOverlap > overlap) { minOverlap = overlap; minOverlapX = centerX; minOverlapY = centerY; } } matrix.IncreaseOverlap(effectWidth, effectHeight, minOverlapX, minOverlapY); panel.AttachChild(UIEffectMatch.Create(matches.Count), new Vector2(minOverlapX, minOverlapY), 1f); } // for test //matrix.DumpMatrix(); //Debug.Break(); }
private static float AdjustEffectPosY(OverlapChecker matrix, int effectWidth, int effectHeight, int blockCount, float centerX, float centerY) { int minOverlap = int.MaxValue; int minOverlapY = 0; for (int i = 0; i < blockCount + 4; i++) // +-2 of block range { float gap = (i + 1) / 2; float y = centerY + (IsEven(i) ? -gap : gap); int intY = Mathf.FloorToInt(y); if (0 <= intY && intY < PuzzleOption.BlockCountY) { int overlap = matrix.GetOverlap(effectWidth, effectHeight, centerX, intY); if (overlap < minOverlap) { minOverlap = overlap; minOverlapY = intY; } if (overlap == 0) { break; } } } centerY = minOverlapY; return centerY; }
private static void AdjustEffectPos(OverlapChecker matrix, int effectWidth, int effectHeight, int blockCount, ref float centerX, ref float centerY) { centerX = AdjustEffectPosX(effectWidth, effectHeight, centerX, centerY); centerY = AdjustEffectPosY(matrix, effectWidth, effectHeight, blockCount, centerX, centerY); }