【Cocos2D-x 3.5实战】坦克大战(2)游戏开始界面,cocos2d-x3.5

  次阅读 来源:互联网(转载协议) 2015-09-28 11:27 我要评论(0)

【Cocos2D-x 3.5实战】坦克大战(2)游戏开始界面,cocos2d-x3.5

关于游戏的素材都是在网上到处搜集到的,然后自己再用二流的ps技术修修改改的,所以有可能混在一起有点不搭调(没有办法啊,没有美工Orz。。

项目已经建立好了,然后我们需要把我们下载的素材放到Resources文件夹。(游戏完成以后,我会把素材包上传的。。主要现在没有找完)

设置屏幕大小:

在vs中打开创建的项目,打开AppDelagate.cpp文件

在AppDelegate::applicationDidFinishLaunching()中添加代码

if(!glview) {

glview = GLViewImpl::create("Battle City"); //窗口标题

glview->setFrameSize(1280, 720); // 在这里设置创建窗口的尺寸,手机上不用设置,因为手机有固定的屏幕

director->setOpenGLView(glview);

}

在这个方法里面有director->setAnimationInterval(1.0 / 60);这行代码是作用是设置游戏的帧数,是游戏引擎调用OpenGL来绘制每一张图需要用到的时间,其中参数的意思为时间/画面数。这里我们不做修改

director->setDisplayStats(true);这一行代码它的作用在你游戏的左下角显示一些游戏的信息,比如说帧数,绘图等等数据,一般在我们调试的会将参数设置为true,但是完成发布之后一般设置为false,

游戏开始背景:

打开HelloWorldScene.cpp文件。

在init方法里面我们可以看到

// add "HelloWorld" splash screen"

auto sprite = Sprite::create("HelloWorld.png");

// position the sprite on the center of the screen

sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

这个就是创建背景,和设置背景位置坐标的代码了(Cocos2d坐标系和OpenGL坐标系一样,原点为屏幕左下角,x向右,y向上。)

这里使用了精灵这一概念,下面是关于cocos2d的精灵的中文wiki

Cocos2d中的精灵和其他游戏引擎中的精灵相似,它可以移动,旋转,缩放,执行动画,并接受其他转换。Cocos2dx的Sprite由Texure,frame和animation组成,由openes负责渲染。主要的类关系如下: 简单过程可描述为:使用Texture2D加载图片,可以用Texture2D生成对应的SpriteFrame(精灵帧),将SpriteFrame添加到Animation生成动画数据,用Animation生成Animate(就是最终的动画动作),最后用Sprite执行这个动作。

把原来的代码删除掉并添加

// 开始背景

auto startBackground = Sprite::create("ui/start_background.png");

// 设置精灵相对于屏幕的位置(绝对坐标系)

startBackground->setPosition(Vec2(visibleSize.width/2 + origin.x, 0));

// 设置锚点

startBackground->setAnchorPoint(Vec2(0.5, 0));

// 设置精灵的Tag,之后可以通过标签找到这个精灵,并对这个精灵进行操作

startBackground->setTag(START_BACKGROUD);

// 将背景精灵添加到层中。其中第二个参数0是设置可见优先权,数值越小优先权越小,如果有其他的精灵的优先权比他大时,他会被遮挡住

this->addChild(startBackground, 0);

并在helloworldscene.h中添加const int START_BACKGROUD = 101;

添加游戏菜单:

在HelloWorldScene.h中的helloworld类中声明两个公有回调方法,功能是点击菜单时触发。

void menuCloseCallback(cocos2d::Ref* pSender);

void menuStartCallback(cocos2d::Ref* pSender);

在HelloWorldScene.cpp中添加函数实现方法,close方法就用原来的 (具体功能暂时不写)

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...