cocos2dx 3.4 入手cocos2dx 第一次总结

刚刚接触Cocos2dx ,个人感觉挺有意思的。在官方论坛上发现一个微信打飞机的入手程序教程叫[《猩先生带你打飞机(一)环境与创建项目》文章写得真心不错,但是还是有很多细节上的东西作者没详说,可能是一些东东作者认为太easy了吧,导致了我学习过程中各种碰壁。。。,终于越过千山万水,冲破各种困难障碍,做出来一个半成品,故写一篇Blog以作纪念。

环境搭建

对于环境搭建,按原理来说直接度娘就OK啦。但是你会发现原来度娘真不是万能的,个人感觉网上关于cocos2dx 3.x环境介绍不咋多呢。所以大家可以多看看官网上的讲解http://cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game,英文的,不过合图片还是比较eazy能懂得。

个人认为需要有几点注意:

1. 3.x貌似都用Python写得,python作为一个脚本语还是比较容易学习的,我算是一个半吊子Python的学习者,所以一些代码还是能够看懂的。一般创建一个新 工程在cocos2d-x-3.4\tools\cocos2d-console\bin,运行cocos.py new YourGameTitle -p com.yourcompany.gametitle -l cpp -d C:\YourGameTitle 就OK。个人比较嫌麻烦,故在该目录下自己写了个bat文件,想建新工程的时候就改改名,改改路径双击一下就OK了。当然对于一些更懒得人可以吧名字之类的参数弄成变量,到时候双击BAT文件直接输入名字自动就创建了。(附一下cmd相关的命令 set /p pname= 输入变量命令,变量引用%pname%)

2. 环境变量,我现在只会一点Android,木有弄过IOS,故所有都是针对Android,对于Android出了基本的JAVA和Android SDK外我们还用到NDK。官网上都有讲到相关的配置,配置之前有Python基础的人可以看一下build_native.py这个文件。

3. 配置好了,一定要把他们的测试程序运行一下,我反正win版本和Android版本的都运行了。

基础知识

  关于基础知识,我很弱的。。。。。不过勉勉强强够这个半成品用的了。

1. Cocos2dx 3.x,万能关键字auto似乎用的很频繁,反正各种用auto,也很省事。

2. Cocos 引擎 主要用的基本元素就是sprite和director,反正我目前就知道这个,然后就是scene action,再然后particle phythics.瞬间感觉自己弱爆了。

对于精灵,所有能动不能动的,活的死的东东,应该都是精灵吧,暂时就这么理解吧。然后director就是导演,就像拍电影似得,精灵就是演员,道具等,导演指挥 着演员,道具的action等,还有场景(scene),就像电影一幕一幕的组合而成。大概的解释就这样,写游戏吗就是要做自编自演自导电影。至于粒子系统和物理引擎就是让演员和道具更加具象化,可以理解为化妆和学习特技。

3. 坐标系,cocos2dx(敲起来太麻烦了 直接打C了)的坐标系就是左下角为原点,向右为X轴正方向,向上为Y轴正方向。然后最重要的要知道锚点(Anchor),说白了锚点就是一个物体的参照中心点,通过他为基准来确定他的position。因为一个图形,或者说物体来说,他不是一个点而是一个区域,想要确定他的位置必须在物体上选择一个点来表示这个位置,其他的区域像素都是相对于这个点的。因为是物体或者层内部选的,所以一般都用(x,y)(0<=x,y<=1)来确定锚点在物体的位置。

        auto bg2 = Sprite::create("bg_02.jpg");
	bg2->setPosition(Vec2(origin.x + visibleSize.width / 2, bg1->getPositionY() + bg1->getContentSize().height));
	bg2->setAnchorPoint(Vec2(0.5, 0));

4. animation,动画,就是让你的精灵动起来。原理就是几张动作的图片,然后让它们重复连续的播放。


         <span style="font-size:18px;"> Animation * animation = Animation::create();
	SpriteFrame * spriteFrame1 = SpriteFrame::create("plane.png", Rect(66, 168, 62, 68));
	SpriteFrame * spriteFrame2 = SpriteFrame::create("plane.png", Rect(2, 168, 62, 75));

	animation->addSpriteFrame(spriteFrame1);
	animation->addSpriteFrame(spriteFrame2);
	animation->setDelayPerUnit(0.15f);        //两张图片交互播放的间隔
	Animate * animate = Animate::create(animation);

	plane->runAction(RepeatForever::create(animate));     //开始执行动画</span>

5. 屏幕适配,不解释,只贴代码,不懂者度娘,或者Google。注意的是操作一定不要写到if语句之内,原因是Android貌似不走if语句

    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
	
    if(!glview) {
	glview = GLViewImpl::create("飞机大战"); 
	//glview->setFrameSize(1920.,1080);
        director->setOpenGLView(glview);

    }

    glview->setDesignResolutionSize(480, 800, ResolutionPolicy::EXACT_FIT);

6. 粒子系统分默认和自己创建的,推荐一个粒子编辑器Particle Editor for Cocos2d and V-Play。

<span style="white-space:pre">	</span>auto system = ParticleSystemQuad::create("Ring.plist");
<span style="white-space:pre">	</span>system->setTotalParticles(100);//小bug  plist无法导入需要自己导入。。。。 I dont know why
<span style="white-space:pre">	</span>system->setAutoRemoveOnFinish(true);
<span style="white-space:pre">	</span>system->setPosition(spriteA->getPosition());
<span style="white-space:pre">	</span>this->addChild(system);

7. 物理引擎,Cocos2dx 貌似支持两种Box2d或chipmunk,直接用的,当然物理引擎我也不熟啦。对于本半成品,打飞机,会点碰撞就OK了。详细不讲了。


基本总结的就这些,第一篇blog就这么愉快结束了。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值