最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

cocos2dx3.0飞机大战

来源:懂视网 责编:小采 时间:2020-11-09 15:31:10
文档

cocos2dx3.0飞机大战

cocos2dx3.0飞机大战:由于课程需要,然后又水平有限,所以写了个飞机大战,加上不会画画,所以图片资源也是从微信apk解压出来的,设计思路参考的偶尔e网事。 闲话不说,先讲一下设计,大体上一共分为3个场景,场景下面是Layer 开始场景:WelcomeScene --WelcomeLayer
推荐度:
导读cocos2dx3.0飞机大战:由于课程需要,然后又水平有限,所以写了个飞机大战,加上不会画画,所以图片资源也是从微信apk解压出来的,设计思路参考的偶尔e网事。 闲话不说,先讲一下设计,大体上一共分为3个场景,场景下面是Layer 开始场景:WelcomeScene --WelcomeLayer

由于课程需要,然后又水平有限,所以写了个飞机大战,加上不会画画,所以图片资源也是从微信apk解压出来的,设计思路参考的偶尔e网事。 闲话不说,先讲一下设计,大体上一共分为3个场景,场景下面是Layer 开始场景:WelcomeScene --WelcomeLayer 类欢迎界面

由于课程需要,然后又水平有限,所以写了个飞机大战,加上不会画画,所以图片资源也是从微信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




源码:飞机大战

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

cocos2dx3.0飞机大战

cocos2dx3.0飞机大战:由于课程需要,然后又水平有限,所以写了个飞机大战,加上不会画画,所以图片资源也是从微信apk解压出来的,设计思路参考的偶尔e网事。 闲话不说,先讲一下设计,大体上一共分为3个场景,场景下面是Layer 开始场景:WelcomeScene --WelcomeLayer
推荐度:
标签: 飞机 课程 大战
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top