[原创]一步步教你用brew写游戏 5-知己知彼百战百胜

一步步教你用brew写游戏
                 五知己知彼百战百胜1

在上一讲我们在模拟器运行了helloworld程序,这一讲我们来运行一个真正的游戏代码,在
http://download.csdn.net/source/3204660下载附件源码。这个附件fly游戏是来自网上的一个程序,框架很好,在这里感谢一下这位作者~
下载后解压压缩文件,然后把目录里面的pfly_12.mif 剪切到他的上一层,至于原因在上一讲中讲过了。
然后运行目录下的pfly_12.dsw ,因为这个工程是vc创建的,所以在运行dsw文件时vs会询问是否转换为vs工程,直接点全部就好了。
然后删除source files下的AEEModGen.c和AEEAppGen.c
如下图


这里的AEEModGen.c和AEEAppGen.c
然后右键点击source files,选择添加-现有项 ,选择路径C:/Program Files/BREW 3.1.5/sdk/src,选中AEEModGen.c和AEEAppGen.c
确定返回,然后按F5运行程序,选择模拟器路径,设置程序路径,这样下来就会看到模拟器上出现了我们做的程序,如果没有成功请参考上一讲的设置内容。运行程序后会发现有些乱码,选择第一个(乱码的原因和解决可以参考

首先,高通默认带的brew模拟器是不支持中文的,所以可以在网上找一个支持中文的模拟器,然后,在代码中写的hardcode,也就是所谓的L“我是中文”形式赋值的字符串是会显示乱码的,最好的解决方法是把字符串资源加入资源文件~
然后用
ISHELL_LoadResString(pMe->a.m_pIShell,EAGLEACTION_RES_FILE,IDS_STRING_1028,szText,sizeof(szText)*sizeof(AECHAR));
这样来赋值,即使模拟器是乱码,放手机上也肯定是中文~


这样就可以看到程序运行界面



现在可以按方向键体验这个游戏了。

在体验了一番之后,我们要分析这个程序的基本架构了。
每一个brew程序中都有AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * pMod,void ** ppObj) 这个函数,这是整个程序的入口,brew只是通过识别这个函数来运行你的程序,因此这个函数是必须的,放在pfly.c里面
pfly.h是程序的结构体,定义了程序的一些变量和指针,比较重要的就是AEEApplet 这个结构体,里面包含了m_pIShell,m_pIModule,m_pIDisplay等指针,这些都是后期编程时一些API函数所需要的参数,比如helloworld中的IDISPLAY_DrawText函数。
MainMenuWnd.c 和MainMenuWnd.h是菜单界面的代码
GameWnd.c 和GameWnd.h是游戏界面的代码
GameEndWnd.h和GameEndWnd.c是游戏结束界面的代码
ScoreListWnd.c和ScoreListWnd.h是分数排行榜的代码
commondef.h定义了一些公用的宏

上面就是文件架构,程序架构如下图




由pfly.c中的Pfly_SetActiveWnd 函数统一管理整个游戏的界面跳转和事件分发。
大家可以仔细研究研究这个程序的源码,在下一讲中我们将详细分析brew游戏 的运行方法和一些必要的API

下一讲:真机运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值