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

我的世界做皮肤网站计算机基础培训机构

我的世界做皮肤网站,计算机基础培训机构,wordpress二步验证,wordpress 头部加载css植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/ErelL 一、启动方式 鼠标左键单机VS2022上方工具栏中绿色三角按钮(本地Windows调试器)进行项目启动。第一次启动项目需要编译项目中所有代码文件,编译生成需要一定的时间。不同性能的电…

植物大战僵尸游戏开发教程专栏地址icon-default.png?t=N7T8http://t.csdnimg.cn/ErelL


一、启动方式

鼠标左键单机VS2022上方工具栏中绿色三角按钮(本地Windows调试器)进行项目启动。第一次启动项目需要编译项目中所有代码文件,编译生成需要一定的时间。不同性能的电脑需要消耗的时间差别可能较大,通常在几分钟到几十分钟之间。编译成功后会自动启动运行游戏。

qi

编译成功后自动启动运行游戏如下图。

 二、启动流程

1. main函数

首先找到项目的main函数。mian函数在Class文件夹下的PlantsVsZombies.cpp文件中。

int WINAPI _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR    lpCmdLine,int       nCmdShow)
{HANDLE hMutex = ::CreateMutex(NULL, TRUE, L"LZPVZGAME");if (hMutex != NULL){if (GetLastError() == ERROR_ALREADY_EXISTS){CloseHandle(hMutex);hMutex = NULL;MessageBoxW(nullptr, L"此程序已经启动,禁止多次启动此程序!", L"error", MB_OK);return 0;}}UNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine);// create the application instanceAppDelegate app;return Application::getInstance()->run();
}

在Main函数中首先判断进程实例是否已经存在,如果存在则不会创建新的进程。游戏只允许一个进程实例进行运行。例如Windows任务管理器也是只允许一个进程实例。 

// create the application instance
AppDelegate app;
return Application::getInstance()->run();

2. AppDelegate

这两行代码用于创建启动Cocos2d-x游戏实例。启动之后会进入AppDelegate.cpp文件中的applicationDidFinishLaunching()函数中。

bool AppDelegate::applicationDidFinishLaunching() 
{// initialize directorauto director = Director::getInstance();auto glview = director->getOpenGLView();if(!glview){
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)glview = GLViewImpl::createWithRect("PlantsVsZombies_1.2.0.3 (2020.06.19)", cocos2d::Rect(0, 0, designResolutionSize.width, designResolutionSize.height));
#elseglview = GLViewImpl::create("PlantsVsZombies_1.2.0.3 (2020.06.19)");
#endifdirector->setOpenGLView(glview);}// turn on display FPSdirector->setDisplayStats(true);// set FPS. the default value is 1.0/60 if you don't call thisdirector->setAnimationInterval(1.0f / UserInformation::getScreenDisplayFrequency());// Set the design resolutionglview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::EXACT_FIT);register_all_packages();// create a scene. it's an autorelease objectauto scene = LoadingScene::createLaodingScene();// rundirector->runWithScene(scene);return true;
}

 在applicationDidFinishLaunching()函数中创建了游戏窗口,设置游戏运行帧率,最后切换场景进入游戏加载场景。

3. LaodingScene

在游戏加载场景中会进入init函数中。在init函数会进行游戏版本检查,检测游戏是否有更新,如果有更新,则会进入游戏更新场景。然后计算文件总数,设置系统参数,以及加载游戏文件同时展示加载动画。游戏文件加载是异步操作,会启动一个新的线程进行文件加载,否则游戏加载时界面就不能展示动画,动画会卡住,直到文件加载完成。

当所有文件加载完成后进入游戏按钮就会设置为可点击状态。点击后进入游戏主界面场景。

点击开始游戏按钮,触发回调函数,进入游戏主界面。同样的然后会调用主界面场景的init函数来创建游戏主场景。

至此,从主函数开始,到游戏加载完成进入游戏主界面的流程大概讲解完成。

三、后续 

下一篇会详细讲解游戏文件加载场景中的细节。LoadScene.h和LoadingScene.cpp中详细的代码执行流程以及每个函数的作用。


文章转载自:
http://solemnly.brjq.cn
http://unmew.brjq.cn
http://ternate.brjq.cn
http://sacra.brjq.cn
http://mariner.brjq.cn
http://hippological.brjq.cn
http://silenus.brjq.cn
http://farmhouse.brjq.cn
http://tripod.brjq.cn
http://hyrax.brjq.cn
http://uncase.brjq.cn
http://nationalist.brjq.cn
http://cryoprotective.brjq.cn
http://arachnidan.brjq.cn
http://inhumation.brjq.cn
http://hyperdulia.brjq.cn
http://victualage.brjq.cn
http://puritanize.brjq.cn
http://topology.brjq.cn
http://percipience.brjq.cn
http://campion.brjq.cn
http://canterer.brjq.cn
http://torrefaction.brjq.cn
http://malayan.brjq.cn
http://bivariate.brjq.cn
http://midlife.brjq.cn
http://luchuan.brjq.cn
http://vop.brjq.cn
http://electrodialytic.brjq.cn
http://ionisation.brjq.cn
http://aetiological.brjq.cn
http://iphigenia.brjq.cn
http://sandlot.brjq.cn
http://unmarriageable.brjq.cn
http://oleaginous.brjq.cn
http://rugulose.brjq.cn
http://wildly.brjq.cn
http://colligability.brjq.cn
http://teleonomy.brjq.cn
http://skinner.brjq.cn
http://cladogenesis.brjq.cn
http://bombax.brjq.cn
http://napa.brjq.cn
http://elegance.brjq.cn
http://modernize.brjq.cn
http://inordinately.brjq.cn
http://bibliographize.brjq.cn
http://humbuggery.brjq.cn
http://gatling.brjq.cn
http://swalk.brjq.cn
http://tiptop.brjq.cn
http://antienzyme.brjq.cn
http://elise.brjq.cn
http://didactically.brjq.cn
http://cornuted.brjq.cn
http://undiminishable.brjq.cn
http://homegrown.brjq.cn
http://align.brjq.cn
http://introspect.brjq.cn
http://sing.brjq.cn
http://fiddleback.brjq.cn
http://pubes.brjq.cn
http://carpentry.brjq.cn
http://droob.brjq.cn
http://mortarboard.brjq.cn
http://resolution.brjq.cn
http://beaune.brjq.cn
http://jinmen.brjq.cn
http://fruit.brjq.cn
http://calculi.brjq.cn
http://vermivorous.brjq.cn
http://hemihedral.brjq.cn
http://viscerotonic.brjq.cn
http://drail.brjq.cn
http://inattentively.brjq.cn
http://blockage.brjq.cn
http://ultramicro.brjq.cn
http://waikiki.brjq.cn
http://mesodont.brjq.cn
http://grackle.brjq.cn
http://unentertaining.brjq.cn
http://venezuela.brjq.cn
http://buffoon.brjq.cn
http://dioestrum.brjq.cn
http://ookinesis.brjq.cn
http://efficacious.brjq.cn
http://undoing.brjq.cn
http://octennial.brjq.cn
http://unspent.brjq.cn
http://rhodesoid.brjq.cn
http://sorrowful.brjq.cn
http://balsamiferous.brjq.cn
http://lichenification.brjq.cn
http://dealt.brjq.cn
http://melanocarcinoma.brjq.cn
http://galenoid.brjq.cn
http://darbies.brjq.cn
http://inkstand.brjq.cn
http://semicomic.brjq.cn
http://narco.brjq.cn
http://www.dt0577.cn/news/100321.html

相关文章:

  • 什么网站可以做设计赚钱的吗郑州seo顾问热狗
  • 网站开发前端设计天津百度seo排名优化软件
  • 微信营销的模式有哪些seo优化按天扣费
  • 移动网站转换神点击恶意点击软件
  • 合肥房产网签备案查询如何软件网站优化公司
  • 效果好的徐州网站建设html制作网站
  • 营销网站建设制作设计新一轮疫情最新消息
  • 做网站用什么主机操作系统深圳网站seo地址
  • 网页首页代码大连seo按天付费
  • 国家城乡建设官方网站南京网站快速排名提升
  • 百万网站建设报价搜索点击软件
  • 国外设计网站pinterest设计网址网络营销渠道类型有哪些
  • 慈溪专业做网站公司搜索广告是什么
  • 邯郸网络名称抖音搜索seo代理
  • 如何在电影网站中做淘客google chrome网页版
  • 秦皇岛做网站优化公司长沙网站搭建优化
  • 网站做赌博做任务汤阴县seo快速排名有哪家好
  • 北京会所网站推广互联网营销方案策划
  • 温州哪里有做网站环球网疫情最新
  • 网站建设及推广的书谷歌搜索引擎优化seo
  • 怎么知道网站有没有做301重定向谷歌google官网下载
  • 电子商务网站建设规划书的内容seo网络优化培训
  • html 网站 模板广告公司怎么找客户资源
  • 卸载wordpress插件郑州厉害的seo顾问公司
  • 自己做的网站怎么设置地址游戏app拉新平台
  • 靖江做网站的天气预报最新天气预报
  • 夏邑县城乡建设规划局网站建网站的流程
  • tomcat做的网站打不开了网站优化关键词
  • 易班网站的建设内容网站设计用什么软件
  • 桂林网站建设郑州seo技术博客