RPG游戏知识点

本文介绍了在Cocos Creator中制作RPG游戏时如何实现角色点击移动并播放逐帧动画。首先,通过在空节点上创建精灵组件来制作逐帧动画,完成后删除该节点。接着,通过监听屏幕点击事件,调用角色移动和播放动画的代码。重点在于移动过程中,需要将全局点击坐标转换为角色的局部坐标,以确保正确移动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用cocos Creator 制作的RPG游戏的时候会有很多与之前不同的地方,在游戏中需要点击人物移动并且在移动的过程中播放逐帧动画,首先是制作逐帧动画, 在制作动画的时候需要注意的就是先在一个空的节点上面添加一个sprite 组件,然后在这个节点上面制作动画,等动画制作完成之后删除这个空的节点就可以了,得到逐帧动画的文件之后,就可以通过代码实现一些我们想要实现的功能,比如点击屏幕就播放某一个动画,就是在一个节点上面添加点击的事件,当点击之后就运用代码执行动作代码如下:

 _buildPlayerPb:function(Player){
        var that = this
        this.bg.on(cc.Node.EventType.TOUCH_START,function(event){
           that._talkPersonOb = null;
            var localTouchPo = that.npcLayer.convertToNodeSpaceAR(event.getLocation())
            that._moveToPosition(localTouchPo,Player) 

        })
    },
    pub_runToNpc:function(npcOb,Players){
        this._talkPersonOb = npcOb
        this._moveToPosition(npcOb.position,Players)
    },
    _moveToPosition:function(localTouchPo,Player){
        var that = this
        var turnRight = localTouchPo.x < Player.x            
        that._playerPlayAction("playerRun",turnRight,Player)

        var move = cc.moveTo(cc.pDistance(localTouchPo,
        Player.getPosition())/that._playerRunSpeed, localTouchPo)
        Player.stopAllActions()    
        Player.runAction(cc.sequence(move, cc.callFunc(function(){
            that._playerPlayAction("playerStand",false,Player)
            if(that._talkPersonOb){
                cc.find('UIScript').getComponent('talkPanelControl').pub_showTalkInfo(that._talkPersonOb)
                that._talkPersonOb = null
            }
        })))     
    },
     _playerPlayAction:function (name, turnRight,Player) {
        var anim = Player.getChildByName("anim").getComponent(cc.Animation)
        Player.getChildByName("anim").scaleX = turnRight?-1:1;
        if(name == 'playerRun' && anim.currentClip && anim.currentClip.name == 'playerRun'){
            return
        }        
        anim.play(name)
    },

这里一共封装了两个方法,一个是人物移动的方法。一个是播放动画的方法。在点击的时候调用人物移动的方法,在人物移动的时候就调用播放动画的方法。重点就是在这个游戏中我们在控制人物移动的脚本里面开发了一个接口,给背景的节点拖了进来。所以我们每次点击的是背景上的点 ,但是背景上的坐标跟人物的坐标不是在同一个坐标系。所以在使用点击的坐标移动的时候,就必须要给点击的全局坐标转换成人物的局部坐标。才能使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值