C#游戏编程资料(8)

2021-02-21 11:57

整理的一些关于C#方面的游戏编程资料

ProcessFrame,这更能清楚地表明该方法实际的职责。

protected virtual void ProcessFrame()

{

if( !paused )

{

// do processing here

}

else

{

System.Threading.Thread.Sleep( 1 );

}

}

在ProcessFrame方法中添加了一些代码,用来判断游戏是否暂停。如果游戏没有暂停,则需要在相应的if语句块内添加处理逻辑,否则,让游戏线程休眠1ms。

由于Render和Run方法没有作什么改变,就不作什么说明了。

事件

窗体游戏不得不关注失去焦点这个问题。在多任务操作系统中(如Windows),用户可以非常容易地停止游戏并查看其它窗体的情况。自然地,游戏不要太自私,应该允许用户去使用其它应用程序,并等待用户返回。当程序失去焦点,就会触发执行OnLoseFocus事件。

protected override void OnLostFocus( EventArgs e )

{

base.OnLostFocus( e );

paused = true;

}

这时候,告诉基类(Form类)游戏程序已经失去焦点,并且设置Paused属性的值为true,让游戏暂停。

Paused属性

新框架有一个Paused属性封装bool类型的paused字段。

public bool Paused

{

get { return paused; }

set

{

// pause the game

if( value == true && paused == false )

{

gametimer.Pause();

paused = true;

}

// unpause the game

if( value == false && paused == true )

{

gametimer.Unpause();

paused = false;


C#游戏编程资料(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:等保测评3级-技术测评要求

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: