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打包。恩。大概就像这样子




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


    1.先在Android.mk文件里加入全部必须的cpp

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

    glview->setDesignResolutionSize(480,800,ResolutionPolicy::SHOW_ALL);
    3.在proj.android目录以下改动AndroidManifest.xml 竖屏属性:
    android:screenOrientation="portrait"

    4.cmd到project文件夹。命令:cocos compile -p android -j 4




    源代码:飞机大战



  • 相关阅读:
    Java生鲜电商平台-物流配送的设计与架构
    五分钟学Java:如何学习Java面试必考的网络编程
    五分钟学Java:如何学习Java面试必考的网络编程
    Java原来还可以这么学:如何搞定面试中必考的集合类
    五分钟学Java:如何学习Java面试必考的JVM虚拟机
    先搞清楚这些问题,简历上再写你熟悉Java!
    MySql/Oracle和SQL Server的分页查
    Java面试题之int和Integer的区别
    Java基本数据类型转换
    Shiro-Subject 分析
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5171501.html
Copyright © 2011-2022 走看看