The movement, collision, and disappearance of bubbles are all completed. The more I write about it, the less interesting it becomes. I am too lazy to write about the game-related stuff (such as how many levels there are in the game and how many bubbles are broken to pass the level). Friends who are interested can read it, because closures are used to modify setInterval in many places (this function is relatively cheap). Object-oriented, the annotations are relatively complete.