游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1299|回复: 0

学写游戏2 (读书贴,新手请进)

[复制链接]

3

主题

28

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2008-1-6 21:22:00 | 显示全部楼层 |阅读模式
接上一篇 http://bbs.gameres.com/showthread.asp?threadid=103135
这部分增加了一个重要的类CAppGame。IAppEntry是其虚基类。以后大部分的工作都跟CAppGame有关。
CAppGame是窗口部分与游戏部分的接口。其接口变量是theAppGame,WinApp通过AppEntryClass()函数来使用theAppGame。
为什么theAppGame要在AppGame.cpp里定义而不是WinApp中或全局共享?为什么要用AppEntryClass()来传递?这个我还不太理解。 [em5]似乎是为了结构清晰吧。
在WinApp.cpp中有4处AppEntryClass()的重要调用。
if( !AppEntryClass()->Initialize( g_hTheApp, g_hMainWnd ) )
AppEntryClass()->Terminal();
AppEntryClass()-&gtrocess();
LRESULT lr = AppEntryClass()->WndProc( msg, wParam, lParam );
WinApp.cpp通过这几个调用实现与游戏部分的接口。以后对WinApp.cpp的修改就很少了
对结构感到头晕的朋友请复习C++语言。

AppEntryClass()->Initialize()的作用是对游戏的各模块进行初始化。诸如图形设备,图片,文字显示等模块的初始化函数都是在这里调用的。
AppEntryClass()->Process()游戏的主处理函数,将包含游戏的主要逻辑和渲染。
CAppGame::Render()这就是主渲染函数。
AppEntryClass()->WndProc( msg, wParam, lParam )目前只发现一个作用,就是把经过渲染的图像显示到屏幕上。注意这个函数不是给windows调用的回调函数,他被回调函数AppWndProc()调用。
这一章只是提供了一个架构,还没有实质的东西,不过这个架构我觉得很好。为下面的工作奠定了基础。
欢迎讨论 [em2]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 22:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表