XNA学习笔记(2)-XNA的编程模型

你使用任何一个框架都得遵从它的编程模型,并遵从它的编程规则。

有如,底层的I/O读写模型,网络通讯的TCP/UDP模型, Java Serverlet的模型 Hibernate编程模型等。基本上就是框架搭好了,你填充具体的业务代码。模型化的东西在微软肯定是被发挥的淋漓尽致了。

我们可以通过下面这张图来看一下XNA的基本开发模型是什么。

 

我们看图:

1.首先进行初始化Initialize(),显然是初始化变量,比如比分,血槽什么的,还有一些系统相关的初始化,它自己已经完成了代码base.Initialize() ,我们不够用太关心。

2.然后LoadContent()。顾名思义,就是读取内容,把图片,声音,模型什么的都读进来。

3.之后,进入了一个叫游戏循环的地方(game loop),这个概念有点儿像早期你做windows编程时候接触到的轮询概念(那个 while true循环),不过还是有点儿区别。

游戏循环包括两个主函数 一个是Update()一个是 Draw()。Update实现更新逻辑,Draw()实现更新逻辑对应的图像改变。其实这是一件事情,XNA把它拆成了两层,个人认为这也是一种解耦思想的体现,实现高内聚低耦合。XNA建议Draw()函数中只实现图像改变相关的工作,而把所有逻辑放到Update ()函数中去。

实现起来就是 Update()->Draw()->Update->Draw().....这样的死循环。串起它们来的是一个时间变量 GameTime 。

 

4.当游戏结束后UnloadContent()(图中写成uploadContent()了)。实现卸载资源。

 

游戏和一般的UI应用还是有区别的。

一般的UI应用的核心是事件-响应模型。捕捉键盘/鼠标的事件,并作出响应。主要的工作是响应人类的操作。

 

游戏呢,它有许多内部自发的事件需要响应。拿超级玛丽来说吧,马里奥要是站在那里不动,过来一个乌龟,直接把他咬死了。被咬死是游戏里的乌龟触发的。

这种区别造成了编程时使用的模型不一样。以后的博客会慢慢说。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值