void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.name == "racket") { GetComponent <Rigidbody2D> ().velocity = (new Vector2(hitFactor(transform.position, col.transform.position, col.collider.bounds.size.x), 1).normalized) * speed; } else if (col.gameObject.tag == "end_life_wall" && gameObject != null) { gameObject.transform.position = new Vector2(0, -106); gameObject.GetComponent <Rigidbody2D> ().velocity = Vector2.up * (speed = DEFAULT_SPEED); ballState = BallCollisionManager.BallDensity.NORMAL; ballColorState = BallCollisionManager.ColorState.NEUTRAL; GetComponent <SpriteRenderer> ().sprite = Resources.Load <Sprite> ("Sprites/ball/Neutral/neutral_ball_2"); } else if (col.gameObject.tag == "brick") { // if(pointPowerUpIterator++ < POINT_POWER_UP_BLOCK_LIMIT) // { // points += pointGain; // pointsText.text = points.ToString (); // } // else // { // pointGain = DEFAULT_POINT_GAIN; // pointPowerUpIterator = 0; // } } else if (col.gameObject.tag == "multi_color_brick") { //TODO: add ball density to ball of different color StartCoroutine(colorPowerUp()); } }
IEnumerator colorPowerUp() { //TODO: Random Variable "Color Blocks" ballColorState = bcm.getRandomColor(); bcm.changeBallColor(gameObject, ballColorState, ballState); yield return(new WaitForSeconds(6)); ballColorState = BallCollisionManager.ColorState.NEUTRAL; bcm.changeBallColor(gameObject, BallCollisionManager.ColorState.NEUTRAL, ballState); }
void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.tag == "normal_brick" || col.gameObject.tag == "solid_brick" || col.gameObject.tag == "speed_power_up" || col.gameObject.tag == "point_power_up" || col.gameObject.tag == "resize_power_up" || col.gameObject.tag == "density_power_up" || col.gameObject.tag == "ball") { Physics2D.IgnoreCollision(col.gameObject.GetComponent <Collider2D> (), GetComponent <Collider2D> ()); } else if (col.gameObject.tag == "racket") { if (ball != null) { string path = "Sprites/ball/Neutral/neutral_ball_"; BallCollisionManager.ColorState state = ball.GetComponent <Ball> ().ballColorState; if (state == BallCollisionManager.ColorState.RED) { path = "Sprites/ball/Red/red_ball_"; } else if (state == BallCollisionManager.ColorState.BLUE) { path = "Sprites/ball/Blue/blue_ball_"; } else if (state == BallCollisionManager.ColorState.GREEN) { path = "Sprites/ball/Green/green_ball_"; } else if (state == BallCollisionManager.ColorState.YELLOW) { path = "Sprites/ball/Yellow/yellow_ball_"; } bool ballHasChanged; int num; do { num = bcm.getRand(0, 3); if (num == 2) { if (ballHasChanged = (ball.GetComponent <Ball> ().ballState != BallCollisionManager.BallDensity.NORMAL)) { ball.GetComponent <Ball> ().ballState = BallCollisionManager.BallDensity.NORMAL; ball.GetComponent <SpriteRenderer> ().sprite = Resources.Load <Sprite> (path + "2"); } else { ballHasChanged = false; continue; } } else if (ballHasChanged = (num == 0)) { ball.GetComponent <Ball> ().ballState = BallCollisionManager.BallDensity.HARD; ball.GetComponent <SpriteRenderer> ().sprite = Resources.Load <Sprite> (path + "4"); } else if (ballHasChanged = (num == 1)) { ball.GetComponent <Ball> ().ballState = BallCollisionManager.BallDensity.SOFT; ball.GetComponent <SpriteRenderer> ().sprite = Resources.Load <Sprite> (path + "1"); } } while(!ballHasChanged); Destroy(gameObject); } } }