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); } } }
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); }
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); } }