zoukankan      html  css  js  c++  java
  • COCOS 实现Player玩家控制的左右控制,实现马里奥一样的移动

    目标:就是左右按键控制移动一格

    cocos官方给的例子是 左右两边会有加速度,左右按键按下后,会给个加速度accel,

    然后通过每一帧的刷新去检测加速度方向,之后计算速度 xSpeed

    我们要优化的是,每次只移动一段距离,让玩家有参与感和控制感,移动的时候还有跳跃动作

    所以涉及的东西有 缓动动画,MoveTo函数,组件节点的坐标理解

    坐按键点击事件

     //向左一步
        leftMoveOneStep(){
            this.enabled = true;
            if(!canTouchAble){
                return;
            }
            console.log(this.game.groundY );
    
            //目标地址
            var desPos = cc.v2(this.node.x-50,this.game.groundY);
            // this.node.setPosition(desPos);
    
            //为左右移动也添加一个动画
            var mto = cc.moveTo(1,desPos);
            this.node.runAction(mto)
            
            var jumpAction = this.runJumpAction();
            cc.tween(this.node).then(jumpAction).start()
        },

    canTouchAble是防止在动画中用户一直点击,影响计算,只有动画放映完毕之后才可以操作

    这边的groundY就是 整个玩家的地面

    只要调用moveTo动作,加上jumpAction就可以实现走一步跳一下

    别忘了将其update函数的xSpeed注释,免得你的Player不受控制一直往前

     但是这样有点问题,当步幅大的时候,可以发现跳跃和移动不是有机的融合在一起的,是先跳跃然后再移动,或者先移动,再跳跃

    需要达到抛物线函数那样的下落方式,这样才能使游戏更加平滑(后面需要优化修改)

  • 相关阅读:
    git —— 远程仓库(操作)
    git —— 远程仓库(创建)
    git —— 异常1,index.lock
    git —— 基本命令以及操作(No.1)
    爬虫练习二(拉勾网投递简历)
    知识点拾忆(一)
    爬虫练习一(爬取笑话集)
    metaclass元类解析
    正则表达式re.S的用法
    requests模块
  • 原文地址:https://www.cnblogs.com/fengfenghuifei/p/15507717.html
Copyright © 2011-2022 走看看