void OnBodyMotion(object sender, BodyMotionDetectedEventArgs args) { Bonus bonus = new Bonus(); switch (args.motion) { case BodyMotion.JUMP: bonus = TargetsFactory.ReleaseAllBonusTargetsByType(TargetType.TopBonusTarget); break; case BodyMotion.SUPER_JUMP: bonus = TargetsFactory.ReleaseAllBonusTargetsByType(TargetType.BottomBonusTarget); break; } if (gameMode == GameMode.LimitedTime) { this.score += bonus.Score; this.timeLeft += bonus.Time; UpdateScoreText(); } else if (gameMode == GameMode.LimitedLife) { this.life += bonus.Life; UpdateLifesText(); } }
void OnHandMotion(object sender, HandMotionDetectedEventArgs args) { int deltaScore = 0; switch (args.motion) { case HandMotion.LEFT_HAND_WAVE_OUT: deltaScore = TargetsFactory.ReleaseAllTargetsByType(TargetType.LeftTarget); break; case HandMotion.RIGHT_HAND_WAVE_OUT: deltaScore = TargetsFactory.ReleaseAllTargetsByType(TargetType.RightTarget); break; case HandMotion.TWO_HAND_RISE: deltaScore = TargetsFactory.ReleaseAllTargetsByType(TargetType.TopTarget); break; case HandMotion.RIGHT_HAND_RISE: if (isFinished) { Application.LoadLevel("MainMenu"); } break; } if (gameMode == GameMode.LimitedTime) { this.score += deltaScore; UpdateScoreText(); } }
private void BonusTargetSpawn() { if (this.rateOfBonusTargetSpawn <= 0f) { return; } float durationBetweenTwoTargetsSpawn = 1f / this.rateOfBonusTargetSpawn; if (Time.time < this.lastBonusTargetSpawnTime + durationBetweenTwoTargetsSpawn) { return; } // chose random target type System.Array values = new int[2]; values.SetValue(TargetType.TopBonusTarget, 0); values.SetValue(TargetType.BottomBonusTarget, 1); TargetType targetType = (TargetType)values.GetValue(UnityEngine.Random.Range(0, values.Length)); // spawn ! TargetsFactory.GetTarget(targetType); this.lastBonusTargetSpawnTime = Time.time; }
private void Update() { this.UpdatePosition(); // release target if it is in collision with player if (this.Position.z < -5 || this.Position.x < -13 || this.Position.x > 13) { TargetsFactory.ReleaseTarget(this); // player collision event if (targetPlayerCollision != null) { targetPlayerCollision(this, EventArgs.Empty); } } }
private void Awake() { speed = setSpeed; if (Instance != null) { Debug.LogError("There is multiple instance of singleton TargetsFactory"); return; } Instance = this; foreach (object value in System.Enum.GetValues(typeof(TargetType))) { this.availableTargetsByType.Add((TargetType)value, new Queue <Target>()); } }
public static int ReleaseAllTargetsByType(TargetType targetType) { int score = 0; GameObject[] gameObjectsToRelease = GameObject.FindGameObjectsWithTag(targetType.ToString()); foreach (GameObject gameObject in gameObjectsToRelease) { // add score Target target = gameObject.GetComponent <Target>(); score += target.Score; // release TargetsFactory.ReleaseTarget(target); } return(score); }
void showFinishScreen() { // stop spawn objects and clear scene isFinished = true; TargetsFactory.ReleaseAllTargets(); // hide texts scoreText.gameObject.SetActive(false); timeLeftText.gameObject.SetActive(false); timePassedText.gameObject.SetActive(false); lifesText.gameObject.SetActive(false); // show final dialog if (gameObject.GetComponent <FinalDialog> () == null) { gameObject.AddComponent <FinalDialog> (); } }
public static Bonus ReleaseAllBonusTargetsByType(TargetType targetType) { Bonus bonus = new Bonus(); GameObject[] gameObjectsToRelease = GameObject.FindGameObjectsWithTag(targetType.ToString()); foreach (GameObject gameObject in gameObjectsToRelease) { // add score Target target = gameObject.GetComponent <Target>(); bonus.Score += target.BonusScore; bonus.Time += target.BonusTime; bonus.Life += target.BonusLife; // release TargetsFactory.ReleaseTarget(target); } return(bonus); }
private void Awake() { speed = setSpeed; if (Instance != null) { Debug.LogError("There is multiple instance of singleton TargetsFactory"); return; } Instance = this; foreach (object value in System.Enum.GetValues(typeof(TargetType))) { this.availableTargetsByType.Add((TargetType)value, new Queue<Target>()); } }