cocos2dx3.2新手实战教程-----飞机大战之路

关于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,也就是不断运动,当第一张图片滚动出屏幕时,那一瞬间将他重设坐标,放在下一张图片之上,同理第二张图片也是,就是不断循环利用吧!

下面是效果图(动态效果看不出来)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值