注册 登录
主题 : 求助   萌新求助
级别: 新手上路
UID: 624347
精华: 0
发帖: 2
可可豆: 11 CB
威望: 11 点
在线时间: 2(时)
注册时间: 2017-09-23
最后登录: 2018-05-18
0 楼:  发表于: 2018-05-17 09:14    发自: Web Page
来源于 技术疑问 分类

求助   萌新求助   

我是新手 想写了一个小游戏 我用虚拟摇杆控制人物精灵移动 但是无法正常播放人物精灵的动画  ,同样的代码如果 直接moveto 精灵动画就能正常播放,求助怎么能在虚拟摇杆控制精灵时间精灵正常移动。
精灵动画代码:
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("heroplayer.plist");
        // ②使用精灵帧缓存中的精灵创建一个动画,并设置属性
        auto animation = Animation::create();
        // 循环从精灵帧缓存中获取与图片名称相对应的精灵帧组成动画
        for(int i = 1;i<=5;i++){
            std::string szName = StringUtils::format("0%d.png", i);
            // 将单张图片添加为精灵帧(即动画帧)
            animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(szName));
        }
        // 设置动画播放的属性,3秒/15帧
        animation->setDelayPerUnit(1.0f/10.0f);
        // 让精灵对象在动画执行完后恢复到最初状态
        animation->setRestoreOriginalFrame(true);
    
        // ③用动画帧缓冲AnimationCache缓存所有动画和动画帧
        AnimationCache::getInstance()->addAnimation(animation, "player");
        auto player = AnimationCache::getInstance()->getAnimation("player");
        auto animate = Animate::create(player);
        
        auto repeatanimate = RepeatForever::create(animate);
        // 定义一个移动动作,让精灵对象从屏幕右边移动到屏幕左边
        Vec2 pos=bg->getPosition();
        auto moveTo = MoveTo::create(1.f, Vec2(pos.x+1, pos.y+1));
        //auto moveTo = MoveBy::create(15.0f, Vec2(2,2));
        // ⑧僵尸精灵执行重复动作(包含动画动作)和移动动作,执行效果是僵尸从屏幕的右边走到屏幕的左边
        bg->runAction(repeatanimate);
        bg->runAction(moveTo);
        if(!state) bg->stopAllActions();
监听:
// 事件监听部分
    listener = EventListenerTouchOneByOne::create();
    // 吞掉这个触摸
    listener->setSwallowTouches(true);

    listener->onTouchBegan = CC_CALLBACK_2(JoyRocker::TouchBegan,this);
    listener->onTouchMoved = CC_CALLBACK_2(JoyRocker::TouchMoved,this);
    listener->onTouchEnded = CC_CALLBACK_2(JoyRocker::TouchEnded,this);

    // 注册事件监听机制
    eventDispatcher = Director::getInstance()->getEventDispatcher();


描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部