CocosCreator c++ 实践与利用

CocosCreator c++ 实践与利用

用cocosCreator 制作一款简易的游戏。 史莱姆跳跃,碰到星星,然后星星+1.

上一章显示的是如果使用cocosCreator的基本应用。这一章是CocosCreator的稍微复杂应用。

参考cocosCreator 教程 js里的游戏 用C++写一款 游戏:
在这里插入图片描述

1.看似简单,仔细做就不简单了。 首先史莱姆是没有脚的,所以只能一跳一跳的移动。所以在行走的时候要保持跳跃。 当然这个是没有物理引擎的。 需要让史莱姆 的跳跃频率不同。
MoveBy() 通过设置值来确定移动的方向,与距离。不是MoveTo,这两个别的博客已经写满了。

    auto myMoveBy = MoveBy::create(0.3f, Vec2(10, 190));
    myMoveBy->startWithTarget(player);
    //逆向上一个动作。
    MoveBy *myMoveBy1=myMoveBy->reverse();
    //由快向慢
    ActionEase *actionEase = EaseOut::create(myMoveBy,2);
    //由慢向快。
    ActionEase *actionEase1 = EaseIn::create(myMoveBy1,2);
    //一组动作。
    ActionInterval *ac=Sequence::create(actionEase,actionEase1, NULL);

这样就可以模仿,类似有重力的动作了。 而大幅度跳跃动作。只要调整MoveBy参数就可以了。
当update()更新的时候,跳跃不能像 player 移动遍历一样,持续动作。否则叠加会飞出屏幕。因为跳跃在不断的叠加中。 你需要给跳跃写一个延迟。 ** 完成动作后再继续。

//aaa 设置在外层。
    if(aaa>=35){
   
        gameFMS->changeJump1();
        aaa=0;
    }
    aaa++;

本来想找找键盘控制优先级问题。但是没有找到!!!。 不知道有没有意识到这个问题!我查了很多博客和书,对这个问题意识到的不多!!!!!
就是当按下A键的时候。如果快速按下D键和放下D键。 那么弹回A键的动作就会和按下D键发生冲突导致player停止运动。 并不能快速长按键盘切换。 所以只能给每一个键,做一个boolean值。
当按下D键的时候为true,那么A键的弹回就会没用。 反之亦然。

void ControlLayer::onKeyPressed(EventKeyboard::KeyCode keyCode, cocos2d::Event *event){
   
    CCLOG("aaaaaa&&&&&&&&&&& %d",(int)keyCode);
    
    switch((int)keyCode){
   
//D键
        case 127:
            this->schedule(schedule_selector(ControlLayer::onMoveKeyboard));
            move=2;
            aboolean=true;
            break;
//A键
        case 124:
            this->schedule(schedule_selector(ControlLayer::onMoveKeyboard));
            move=1;
            aboolean1=true;
            break;
        case 59:
            gameFMS->changeJump();
            break;
        case 6:
            toMenu1Layer();
            break;
    };
}

void ControlLayer::onKeyReleased(EventKeyboard::KeyCode keyCode
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昏暗的夜晚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值