zoukankan      html  css  js  c++  java
  • cocos2dx 3.0 飞机大战

    由于课程需要,然后又水平有限,所以写了个飞机大战,加上不会画画,所以图片资源也是从微信apk解压出来的,设计思路参考的偶尔e网事


    闲话不说,先讲一下设计,大体上一共分为3个场景,场景下面是Layer


    开始场景:WelcomeScene -->WelcomeLayer  类似欢迎界面

    游戏主场景:GameScene  --> GameLayer  游戏元素添加 和 碰撞检测

    结束场景:GameOverScene -->GameOverLayer


    然后是游戏的元素,在GameLayer添加,一个分为4个Layer:


    PlaneLayer:主角层 

    EnemyLayer:敌机层 ,分为3种,每种敌机生命值不一样

    UFOLayer: 道具层,bullet和加bomb

    BulletLayer:子弹层 bullet 和mutiBullet


    然后简单讲一下碰撞检测的实现:

    if(bullet->boundingBox().intersectsRect(enemy1->getBoundingBox())){
    				if(enemy1->getLife() == 1){
    					enemy1->loseLife();
    					bulletsToDelete->addObject(bullet);
    					enemy1ToDelete->addObject(enemy1);
    					score += ENEMY1_SCORE;
    					this->mControlLayer->updateScore(score);
    				}
    			}
    Rect Enemy::getBoundingBox(){
    	Rect rect = this->m_sprite->boundingBox();
    	Point pos = this->convertToWorldSpace(rect.origin);
    	return Rect(pos.x, pos.y, rect.size.width, rect.size.height);
    }


    还有再来就是子弹层的处理:

    子弹发射需要步骤:1.添加子弹,2.移动子弹,3移除子弹

    由于需要源源不断的发射子弹,所以将子弹添加到一个SpriteBatchNode节点中,然后在这个SpriteBatchNode节点对子弹进行添加,移动,和移除,这样子做的好处是只需要渲染一次,降低内存消耗

    auto texture = TextureCache::getInstance()->textureForKey("shoot.png");
    	bulletBatchNode = SpriteBatchNode::createWithTexture(texture);
    	this->addChild(bulletBatchNode);


    然后再讲一下图片资源的处理:


    下载这个工具:plist解析工具

    将微信需要的资源解析出来,然后可以用photoshop处理一下,哈哈,可以将微信的图片去掉,随便p上自己的名字

    然后用TexturePacker打包,恩,大概就像这样子




    最后再讲一下编译成android工程的步骤和细节:


    1.先在Android.mk文件中添加所有必须的cpp

    2.记得在AppDelegate cpp 中添加分辨率适应

    glview->setDesignResolutionSize(480,800,ResolutionPolicy::SHOW_ALL);
    3.在proj.android文件夹下面修改AndroidManifest.xml 竖屏属性:
    android:screenOrientation="portrait"

    4.cmd到工程目录,命令:cocos compile -p android -j 4




    源码:飞机大战



  • 相关阅读:
    《精通C#》委托与事件(10章)
    正则
    h5的formData 上传文件及.net后台
    img显示文件对象
    用div 画出三角形
    父元素有border-radius时,overflow 失效
    HTML标签文本内容正常显示而不被解析
    css 从简单到复杂的动态效果,你值得拥有
    在$.post()函数外 使用$.post()返回函数的数据
    jquery工作积累
  • 原文地址:https://www.cnblogs.com/fzll/p/3954605.html
Copyright © 2011-2022 走看看