cocos2dx3.2新手实战教程-----飞机大战之路
2014-09-24 11:36
190 查看
关于cocos2dx的环境搭建就不说了~~官网有详细教程!
下面开始项目-----飞机大战
一.要做飞机大战,首先想要的就是对战画面飞机的飞行,这里我们其实是用背景图片的循环滚动来实现飞机的飞行的
1.图片的滚动(这里用的网上的资源图片)
//创建两个背景图片精灵
在.h文件中声明Sprite* backGroundOne; Sprite* backGroundTwo;
在.cpp文件中实现
backGroundOne=Sprite::create("map.png");
backGroundOne->setPosition(Vec2(backGroundOne->getContentSize().width*0.5,backGroundOne->getContentSize().height*0.5));//创建图片放在屏幕上
addChild(backGroundOne,0,1);
backGroundTwo=Sprite::create("map.png");
backGroundTwo->setPosition(Vec2(backGroundTwo->getContentSize().width*0.5,backGroundTwo->getContentSize().height*1.5));//创建图片放在上一张图片之上,这里一开始我们看不到这张图片
addChild(backGroundTwo,0,2);
然后声明更新方法
scheduleUpdate();--------同时在.h文件中声明相关方法 void update(float t);(这里必须这么写)
之后在.cpp中实现这个方法
void HelloWorld::update(float t){
if (backGroundOne->getPositionY()<-backGroundOne->getContentSize().height*0.5) {
backGroundOne->setPosition(Vec2(backGroundOne->getContentSize().width*0.5,backGroundOne->getContentSize().height*1.5-2));
log("1");
}else{
backGroundOne->setPosition(Vec2(backGroundOne->getPosition()+Vec2(0,-1)));
}
if (backGroundTwo->getPositionY()<-backGroundTwo->getContentSize().height/2) {
backGroundTwo->setPosition(Vec2(backGroundTwo->getContentSize().width*0.5,backGroundTwo->getContentSize().height*1.5-2));
log("2");
}else{
backGroundTwo->setPosition(Vec2(backGroundTwo->getPosition()+Vec2(0,-1)));
}
// fireBullet();
}
这里需要详细说一下,我们模拟飞机飞行是用两张图片循环滚动来实现的,在更新函数中不断判断,当图片没有滚出屏幕时,我们让他y上面的坐标不断-1,也就是不断运动,当第一张图片滚动出屏幕时,那一瞬间将他重设坐标,放在下一张图片之上,同理第二张图片也是,就是不断循环利用吧!
下面是效果图(动态效果看不出来)
下面开始项目-----飞机大战
一.要做飞机大战,首先想要的就是对战画面飞机的飞行,这里我们其实是用背景图片的循环滚动来实现飞机的飞行的
1.图片的滚动(这里用的网上的资源图片)
//创建两个背景图片精灵
在.h文件中声明Sprite* backGroundOne; Sprite* backGroundTwo;
在.cpp文件中实现
backGroundOne=Sprite::create("map.png");
backGroundOne->setPosition(Vec2(backGroundOne->getContentSize().width*0.5,backGroundOne->getContentSize().height*0.5));//创建图片放在屏幕上
addChild(backGroundOne,0,1);
backGroundTwo=Sprite::create("map.png");
backGroundTwo->setPosition(Vec2(backGroundTwo->getContentSize().width*0.5,backGroundTwo->getContentSize().height*1.5));//创建图片放在上一张图片之上,这里一开始我们看不到这张图片
addChild(backGroundTwo,0,2);
然后声明更新方法
scheduleUpdate();--------同时在.h文件中声明相关方法 void update(float t);(这里必须这么写)
之后在.cpp中实现这个方法
void HelloWorld::update(float t){
if (backGroundOne->getPositionY()<-backGroundOne->getContentSize().height*0.5) {
backGroundOne->setPosition(Vec2(backGroundOne->getContentSize().width*0.5,backGroundOne->getContentSize().height*1.5-2));
log("1");
}else{
backGroundOne->setPosition(Vec2(backGroundOne->getPosition()+Vec2(0,-1)));
}
if (backGroundTwo->getPositionY()<-backGroundTwo->getContentSize().height/2) {
backGroundTwo->setPosition(Vec2(backGroundTwo->getContentSize().width*0.5,backGroundTwo->getContentSize().height*1.5-2));
log("2");
}else{
backGroundTwo->setPosition(Vec2(backGroundTwo->getPosition()+Vec2(0,-1)));
}
// fireBullet();
}
这里需要详细说一下,我们模拟飞机飞行是用两张图片循环滚动来实现的,在更新函数中不断判断,当图片没有滚出屏幕时,我们让他y上面的坐标不断-1,也就是不断运动,当第一张图片滚动出屏幕时,那一瞬间将他重设坐标,放在下一张图片之上,同理第二张图片也是,就是不断循环利用吧!
下面是效果图(动态效果看不出来)
相关文章推荐
- cocos2dx3.2新手教程2-----飞机大战
- 易语言新手入门教程第五课 - 计次循环命令讲解与实战
- 【Java工程师之路】[3-3.2]JavaBean入门基础教程
- Cocos2dx3.2编写常用UI组件(一)新手指导框GuideLayer
- yii2实战教程之新手入门指南-简单博客管理系统
- [js高手之路] es6系列教程 - 新的类语法实战选项卡
- 关于【cocos2dx-3.0beta-制作flappybird】教程在3.2project中出现找不到CCMenuItem.h的解决方法
- 新手教程:如何精准收集网站数据与实战分析
- cocos2dx3.2学习之路之动作
- cocos2dx3.2学习之路之锚点
- yii2实战教程之新手入门指南-简单博客管理系统
- 王家林 云计算分布式大数据Hadoop实战高手之路---从零开始 第二讲:全球最详细的从零起步搭建Hadoop单机和伪分布式开发环境图文教程
- cocos2dx[3.2](13)——全平台开发环境配置教程
- Cocos2d-x 3.2 android平台新手开发环境配置教程
- cocos2dx3.2学习之路之新建项目
- cocos2dx飞机大战教程Cocos2d-x飞机大战运行效果
- Cocos2d-x 3.2 Android平台新手开发环境配置教程
- Cocos2d-x 3.2 Android平台新手开发环境配置教程
- 用封装ClippingNode实现新手引导(cocos2dx 3.2版本)
- cocos2dx3.2学习之路之基本概念