游戏的基本结构

游戏的基本结构

ID:34274001

大小:70.50 KB

页数:19页

时间:2019-03-04

游戏的基本结构_第1页
游戏的基本结构_第2页
游戏的基本结构_第3页
游戏的基本结构_第4页
游戏的基本结构_第5页
资源描述:

《游戏的基本结构》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、游戏的基本结构游戏是什么呢?在游戏中,往往是显示各种各样的画面,玩家可以做一些设定好的控制,画面根据玩家的控制有所变化。从这儿可以看出,游戏至少需要三个功能-显示画面,接受玩家输入和对输入产生反馈。这就是常说的渲染,输入输出和逻辑三个模块。将这三个模块组合在一起有很多方法。比如事件驱动-画面保持不变直到接受到输入事件,程序进行逻辑运算然后改变画面。而游戏往往不是这样,游戏是时间驱动的。也就是说无论有没有输入,游戏都在不停的循环-检查是否有输入,运行逻辑,渲染画面。这里我多说一句,其实什么样的结构并不能区别一个程序是不是游戏,其实只要可以互动娱乐的程序就

2、可以称为游戏,也不一定要用时间驱动,但采用时间驱动是专业游戏的普遍做法,也是很容易接受的方法-因为从一定程度上讲,游戏很像电影,随着时间流逝画面在改变。      既然是时间驱动,游戏中就会有帧的概念。所谓帧就是某个时刻显示在屏幕上的画面。从整体上看,游戏就是一系列的帧不断播放着,像动画片一样,不过玩家可以通过交互改变播放的内容。而我们开发游戏的主要任务就是安排每一帧的内容。在每一次游戏循环中,我们需要搜集玩家的输入、运行逻辑以更新游戏的数据、根据更新后的数据安排下一帧显示的内容。 所以一个最简单的游戏结构就是:0初始化游戏1是否结束游戏(Yes:转到

3、6)2搜集玩家输入信息3运行游戏逻辑4更新下一帧,显示下一帧5回到16 清理,结束游戏这是一个最基本的结构,特别对于比较简单的J2ME游戏来说,这个结构更加有代表性。下面我们将分别讲述专业手机游戏如何实现这个结构中的各个内容。游戏循环的实现      我们需要一个进入后就一直循环下去直到游戏结束的结构。线程正好可以实现。最通常的做法是让Canvas实现Runnable接口。于是我们就可以实现run方法。下面是一个run方法简化版:publicvoidrun(){                     exitMidlet=false;        

4、              longstartTime=0;                       longtimeCount=0;                       gameInit();                       intcurKey=0;                       while(!exitMidlet){                                 startTime=System.currentTimeMillis();                             

5、        //acquirekey                                 acquireKey();                                 //callgameloop                                   gameLoop();                                   //repaintthescreen                                   repaint();                      

6、             serviceRepaints();                                   frameCount++;                                      //lockfps                                    timeCount=MIN_DELAY-(System.currentTimeMillis()-startTime);                                   timeCount=(timeCount<1)

7、?1:timeCount;                                       try{                                               Thread.sleep(timeCount);                                   }catch(InterruptedExceptionex){}                       }                       endMidlet();}  看到我们的while循环了吗?除非在程序逻辑中

8、设定exitMidlet为true-那是当玩家选择了退出游戏,我们的游戏将一直运行下去。在wh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。