当前位置: 首页 > news >正文

全国文明网联盟网站建设中国最著名网站建设公司

全国文明网联盟网站建设,中国最著名网站建设公司,查域名的网站,wordpress 旋转加载之前两个博客讲述了象棋的规格和工程文件之后#xff0c;我们继续深入的从代码开始学习cocos2dx首先从程序入口main函数开始main函数int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow) {UNREFERENCED_PARAMETER(h… 之前两个博客讲述了象棋的规格和工程文件之后我们继续深入的从代码开始学习cocos2dx首先从程序入口main函数开始main函数int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow) {UNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine);#ifdef USE_WIN32_CONSOLEAllocConsole();freopen(CONIN$, r, stdin);freopen(CONOUT$, w, stdout);freopen(CONOUT$, w, stderr); #endif// create the application instanceAppDelegate app;// 获得viewCCEGLView* eglView CCEGLView::sharedOpenGLView();eglView-setFrameSize(480, 320);// 运行程序int ret CCApplication::sharedApplication()-run();#ifdef USE_WIN32_CONSOLEFreeConsole(); #endifreturn ret; }以上是中国象棋的main函数的所有内容掐掉不关注的内容关键部位为以下代码// create the application instanceAppDelegate app;// 获得viewCCEGLView* eglView CCEGLView::sharedOpenGLView();eglView-setFrameSize(480, 320);// 运行程序int ret CCApplication::sharedApplication()-run();步骤1.使用AppDelegate去创建app对象2.创建视图对象比设置视图对象3.让app运行起来在这里可以看到app对象并没有被显式的使用但是它必须定义在它的构造函数里会将app的指针保存在全局变量使得CCApplication::sharedApplication()能获得app指针。怎么验证这点呢我们可以看到AppDelegate是有CCAppplication派生而在CCApplication的构造函数里有如下代码AppDelegate AppDelegate在这里是应用程序代理类该类的作用是继承一些虚函数对程序进行管理在我们的代码里主要是applicationDidFinishLaunching()启动完毕时被调用applicationDidEnterBackground()当程序进入后台时该函数被调用applicationWillEnterForeground()当程序从后台进入前台时被调用这三个函数我们重点看第一个吧因为我们在windows下后面两个函数无效先学习第一个看看第一个函数的内容bool AppDelegate::applicationDidFinishLaunching() {// initialize directorCCDirector *pDirector CCDirector::sharedDirector(); // 导演类pDirector-setOpenGLView(CCEGLView::sharedOpenGLView()); // 给导演一个空间// turn on display FPSpDirector-setDisplayStats(false); // 显示view // create a scene. its an autorelease objectCCScene *pScene CCWelCome::scene(); // 创建一个WelCome场景// 让导演去运行这个WelCome场景该welCome场景是象棋程序里的第一个场景// 第一个场景有什么内容呢那我们应该去看CCWelCome::scene();pDirector-runWithScene(pScene); return true; }在这个函数里创建了一个导演对象pDirector然后给导演一个空间pDirecotor-setOpenGLView(...);而这个view明显就是在main函数里创建的那个view这个view是一个物理上的窗口控制着整个程序的显示位置。接下来CCWelCome::scene创建了一个场景场景和view是什么关系呢就好像马戏团表演节目可以在北京表演可以在上海表演无论你在哪里表演你总得先搭台子这个台子就是view台子的位置决定了你在哪里表演节目。而当一个节目上演的时候这个叫做sceneWelCome就是象棋里面的一个场景。接着让导演pDirecotor去演示该Scene。该Sence演示的结果如下同学们一定好奇这个欢迎页面怎么出来的那我们继续看WelCome.cppCCWelCome先看头文件的类定义class CCWelCome : public CCLayer { public:static CCScene* scene();virtual bool init();void step(float dt);CREATE_FUNC(CCWelCome); };从类定义可以看出CCWelCome是一个CCLayer它有四个函数scene函数该函数为CWelCome创建了一个scene并创建一个CWelCome放入到该sence中init函数该函数被自动调用CWelCome中的元素都是在init时候被创建的step函数该函数在init时设置被计划调用也就是当init被调用后一段时间step被调用了CREATE_FUNC其实是定义了一个create函数scene函数CCScene* CCWelCome::scene() {// 创建一个新的sceneCCScene* pScene CCScene::create();if(!pScene){return NULL;}// 创建一个新CLayerCCWelCome* pLayer CCWelCome::create();if(!pLayer){return NULL;}// 把Layer加入到Scene返回Scene所以scene函数时创建了一个Layer但是返回包容了该Layer的一个ScenepScene-addChild(pLayer);return pScene; }注释在代码中同学可以好好看。这里注意为什么要返回Scene为什么不直接返回Layer是因为导演只能导Scene。那么WelCome作为一个Layer只好将其加入到一个Scene之后再返回。init函数bool CCWelCome::init() {// 调用父类的init函数进行初始化if (!CCLayer::init()){// 如果调用父类的初始化就失败则返回falsereturn false;}// 获得窗口大小这里CCDirector::sharedDirector获取的导演是外面创建的那个// 精灵需要用到这个位置信息CCSize s CCDirector::sharedDirector()-getWinSize();// 创建两个精灵第一个是黑色的老将第二个是红帅都通过addChild把精灵加入到了本Layer// 两个精灵的位置是由上述窗口Size计算得到图片bkg1.png和bkg2.png是两个老将的图片如果// 在你的环境中不显示那就要看看RES_PATH的路径是否正确了CCSprite* pBlackSprite CCSprite::create(RES_PATHbkg1.png);pBlackSprite-setPosition(ccp(s.width/2 - 56, s.height/2));addChild(pBlackSprite, 1); CCSprite* pRedSprite CCSprite::create(RES_PATHbkg2.png);pRedSprite-setPosition(ccp(s.width/2 56, s.height/2));addChild(pRedSprite, 2); // 最后精灵放置好之后调用定时器函数在一秒之后调用step函数schedule(schedule_selector(CCWelCome::step), 1.0f);return true; }在WelCome层中我们为该Layer创建了两个精灵后启动定时器1秒之后调用step函数使得窗口停留一秒后进入比赛窗口那是如何进入比赛窗口的呢。我们需要看step函数step函数void CCWelCome::step(float dt) {// 比赛界面的SceneCCScene* pScene CCMainMenu::scene();// 做个特效逐渐隐退效果CCScene* ps CCTransitionFade::create(2, pScene, ccc3(0, 0, 0));//CCScene* ps pScene; // 如果把上面的话换成这句那么场景切换就很生硬了// 替换senceCCDirector::sharedDirector()-replaceScene(ps);// step函数的定时器取消掉unschedule(schedule_selector(CCWelCome::step)); }step函数创建新的主界面场景然后在场景切换时做了个特效接着将新的sence替换那个WelCome的Scene。这样CCMainMenu的init函数就要被自动调用了....预知后事如何请听下回分解 转载于:https://www.cnblogs.com/niulanshan/p/6175074.html
http://www.zqtcl.cn/news/580677/

相关文章:

  • 深圳市设计网站公司自己做网站开网店
  • 智能建站cms管理系统修改wordpress时区
  • 站长怎么添加网站内容重庆网站推
  • 东莞网站建设属于什么专业网页设计代码书
  • 网站后台代码在哪修改wordpress添加搜索小工具
  • 爱站站长工具中国建设监理协会官方网站
  • 珠海微信网站开发东莞网站制作方案定制
  • 大学网站建设说明书记的网站域名
  • 网站如何开通支付功能第一ppt课件免费下载官网
  • 做1元夺宝网站挣钱吗美工网站设计收费
  • 华侨城网站开发wordpress页码颜色
  • 上海建站网络公司制作文字图片
  • 平台型网站制作网站建设张世勇
  • 网站建设云南网页游戏大厅都有哪些
  • 网站建设与管理报告书郑州建设银行网站
  • 做网站网页的人是不是思维公司网站建设包括
  • 网站建设都包括哪些网站后台如何上传文件
  • 网站便民服务平台怎么做迁安做网站中的cms开发
  • 做外贸比较好的网站怎么把网站做的好看
  • 有没有在淘宝找人做网站被骗过的台州市环保局网站开发区
  • 公司外文网站制作河南住房和城乡建设厅网站
  • 东莞做网站公司有哪些代码网站推荐
  • 棋类游戏网站开发网站首页顶部图片尺寸
  • 工信部如何查网站备案大连网络推广广告代理
  • 网站建设基本流程心得wordpress首页截断
  • 网站包括哪些内容网站开发的相关技能
  • 百度竞价 百度流量 网站权重qq推广
  • 重庆网站建设总结WordPress简单百度站长插件
  • pc网站转换成微网站工作室推广网站
  • 嘉兴优化网站公司做水果生意去哪个网站