public void PlayerBulletMovesThroughEnemy() { var game = new Game(new Size(2, 2), new Point(0, 0), 2, 1e-9, 1e-9); var enemy = new Enemy(new Point(1, 1), game, new Immobile(new Vector(1, 1)), 1, 1); var bullet = new PlayerBullet(new Vector(1, 2), Vector.Up, 2); game.SpawnEnemy(enemy); game.CurrentGameState.PlayerBullets.Add(bullet); game.UpdateState(); Assert.False(game.CurrentGameState.Enemies.Contains(enemy)); Assert.False(game.CurrentGameState.PlayerBullets.Contains(bullet), "asd"); }
void SimpleFire() { UseEnergy(simpleCost); GameObject bullet = factory.Spawn(FactoryManager.ProductType.playerBullet); PlayerBullet playerBullet = bullet.GetComponent <PlayerBullet>(); Vector2 bulletPosition = new Vector2(transform.position.x, transform.position.y); playerBullet.SetBulletType(bulletType); playerBullet.Init(damage, speed, Vector2.right, bulletPosition); }
private void Shoot() { GameObject bullet = Instantiate(playerBullet); PlayerBullet PBullet = bullet.GetComponent <PlayerBullet>(); bullet.transform.position = bulletSpawner.transform.position; Vector3 playerRot = transform.eulerAngles; Vector3 cameraRot = PlayerCamera.transform.eulerAngles; bullet.transform.rotation = bulletSpawner.transform.rotation; //this.gameObject.transform.rotation; PBullet.OnceInstantiated(); }
void shootBullet() { Vector3 offset = getOffset(); Vector3 newBulletLocation = this.transform.position; PlayerBullet newBullet = bullet.GetPooledInstance <PlayerBullet>(newBulletLocation); newBullet.transform.Translate(offset); float vol = Random.Range(0.8f, 1.0f); source.pitch = (Random.Range(0.8f, 1.2f)); source.PlayOneShot(shootSound, vol); }
private PlayerBullet AddPlayerBullet() { PlayerBullet bullet = new PlayerBullet(); bullet.Position = new CCPoint(player.Position.X, player.Position.Y + player.ContentSize.Height / 2); AddChild(bullet, PLAYER_BULLET_INDEX); var moveBullet = new CCMoveTo(5.0f, new CCPoint(bullet.Position.X, VisibleBoundsWorldspace.MaxY)); bullet.RunActions(moveBullet, moveOutOfView); return(bullet); }
void Shoot() { if (canShoot && Input.GetKeyDown(KeyCode.Space)) { GameObject bullet = Instantiate(prefabBullet, transform.position, transform.rotation) as GameObject; PlayerBullet bulletScript = bullet.GetComponent <PlayerBullet>(); int dir = GetFaceDirection(); bulletScript.SetBulletSpeed(speed * dir); canShoot = false; } }
public virtual void GetHitByBullet(PlayerBullet bullet) { StartCoroutine(BulletHitSequence()); if (m_State == State.Stunned) { bullet.ShowStunnedHitParticles(); } else { bullet.ShowHitParticles(); } }
private void FireSentinelForward(PlayerBullet bullet) { SentinelBullet sentinel = (SentinelBullet)bullet; SentinelProjectileBullet projectile = SentinelProjectileBullet.GetProjectile(sentinel); projectile.Velocity = new Vector2(0, projectile.Speed); projectile.OnSpawn(); // Reset Sentinel entrance animation to finish the illusion that // the Sentinel was fired and immediately respawned. sentinel.ActivateSelf(); sentinel.OnSpawn(); }
/* --------------------------------------------------------------------- */ #region Construction #endregion /* --------------------------------------------------------------------- */ #region Unity Methods // Use this for initialization void Start() { this._bulletPool = new List <PlayerBullet>(); for (int i = 0; i < this._bulletLimit; i++) { GameObject playerBullet = Instantiate(this._bulletPrefab); PlayerBullet playerBulletScript = playerBullet.GetComponent <PlayerBullet>(); playerBulletScript.Initialise(this); this._bulletPool.Add(playerBulletScript); } }
void OnTriggerEnter2D(Collider2D collider) { PlayerBullet bullet = collider.gameObject.GetComponent <PlayerBullet>(); if (bullet) { Destroy(gameObject); AudioSource.PlayClipAtPoint(deathSoundB, transform.position); pointSystemB.Points(enemyPointValueB); GameObject shipExploding = Instantiate(explosion, transform.position, Quaternion.identity) as GameObject; Destroy(shipExploding, 0.5f); } }
void InstantiateBullet() { GameObject go = Instantiate(playerBulletPrefab, transform.position, transform.rotation); PlayerBullet pb = go.GetComponent <PlayerBullet>(); pb.speed = shootSpeed; pb.damage = shootDamage; Destroy(go, bulletLifeTime); //take from storage and enable }
void OnCollisionEnter2D(Collision2D co) { switch (co.gameObject.tag) { case "Player": { Debug.Log("Player got hit in 2D!"); Destroy(this.gameObject); var playerHealth = co.gameObject.GetComponent <PlayerHealth>(); playerHealth.TakeDamage(10); GetAudioManager().PlayerHit(); break; } case "Shield": { Destroy(this.gameObject); co.gameObject.GetComponent <Shield>().Deactivate(); break; } case "Cannon": { Debug.Log("Cannon got hit in 2D!"); Destroy(this.gameObject); GetAudioManager().PlayerHit(); var cannon = co.gameObject.GetComponent <Cannon>(); cannon.TakeDamage(); break; } case "PlayerBullet": { Debug.Log("Player hit enemy"); PlayerBullet playerBullet = co.gameObject.GetComponent <PlayerBullet> (); TakeDamage(playerBullet.DamageAmount); StartCoroutine(Flash()); Destroy(co.gameObject); break; } } }
void SpiralFire() { UseEnergy(spiralCost); for (int i = 0; i < 4; i++) { GameObject bullet = factory.Spawn(FactoryManager.ProductType.playerBullet); PlayerBullet playerBullet = bullet.GetComponent <PlayerBullet>(); Vector2 bulletPosition = new Vector2(transform.position.x, transform.position.y); playerBullet.SetBulletType(bulletType); playerBullet.Init(damage, speed, Rotate(Vector2.right, i * Mathf.PI / 2), bulletPosition); } }
protected new void OnTriggerEnter2D(Collider2D collision) { PlayerBullet bullet = collision.transform.GetComponent <PlayerBullet>(); if (bullet != null) { if (!isIndestructible) { this.curHitPoints -= bullet.attackValue; Destroy(collision.gameObject); } } else { PlayerSlash sword = collision.transform.GetComponent <PlayerSlash>(); if (sword != null) { if (!isIndestructible) // && (sword.isSlashing)) { //Debug.Log("PROJECTILE DESTROYED BY SWORD!"); Destroy(this.gameObject); } } else { PlayerController player = collision.transform.GetComponent <PlayerController>(); if (player != null) { // TODO: Damage player? Destroy(this.gameObject); } else { if (collision.transform.tag == "Wall") { //Debug.Log("Enemy projectile came in contact with wall"); Destroy(this.gameObject); } else if (collision.CompareTag("Door")) { Destroy(this.gameObject); } else { // Debug.Log("Enemy projectile hasn't collided with any object of note."); } } } } }
private void Shoot() { PlayerBullet b = _bulletScene.Instance() as PlayerBullet; int bulletPadding = 10; Vector2 position = new Vector2( x: this.Position.x, y: this.Position.y - _size.y / 2 - bulletPadding ); b.Position = position; // Make bullets part of the game environment GetParent().AddChild(b); _laserSound.Play(); }
private void FireBullet(Vector2 shootRef) { //Declare and Define Starting Shoot Position Vector2 startingShootPos; if (shootLeft) { startingShootPos = leftFireRef.transform.position; } else { startingShootPos = rightFireRef.transform.position; } //Pull bullet Reference from Pooler bullet = ObjectPooler.sharedInstance.GetPooledObject("playerBullet"); if (bullet != null) //Peform Null-Check on bullet { //Set bullet position & rotation to that of player character bullet.transform.position = startingShootPos; bullet.transform.rotation = gameObject.transform.rotation; bullet.SetActive(true); //Spawn Bullet Physics2D.IgnoreCollision(bullet.GetComponent <CircleCollider2D>(), GetComponent <BoxCollider2D>()); //Create collision exception for bullet col & player col //Pull Reference to Neccesary bullet Components Rigidbody2D bulletSpawnedRB = bullet.GetComponent <Rigidbody2D>(); PlayerBullet bulletPlayerBullet = bullet.GetComponent <PlayerBullet>(); //Add Calculate Updated 'shoot' Vector2 Vector2 uniformShootPos = CalculateShootPos(shootRef); //Converts pure stick data into uniform Vector2 (ensures bullets fire at same speed, regardless of right stick distance from perimeter) //Check Player Velocity Against Threshold to Speed up Bullets - Prevents player from catching up to bullets if (playerRB.velocity.magnitude > playerSpeedAccelerateShootThreshold) { Vector2 magnitudeMultipliedShootPos = uniformShootPos.normalized * (playerRB.velocity.magnitude / playerSpeedAccelerateShootThreshold); //Apply magnitude multiplier to normalised shoot position Vector2 finalShootPos = magnitudeMultipliedShootPos * bulletPlayerBullet.GetBulletSpeed(); //Create final shoot position by multiplying by bullet speed bulletSpawnedRB.AddForce(finalShootPos); //Update bullet rigidbody } //If Player Velocity Threshold not met, Fire Bullet Normally else { bulletSpawnedRB.AddForce(new Vector2((uniformShootPos.x * bulletPlayerBullet.GetBulletSpeed()), (uniformShootPos.y * bulletPlayerBullet.GetBulletSpeed()))); //Update bullet rigidbody } } shootLeft = !shootLeft; //Invert value of shootLeft }
void OnTriggerEnter2D(Collider2D collider) { PlayerBullet bullet = collider.gameObject.GetComponent <PlayerBullet>(); if (damageCounter == 0) { hit = true; } if (bullet && transform.parent.position.y <= 2.82) { Destroy(collider.gameObject); damageCounter--; } }
/// <summary> /// 총알을 생성하고 좌표를 위로 조금 올려준다. /// </summary> void FireBullet() { PlayerBullet bullet = GameObject.Instantiate <PlayerBullet>(); Vec2D bulletPoint = gameObject.transform.position; bulletPoint.Y -= 8; bullet.transform.position = bulletPoint; DamageSystem damageSystem = bullet.GetComponent <DamageSystem>(); damageSystem.EventGiveDamage += () => GameObject.Destroy(bullet); GameManager.Instance.IncreaseFireCount(1); }
public void Shoot() { PlayerBullet bullet = PoolManager.instance.GetPlayerBullet(); bullet.transform.position = firePoint.position; bullet.gameObject.SetActive(true); bullet.Launch(); //카메라 흔들림 처리 camshake.Shake(camShakeAmt, camShakeLength); //효과음 출력 audioManager.PlaySound(shotSound); }
public void Shoot(AudioSource GunSound) { PlayerBullet bullet = PlayerBullet.Create(); float speed = 1.0f; Vector3 PlayerDir = new Vector3(transform.position.x + (int)dxBuf1 * 6, transform.position.y + (int)dyBuf1 * 6, transform.position.z); Vector3 BulletDir = new Vector3(transform.position.x + (dxBuf1 * 3 / 4), transform.position.y + (dyBuf1 * 3 / 4), transform.position.z); bullet.Shoot(BulletDir, PlayerDir); GunSound.Play(); if (Count > Interval) { Count = 0; } MuzzleFlash(); }
void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "BorderBullet") { gameObject.SetActive(false); transform.rotation = Quaternion.identity; } else if (collision.gameObject.tag == "PlayerBullet") { PlayerBullet playerBullet = collision.gameObject.GetComponent <PlayerBullet>(); OnHit(playerBullet.damage); collision.gameObject.SetActive(false); } }
void attack() { bullet = new PlayerBullet(); //Shoots if the mouse is bellow the horizontal axis. if (Input.mouseY > Game.main.height / 2 + 100) { if (Input.GetMouseButton(0)) { shot.Play(volume: 0.3f); Game.main.AddChild(bullet); //new Sound(Settings.ASSET_PATH + "SFX/Sans.mp3").Play(); } } }
public void Shoot(GameObject bullet, float damage) { PlayerBullet playerBulletOne = Instantiate(bullet, shootPoint.position, transform.rotation).GetComponent <PlayerBullet>(); PlayerBullet playerBulletTwo = Instantiate(bullet, shootPoint.position, transform.rotation).GetComponent <PlayerBullet>(); PlayerBullet playerBulletThree = Instantiate(bullet, shootPoint.position, transform.rotation).GetComponent <PlayerBullet>(); PlayerBullet playerBulletFour = Instantiate(bullet, shootPoint.position, transform.rotation).GetComponent <PlayerBullet>(); PlayerBullet playerBulletFive = Instantiate(bullet, shootPoint.position, transform.rotation).GetComponent <PlayerBullet>(); audio[0].Play(); playerBulletOne.Init(damage); playerBulletTwo.Init(damage, new Vector3(0.1f, 0.1f, 0f)); playerBulletThree.Init(damage, new Vector3(-0.1f, -0.1f, 0f)); playerBulletFour.Init(damage, new Vector3(0.1f, 0.2f, 0f)); playerBulletFive.Init(damage, new Vector3(-0.1f, -0.2f, 0f)); }
private void FireBullet() { if (currentBullet == null) { audioSource.PlayOneShot(fireClip); currentBullet = Resources.Load("Prefabs/PlayerBullet") as GameObject; Vector2 bulletDirection = Fire(); // Debug.Log("Bullet Direction:" + bulletDirection); Assert.IsNotNull(currentBullet); currentBullet.transform.position = gameObject.transform.position; currentBullet = Instantiate(currentBullet); bulletDirection = -bulletDirection; PlayerBullet playerBullet = currentBullet.GetComponent <PlayerBullet>(); playerBullet.Fire(bulletDirection); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "player bullet") { PlayerBullet playerBullet = collision.gameObject.GetComponent <PlayerBullet>(); if (!playerBullet) { return; } playerBullet.BulletDestroy(); EnemyDestroy(playerBullet); } }
public void Fire() { if (Time.time > fireSpeed + lastFireTime) { lastFireTime = Time.time; PlayerBullet pb = pool.GetNextObject().GetComponent <PlayerBullet>(); if (pb == null) { return; } pb.transform.position = weaponPosition.position + new Vector3(0, 0.5f); pb.transform.rotation = weaponPosition.rotation; pb.Damage = weaponDamage; pb.gameObject.SetActive(true); } }
public void PlayerBulletMove() { var game = new Game(new Size(500, 600), new Point(0, 0), 1); var start = new Vector(rnd.Next(1, Game.GameFeatures.FieldSize.Width - 1), rnd.Next(1, Game.GameFeatures.FieldSize.Height - 1)); var bullet = new PlayerBullet(start, Vector.Up, 1); bullet.Move(); var finish = bullet.Location; Assert.AreEqual(start.Y, finish.Y + 1, "я думаю тут старт должен быть больше финиша," + "потому что пуля движется вверх," + "а начало координат в верхнем левом углу"); // я думаю тут старт должен быть больше финиша, потому что пуля движется вверх, // а начало координат в верхнем левом углу Assert.AreEqual(start.X, finish.X, "Координата икс пули должна быть неизменной"); }
private void Shoot() { PlayerBullet bullet = Instantiate(bulletPrefab, bulletParent.transform); // set position to player position(this.transform) bullet.transform.position = transform.position; Rigidbody2D rb = bullet.GetComponent <Rigidbody2D>(); rb.velocity = Vector2.up * bulletSpeed; if (soundController) { // play shot when player uses shoot button soundController.PlayOneShot(shootClip); } }
void Awake() { m_Rigidbody2D = GetComponent <Rigidbody2D>(); spriteRenderer = GetComponent <SpriteRenderer>(); animator = GetComponentInChildren <Animator>(); playerLight = GetComponentInChildren <PlayerLight>(); playerBullet = GetComponentInChildren <PlayerBullet>(); boxCollider2D = GetComponent <BoxCollider2D>(); gravity = m_Rigidbody2D.gravityScale; DontDestroyOnLoad(this.gameObject); OnInteractionEvent += (collider2D) => { collider2D.GetComponent <IInteractive>()?.Interactive(); }; }
void Start() { IsDeath = false; IsSuper = false; moveSpeed = baseSpeed; flame.SetThreshold(0.2f * moveSpeed, 0.5f * moveSpeed); Transform bulletHolder = new GameObject("PlayerBullets").transform; for (int i = 0; i <= 64; i++) { PlayerBullet bullet = Instantiate(bulletPrefab).GetComponent <PlayerBullet>(); bulletPool.Enqueue(bullet); bullet.transform.SetParent(bulletHolder); bullet.SetActive(false); } }
protected void processPlayerBullets(Enemy enemy) { //Initialize List<FNode> Deads = new List<FNode>(); List<FNode> HittedEnemies = new List<FNode>(); //For each child in the container for (int i = 0; i < m_PlayerBullets.GetChildCount(); i++) { //Get enemy PlayerBullet Bullet = m_PlayerBullets.GetChildAt(i) as PlayerBullet; if (Bullet != null) { //Move Bullet.x += 8.0f; Bullet.Update(Time.deltaTime); if (Bullet.ShouldBeDead()) { //Log logConsole("[ERROR] Memory Leak: PlayerBullet not deleted " + (m_Error + 1) + "/" + ERROR_MAX); Deads.Add(Bullet); incrementError(); } if (enemy != null && !Bullet.ShouldBeTouched() && Bullet.doesCollide(enemy)) { HittedEnemies.Add(enemy); Bullet.EnableTouchChecking(); FSoundManager.PlaySound("explosion"); //Log logConsole("[LOG] Engine: Bullet - Enemy collision detected!"); } } } //Remove deads for (int i = 0; i < Deads.Count; i++) m_PlayerBullets.RemoveChild(Deads[i]); //Activate hitted enemies foreach(Enemy hitted in HittedEnemies) { hitted.EnableTouchChecking(); } //Spawn m_PlayerBulletTimer -= Time.deltaTime; if (m_PlayerBulletTimer <= 0f && enemy != null && enemy.y == m_Exa.y) { //Create Vector2 playerPos = m_Exa.GetPosition(); float X = playerPos.x + 10.0f; float Y = playerPos.y; PlayerBullet bullet = new PlayerBullet(X,Y); bullet.SetBorder(m_PlayerBulletBorder); //Add m_PlayerBullets.AddChild(bullet); //Reset m_PlayerBulletTimer = 1.5f; //Log //logConsole("[LOG] Player: Shooting bullet"); } }
public static bool playerBulletToEnemy(PlayerBullet playerBullet, Enemy enemy) { return playerBullet.getCollisionRectangle().Intersects(enemy.getCollisionRectangle()); }
public void shootUpdate() { if (shoot) { if (time % 4 == 0) { PlayerBullet b = new PlayerBullet(position+new Vector2(-10,18), new Rectangle(0, 176, 63, 16),new Vector2(0,-25), new Rectangle(0, 0, 16, 64)); shootManager.getPlayerBulletList().Add(b); b = new PlayerBullet(position + new Vector2(10, 18), new Rectangle(0, 176, 63, 16), new Vector2(0, -25), new Rectangle(0, 0, 16, 64)); shootManager.getPlayerBulletList().Add(b); GameVariable.audioManager.play("se_plst00"); } } }
private static bool BulletDead(PlayerBullet b) { return b.dead; }