小球弹跳

2 篇文章 0 订阅
 //启动帧计时器
  this.scheduleUpdate();
  //重置     
 reset:function()
    {
        if(this._direction === 0)
        {
            this._direction = 1;
            this.speed = 28;
        }
    },
update:function(dt)
    {
        if(this._direction===1)
        {
             //下降得到一个重力的加速
             this.speed+=this.gravity-this.drag;
            if(this.ball.y<=cc.winSize.height/6)
            {
                 //初始一下位置
                 this.ball.y=cc.winSize.height/6;
                //
                this.speed-=1;
                //退出判断运行下次判断
                this._direction=-1;
            }
           this.ball.y-=this.speed;
        }
        else if(this._direction===-1)
        {
            this.ball.y+=this.speed;
            this.speed-=(this.gravity+this.drag);
            if(this.speed<=0)
            {
                if(this.ball.y<=cc.winSize.height/6)
                {
                    this.ball.y=cc.winSize.height/6;
                    this._direction=0;
                }
                else
                {
                    this._direction=1;
                }
            }
        }
    }

其中的逻辑是有一个重力 gravity:1.2, 阻力drag:0.1,
配合按钮的重置,开始的时候会现在this._direction===1的时候符合下面等一-1的条件,然后再等speed===0的时候在其中判断是否是在原点处,给出两个选项this.direction===1的条件和满足按钮的条件,因为上面有判断和上升所以在小球运算结束之前按钮是无效的
每次下落的时候都会有个新的speed的值,在this.speed的时候值是会不断减小的,从而高度也会减小知道等于0
this.speed+=this.gravity-this.drag;
this.ball.y-=this.speed;
当写在”if”里面的时候下降的speed在经过程序后会变成负数的,出现一直匀速上升的情况

==数值比较
====类型数值都比较
//添加渐进色背景层
//var _gradient = new cc.LayerGradient(cc.color(0,255,255,167),cc.color(0,13,255,160),cc.p(1,1));
// this.addChild(_gradient);

//顺序执行
runAction
//缩放
cc.scaleTo(0.03,0.051,0.049)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值