示例#1
0
    public void Fire(PlayerScript.DIRECTION direction, float curDegrees, float addDegrees)
    {
        if (this.timeCurrent >= this.timeNeed)
        {
            this.timeCurrent = 0;
            fireSound.Play();
            bar.transform.localScale = new Vector3(0, bar.transform.localScale.y, bar.transform.localScale.z);
            timeNeed = 1f;
            cooldown = false;

            createShot(direction, curDegrees, addDegrees);
        }

        else
        {
            if (cooldown == false)
            {
                this.timeCurrent         = 0;
                bar.transform.localScale = new Vector3(0, bar.transform.localScale.y, bar.transform.localScale.z);
                //bar.GetComponent<SpriteRenderer>().color = new Color(0.5F,0.5F,0.5F); // Does not work?!
                GameObject.Find("Cooldown").GetComponent <AudioSource>().Play();

                timeNeed = 2f;
                cooldown = true;

                createShot(direction, curDegrees, addDegrees);
            }
        }
    }
示例#2
0
    public static float DoAroundMovement(Transform transform, float currentDegrees, PlayerScript.DIRECTION movingDirection, float speed, bool gravity = true)
    {
        // do kreismovement
        float addDegrees = speed * (int)movingDirection * 8.0f * Time.deltaTime;

        currentDegrees += addDegrees;
        float angle = Mathf.PI * currentDegrees / 180.0f;
        float sin   = Mathf.Sin(angle);
        float cos   = Mathf.Cos(angle);

        float distance = Vector2.Distance(GameMaster.Earth.transform.position, new Vector2(transform.position.x, transform.position.y));

        // set kreismovement
        Vector3 pos = new Vector3(sin * distance, cos * distance, 0);

        transform.position = pos;

        // do turn
        Utility.DoTurn(transform, addDegrees);

        // gravity
        if (gravity == true)
        {
            // sets player and items to world subface
            transform.position += -transform.up * ((distance + transform.localScale.y) - (GameMaster.Earth.GetComponent <CircleCollider2D>().radius * 2 - transform.localScale.y * 2));
        }

        // return new Degrees of object
        return(currentDegrees);
    }
示例#3
0
    private void createShot(PlayerScript.DIRECTION direction, float curDegrees, float addDegrees)
    {
        GameObject chargeObj = GameObject.Instantiate(chargePrefab, Spawn.position, this.transform.rotation) as GameObject;
        GlueCharge charge    = chargeObj.GetComponent <GlueCharge>();

        charge.movementDirection = direction;
        charge.currentDegrees    = curDegrees + addDegrees;

        if (addDegrees > 0)
        {
            Utility.DoTurn(chargeObj.transform, addDegrees * 2);
        }
    }