开发游戏引擎(13)

 

程序清单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);

}

[...]

读书导航