昨天在写代码时遇到的两个问题
问题一:人物在进行滑动时离开地面
解决:将所有Animation.play的操作换成一个自定义的函数,在此函数中判断人物的动画名称,若为滑动,则调用node.setPosition(x,y)设置节点移动的位置;若为跑,再次调用node.setPosition(x,y)回到原来的位置
问题二:当鼠标移出滑动按钮时人物依然在滑动,没有切换到跑的状态
解决:Node.EventType 类型中有一个TOUCH_CANCEL String 当手指在目标节点区域外离开屏幕时,在此回调函数中操作跑的动作即可
问题三:在起跳动作时仍然可以切换滑动
解决利用Animation.currentClip获取到当前播放的动画,若为跳跃则直接return出去
今天遇到的问题:
问题一:当点击跳跃按钮时,人物还未落下时多次点击按钮会使人物出现异常
解决:这个问题主要是由于不能在跳跃的时候再切换跳跃的动作,否则它会重复执行moveTo的操作,因此要增加一个能否切换动作的判断
问题二:背景图片的移动
1.1要移动背景图片造成人物移动的效果,应将每一部分图片放在一个父节点中,这样操作父节点就可以操作父节点下的所有图片,在代码中也容易获取
1.2要获取到父节点下的每一个子节点(每一张图片),可在代码的属性中以数组的方式定义,此时拖拽要操作的图片到属性检查器中即可
1.3两张图片相连处在移动时有缝隙,选择图片节点,在属性选择器中有如图所示属性
查API文档
修改属性后,在代码中图片移动的位移要缩进3-4个像素,即可消除缝隙
问题三:如何设置全局变量是的多个脚本都可以用
解决:在编辑器中新建一个js脚本,在此脚本中定义变量,然后在编辑器中操作如下图所示
勾选这四个选项,并点击应用,此时可在任意脚本中用定义的变量
问题四:现有多张背景图,要控制多张背景图以不同速度移动,前景图速度大于后景图速度,可将不同的速度写为全局变量,虽然速度不同,但他们实现拼接的回调函数相同,回调函数中有一参数data,可用data传递不同的速度。