コード例 #1
0
        public void shoot()
        {
            if (!isGod)
            {
                Bullets newBullet = factory.bulletFactory("bullet", position, new Vector2(0, -10), true, 1);
                newBullet.position = position; //allow setting through constructor?

                if (bullets.Count < 20)
                {
                    bullets.Add(newBullet);
                }
            }
            else
            {
                //BulletSpread spread = (BulletSpread)factory.bulletFactory("spread", position, Vector2.Zero, true, 5, -1);
                BulletSpread spread = (BulletSpread)factory.bulletFactory("spread", position, Vector2.Zero, true, 5);
                foreach (Bullets bullet in spread.bullets)
                {
                    if (bullets.Count < 80)
                    {
                        bullets.Add(bullet);
                    }
                }
            }
        }
コード例 #2
0
    public static GameObject Create(Vector2 pos, int attackNumber, float cooldown = 1, float bulletSpeed = 5, bool runTimer = true, bool translate = false, bool isParent = true)
    {
        GameObject   rObj    = Instantiate(dfBulletSpread, pos, Quaternion.identity) as GameObject;
        BulletSpread rScript = rObj.GetComponent <BulletSpread>();

        rScript.attackNumber = attackNumber;
        rScript.bulletSpeed  = bulletSpeed;
        rScript.cooldown     = rScript.timer = cooldown;
        rScript.runTimer     = runTimer;
        rScript.translate    = translate;
        rScript.isParent     = isParent;
        return(rObj);
    }
コード例 #3
0
    // Update is called once per frame
    void Update()
    {
        if (bulletTimer <= 0)
        {
            // Timer
            bulletTimer = bulletCooldown;

            // Calculating Rotation
            var r = 0f;
            if (isRandomRotation)
            {
                r = Random.Range(-rotationSpeed, rotationSpeed);
            }
            else
            {
                r   = rotationSpeed * rF;
                rF *= -1;
            }

            // Instantiating Bullet
            var bSpread = BulletSpread.Create(transform.position, numOfBullets, bulletSpeed: bulletSpeed, runTimer: false, translate: true, isParent: true);
            bSpread.transform.eulerAngles = new Vector3(0, 0, r);
            var bullets = bSpread.GetComponent <BulletSpread>().Attack(customObj: customObject);
            bulletSpreads.Add(bSpread);

            // Checking for Max Bullets
            if (bulletSpreads.Count >= maxBulletSpreads)
            {
                Destroy(bulletSpreads[0] as GameObject);
                bulletSpreads.RemoveAt(0);
            }


            // If we want a customSprite the custom Sprite will be applied to each of the bullets
            if (customSprite != null)
            {
                foreach (var bullet in bullets)
                {
                    bullet.GetComponent <SpriteRenderer>().sprite = customSprite;
                }
            }
            RotateBy.Add(bSpread, r);
        }
        bulletTimer -= Time.deltaTime;
    }