程序清单4-15 在窗体的Load事件中启动绘制循环
private void Form1_Load(object sender, EventArgs e)
{
// Enable both of the timers used within the form
fpsTimer.Enabled = true;
// Show the game form and ensure that it repaints itself
this.Show();
this.Invalidate();
// Begin the game's render loop
RenderLoop();
}
项目现在可以运行了,并且出现了弹跳的小球。我们对CBounceGame类的Reset方法稍微进行一点修改(参见程序清单4-16)来体现该游戏引擎的一个优势。我们在循环中不止添加1个小球,而是20个,马上就可以看到窗体中出现了很多运动着的小球。
程序清单4-16 在CBounceGame.Reset中添加许多小球
[...]
// Add some balls
for (int i = 0; i < 20; i++)
{
// Create a new ball. This will auto-generate a random position for itself.
ball = new CObjBall(this);
// Add the ball to the game engine
GameObjects.Add(ball);
}
[...]