动作

来源:互联网 发布:js按键事件 编辑:程序博客网 时间:2024/04/27 13:52

Action对象是随着时间改变Node的属性。任何一个以Node为基类的对象都有可执行的动作对象。

例如,你可以在一个时间段内将Sprite精灵从一个位置移动到另一个位置。

有moveTo和moveBy两种方法 一个是前者是从当前位置到达指定位置,后者是从当前位置朝一个方向移动指定距离。(区别可参考线段和射线)

var spe = new cc.Sprite("res/zidan.png");spe.setPosition(this.mySprite.x,this.mySprite.y+80);this.addChild(spe);//创建一个精灵 把一张名为zidan.png的图片显示在一个坐标点,而mySprite则是一个全局变量承接飞机的当前坐标,然后将这个图片的发射位置定位为飞机的当前坐标前80像素 可以做出一个飞机发射子弹的效果var moveBy = cc.moveBy(2,cc.p(8.600));spe.runAction(moveBy)
this.schedule(this._zidanf,2,cc.repeatForever,0.0001);//创建一个定时器,每隔两秒调用一次this._zidanf这个方法体 而这个方法体就是上方的方法,可以做到一个结合每隔两秒发射一个由当前飞机坐标发射向前位移的子弹
旋转
var rotateBy = cc.rotateBy(2,40);mySprite.runAction(rotateBy)//将精灵MySpace在两秒内旋转40度 rotateBy可换成rotateTo  scaleBy和scaleTo则是缩放 fadeIn fadeOut则是淡入淡出
Actioncc.sequence  创建动作序列cc.delayTime(2)  延时多少秒cc.rotateTo  rotateBy 以锚点为中心旋转to按最近的来   by是完整rotate指向鼠标的公式元件默认的scale为1,代表没有进行过缩放cc.callFunc(this.fadeOutTest,this,9987)fadeOutTest:function(target, num)   第一个参数是运行动作的对象   第二个才是数据
对于动作在飞机里的运用
一:实现敌我双方的飞机和子弹的功能:坐标位置明显,位移方式可以多元化定向,位移一个屏幕加一个值的直线距离或者一个屏幕随机值到一个屏幕下方的一个随机值都可以。
二:实现道具功能:拾取道具后使用淡入淡出表示无敌功能。
三:游戏boss设定:一贯的小游戏特色:boss位移攻击规律,血量厚,弱点明显。
四:游戏背景移动:背景的话一张照片分两份然后不断替换获得前进的感觉相对飞机的移动速度达到一个位移视觉。
五:碰撞事件考虑飞机与子弹的移除:游戏子弹和敌对飞机有一个碰撞检测方块与方块之间的,如果二者碰撞到了那么就把子弹和飞机从舞台一起移除。同样的还有敌对飞机与我方飞机的和我方飞机与地方子弹的碰撞检测,结果是游戏失败。
六::游戏的合理性:因为这类游戏的话如果不做系列关卡是很难有所谓的游戏体验的,然后能够提升一个游戏的元素有道具,背景,双方飞机类型,拾取道具施放技能,敌方BOSS的更换等。游戏的面向对象的话素材元素选择的风格很重要,因为现在手游的话偏重群体是青少年而且是男生多,那么元素的话应该偏重于一个金属风格或者是美军绿的风格,而不是哗众取宠的去偏向一个比较麻烦的未来战机,当然在我方飞机的选择的话可以选择一个很多游戏都会选择的人物机制也就是类似于皮肤。然后地图还有敌方飞机的话可以选择一些历史元素,例如丛林就可以考虑越战时期的美军,一战二战时期的德军战机这都是一个可以添加可玩性的游戏设置关卡不适合太多因为可供选择的元素题材不多所以关卡设置不会有很多可供选择,特别是现在的话人的耐性很少有会选择玩到一个十关飞机游戏所以我觉得五到七个关卡是一个好的选择,然后有一个很多飞机游戏添加的一个题材也就是背景故事,更多的游戏背景设定是完成一个个任务也就是分散式的任务完成然后积分开启新的任务关卡或者道具解锁,另一种就是传统的单线关卡。或者是游戏单个关卡然后不断得分的一个设定。前面两个的话没有什么好比较的,这个属于不同的叙事手法一样。最后的那个就类似于跑酷类游戏,就是不断积分和攀排行的一个设定而已。

0 0
原创粉丝点击