Inheritance: MonoBehaviour
コード例 #1
0
        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");
        }
コード例 #2
0
    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);
    }
コード例 #3
0
    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();
    }
コード例 #4
0
    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);
    }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: PlayerShoot.cs プロジェクト: saihou/shield-runner
    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;
        }
    }
コード例 #7
0
    public virtual void GetHitByBullet(PlayerBullet bullet)
    {
        StartCoroutine(BulletHitSequence());

        if (m_State == State.Stunned)
        {
            bullet.ShowStunnedHitParticles();
        }
        else
        {
            bullet.ShowHitParticles();
        }
    }
コード例 #8
0
        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();
        }
コード例 #9
0
ファイル: ShipControl.cs プロジェクト: demonwithin01/LV
    /* --------------------------------------------------------------------- */

    #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);
        }
    }
コード例 #10
0
ファイル: EnemyB.cs プロジェクト: amendez8/Galactic-Warfare
    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);
        }
    }
コード例 #11
0
    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
    }
コード例 #12
0
ファイル: EnemyMovement.cs プロジェクト: tobnyl/GlobalWarning
    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;
        }
        }
    }
コード例 #13
0
    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);
        }
    }
コード例 #14
0
    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.");
                    }
                }
            }
        }
    }
コード例 #15
0
    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();
    }
コード例 #16
0
    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
    }
コード例 #17
0
    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--;
        }
    }
コード例 #18
0
        /// <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);
        }
コード例 #19
0
    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);
    }
コード例 #20
0
ファイル: HundGun.cs プロジェクト: kuroshum/Kokuyokan_source
    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();
    }
コード例 #21
0
ファイル: Enemy.cs プロジェクト: ttwkr/shooting
    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);
        }
    }
コード例 #22
0
    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();
            }
        }
    }
コード例 #23
0
    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));
    }
コード例 #24
0
 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);
     }
 }
コード例 #25
0
ファイル: Enemy.cs プロジェクト: har-y/SpaceTrial
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "player bullet")
        {
            PlayerBullet playerBullet = collision.gameObject.GetComponent <PlayerBullet>();

            if (!playerBullet)
            {
                return;
            }

            playerBullet.BulletDestroy();

            EnemyDestroy(playerBullet);
        }
    }
コード例 #26
0
ファイル: LargeCannon.cs プロジェクト: sgdc/CodenamePLOHO
    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);
        }
    }
コード例 #27
0
ファイル: Bullets_Tests.cs プロジェクト: shemloft/Game
        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, "Координата икс пули должна быть неизменной");
        }
コード例 #28
0
    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);
        }
    }
コード例 #29
0
    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();
        };
    }
コード例 #30
0
ファイル: Player.cs プロジェクト: youxin123/NieR-Rebirth
    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);
        }
    }
コード例 #31
0
    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");
        }
    }
コード例 #32
0
ファイル: CollisionCheck.cs プロジェクト: Shazi199/SatoriEx
 public static bool playerBulletToEnemy(PlayerBullet playerBullet, Enemy enemy)
 {
     return playerBullet.getCollisionRectangle().Intersects(enemy.getCollisionRectangle());
 }
コード例 #33
0
ファイル: Player.cs プロジェクト: Shazi199/SatoriEx
 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");
         }
     }
 }
コード例 #34
0
 private static bool BulletDead(PlayerBullet b)
 {
     return b.dead;
 }