// each tick activate the next objects methods private void Timer_Tick(object sender, object e) { // move objects gameBar.Movement(); // game speed grows as level up for (int j = 0; j < level; j++) { ball.Movement(); // check collisions gameBar.Collision(leftWall); gameBar.Collision(rightWall); ball.Collision(leftWall); ball.Collision(topWall); ball.Collision(rightWall); ball.Collision(gameBar); for (int i = 0; i < bricks.Length; i++) { // for brick that is not exist, skip (continue) the collision if (bricks[i] == null) { continue; } if (ball.Collision(bricks[i])) { DeleteBrick(i); score += 100; txtBlScore.Text = "SCORE: " + score.ToString(); bricksCounter--; } // cleanup - use the ball to make one collide only ball.countCollides = 0; } } if (IsLevelComplete()) { LevelUp(); } if (IsGameOver()) { EndGame(); } // paint objects Canvas.SetLeft(rectBar, gameBar.Position_X); Canvas.SetLeft(paintBall, ball.Position_X); Canvas.SetTop(paintBall, ball.Position_Y); }