public override void Hit(GameObject gameObject) { Direction dir = CheckDirection(gameObject); if (gameObject is Player player) { if (player.Speed > Player.MaxSpeed / 2 && !IsDeadFlag) { hitFlashCount = 0; hitCount++; GameDevice.Instance().DisplayQuake = new Vector2(0, 0.25f); sound.PlaySE("enemy_hit"); HitStop.DoHitStop(); } } if (gameObject is PlayerBullet) { if (!IsDeadFlag) { hitCount += 0.25f; } } if (gameObject is WhiteBlock) { } }
private void Awake() { if (instance == null) { instance = this; } }
public void Initialize() { isEndFlag = false; next = Scene.Ending; gameObjectManager = new GameObjectManager(); particleManager = new ParticleManager(); gameObjectManager.Initialize(); particleManager.Initialize(); LifeWall.Reset(); var lifeWalls = LifeWall.GenerateWall(LifeWall.Count); gameObjectManager.AddWall(lifeWalls); nowMap = mapName[(int)Menu.GetDifficulty()]; // csvからマップを読み込む場合 var reader = GameDevice.Instance().GetCSVReader(); //reader.Read("normal.csv"); reader.Read(nowMap); var map = new Map(reader.GetData()); gameObjectManager.Add(map); scroll = map.Height; ScrollStop = false; hitStop = new HitStop(); fade = new FadeIn(); GameDevice.Instance().GetSound().PlayBGM( (Menu.GetDifficulty() == Menu.Difficulty.tutorial || Menu.GetDifficulty() == Menu.Difficulty.easy) ? "tutorial" : "stage" ); }
private void Destruction() { Manager.player.maxSpeed += plusPlayerSpeed; HitStop.Stop(0.1f); Destroy(gameObject, 0.1f); GameObject instant = Instantiate(destroyEffect, transform.position, transform.rotation); Destroy(instant, 2); }
void Awake() { fixedRot = transform.rotation; rb = GetComponent <Rigidbody2D>(); hitStop = FindObjectOfType <HitStop>(); movement = GetComponent <BallMovement>(); screenshake = FindObjectOfType <Screenshake>(); trail = GetComponentInChildren <TrailRenderer>(); sprite = visualBall.GetComponent <SpriteRenderer>(); }
public override void Hit(GameObject gameObject) { if (gameObject is Player) { float speed = 10f; var player = GameObjectManager.Instance.Find <Player>().First(); //var rotation = Math.Atan2(player.Position.Y - Position.Y, player.Position.X - Position.X); if (player.Speed > Player.MaxSpeed / 2) { HitStop.DoHitStop(); IsDead = true;//プレイヤーの最高速度/2よりも現在の速度が速い場合 } else { life--; if (life <= 0) { IsDead = true; } } //if(rotation < 0) //{ // Velocity = new Vector2((float)Math.Cos(rotation), (float)Math.Sin(rotation)) * speed; //} //else //{ // Velocity = new Vector2((float)Math.Cos(rotation), -(float)Math.Sin(rotation)) * speed; //} } if (gameObject is PlayerBullet) { life--; if (life <= 0) { IsDead = true; } } if (gameObject is LifeWall) { IsDead = true; } if (IsDead) { sound.PlaySE("enemy_hit"); new DestroyParticle(Name, Position, Size, DestroyParticle.DestroyOption.Center); } base.Hit(gameObject); }
public override void Whacked(PlayerController player) { if (player.photonView.isMine) { //send player ui an message to increase their score PlayerUI.LocalPlayerUi.IncreaseScore(scorePerHit); anim.SetTrigger("W"); HitStop.PlayHitStop(); if (!PhotonNetwork.offlineMode) { photonView.RPC("RPCSetAnimWhacked", PhotonTargets.OthersBuffered); } } }
void OnCollisionEnter(Collision collision) { Player player = collision.gameObject.GetComponent <Player>(); if (player != null) { HitStop.Stop(0.1f); player.ForcedIvent(transform.forward, forcedTime, forcedSpeed * (1 / player.maxSpeed)); } Destroy(gameObject); GameObject instant = Instantiate(effect, transform.position, Quaternion.Euler(transform.up)); Destroy(instant, 1); }
public override void Hit(GameObject gameObject) { if (gameObject is Player player) { var rotation = Math.Atan2(player.Position.Y - Position.Y, player.Position.X - Position.X); if (player.Speed > Player.MaxSpeed / 2) { GameDevice.Instance().GetSound().PlaySE("tentacle_cut"); HitStop.DoHitStop(); life -= 10; new DestroyParticle(Name, Position, Size, DestroyParticle.DestroyOption.Center); Position = AnchorPosition; HitStop.DoHitStop(); } if (life <= 0) { IsDead = true; } } if (gameObject is PlayerBullet) { life -= 4; if (life / 10 < currentlife / 10) { HitStop.DoHitStop(); new DestroyParticle(Name, Position, Size, DestroyParticle.DestroyOption.Center); Position = AnchorPosition; sound.PlaySE("enemy_hit"); HitStop.DoHitStop(); } if (life <= 0) { GameDevice.Instance().GetSound().PlaySE("tentacle_cut"); IsDead = true; } currentlife = life; } if (gameObject is LifeWall) { Position = AnchorPosition; } }
private void OnCollisionEnter(Collision collision) { Enemy enemy = collision.gameObject.GetComponent <Enemy>(); if (enemy == null) { return; } HitStop.Stop(0.1f); enemy.TakeDamage(rbMagnitude, 1); enemy.transform.position += (enemy.transform.position - (transform.position + Vector3.up * Manager.PLAYER_HEIGHT)).normalized; enemy._rigidbody.velocity = (enemy.transform.position - (transform.position + Vector3.up * Manager.PLAYER_HEIGHT)).normalized * rbMagnitude * Time.fixedDeltaTime; _rigidbody.velocity = Vector3.zero; GameObject instant = Instantiate(effect, transform.position + transform.forward, transform.rotation); Destroy(instant, 2); }
private void OnTriggerEnter(Collider other) { Enemy enemy = other.transform.gameObject.GetComponent <Enemy>(); if (enemy == null) { return; } HitStop.Stop(0.15f); float enemyMagnitude = player.rbMagnitude * Time.fixedDeltaTime + InputManager.GetCtrlDis(number) * (1 / Time.fixedDeltaTime) * (1 / InputManager.GetCtrlCount()); enemy.TakeDamage(player.rbMagnitude + Mathf.Min(player.rbMagnitude, enemyMagnitude), 1); enemy.transform.position += (enemy.transform.position - (transform.position + Vector3.up * Manager.PLAYER_HEIGHT)).normalized; enemy._rigidbody.velocity = (enemy.transform.position - (transform.position + Vector3.up * Manager.PLAYER_HEIGHT)).normalized * player.rbMagnitude * enemyMagnitude; player._rigidbody.velocity = Vector3.zero; GameObject instant = Instantiate(gloveEffect, glove.transform.position + glove.transform.forward, glove.transform.rotation); Destroy(instant, 2); }
private void Explode() { isExploding = true; HitStop.PlayHitStop(); SpawnParticle(explosionParticlePrefab); //Iterate through everything Collider[] col = Physics.OverlapSphere(transform.position, explosionRadius); for (int i = 0; i < col.Length; i++) { if (col[i].GetComponent <PlayerBase>()) { col[i].GetComponent <PlayerBase>().PController.Whacked(); } } transform.position = spawnPos; anim.SetBool("Retract", true); }
public virtual void FixedUpdate() { if (HitStop != null) { HitStop.BaseStateFixedUpdate(this); if (HitStop.IsFinished()) { HitStop = null; } } else { FixedUpdate(State); if (State.IsFinished()) { State = null; } } }
public Damage(int hitstop, bool addDamage, float damage, int direction, bool ignoreDeffence) { hitStop = new HitStop(hitstop); isAddDamage = addDamage; damageParameter = new DamageParameter(direction, damage, ignoreDeffence); }
// Start is called before the first frame update void Start() { hitStop = GetComponent <HitStop>(); currentHealth = totalHealth; }
public Damage(int hitstop, bool addDamage, float damage, int direction, bool ignoreDeffence) { hitStop = new HitStop(hitstop); isAddDamage = addDamage; damageParameter = new DamageParameter(direction, damage, ignoreDeffence); }