大鱼吃小鱼游戏-fruit.js


 // 定义果实对象类 
var fruitObj = function()
{
    this.alive = [];            //果实生命状态的布尔bool
    this.orange = new Image();  //橙色果实
    this.blue = new Image();    //蓝色果实
    this.x = [];                //果实x坐标
    this.y = [];                //果实y坐标
    this.aneNO = [];
    this.fruitLargen = [];      //果实生长大小变化量
    this.spd = [];              //果实生长速度、上浮速度的随机处理hi
    this.fruitType = [];        //定义果实类型,用于区分橙色果实和蓝色果实。
}
// 预设果实在画布中的数量为30个
fruitObj.prototype.num = 30;

 // 果实初始化 
fruitObj.prototype.init = function()
{
    for (var i = 0; i <this.num; i++)
    {
        this.alive[i] =false;
        this.x[i] = 0;
        this.y[i] = 0;
        this.spd[i] = Math.random() * 0.017 +0.003; //[0.03,0.2)
        //this.born(i);
        this.aneNO[i] = 0;

        this.fruitType[i] = "";

    }
    this.orange.src = "./src/fruit.png";
    this.blue.src = "./src/blue.png";
}
// 画出果实,静态、动态的果实
fruitObj.prototype.draw = function()
{
    for(var i =0; i < this.num; i++)
    {
        //draw
        //find an ane, grow, fly up
        if(this.alive[i] = true)
        {
            if(this.fruitType[i] == "blue")
            {
                var pic = this.blue;
            }
            else
            {
                var pic = this.orange;
            }

            if(this.fruitLargen[i] < 15) //果实的半径
            {
                var NO = this.aneNO[i];
                this.x[i] = ane.headx[NO];
                this.y[i] = ane.heady[NO];
                this.fruitLargen[i] += this.spd[i] *5  ;    //果实生长的速度
            }
            else
            {
                this.y[i] -= this.spd[i] *7 * deltaTime;    //果实漂浮的速度
            }
            /*画出果实生长、漂浮过程*/
            ctx2.drawImage(pic, this.x[i] - this.fruitLargen[i] * 0.5, this.y[i] - this.fruitLargen[i] * 0.5, this.fruitLargen[i], this.fruitLargen[i]);
            if(this.y[i] < 10){
                this.alive[i] = false;
            }

        }

        //console.log('deltaTime');
    }
}
// 果实出生函数,果实随机生长在一个海葵上
fruitObj.prototype.born = function(i)
{
    //var aneId = Math.floor(Math.random() *ane.num);//随机获取一个海葵,让果实在这个海葵上出生
    this.aneNO[i] = Math.floor(Math.random() * ane.num);
    //this.x[i] = ane.headx[aneId];
    //this.y[i] = ane.heady[aneId];
    this.fruitLargen[i] = 0 ;
    this.alive[i] = true;
    var ran = Math.random() ;
    //console.log(aneId);
    //console.log(ran);
    if(ran < 0.3)
    {
        this.fruitType[i] = "blue";
    }
    else
    {
        this.fruitType[i] = "orange";
    }

    //console.log("ran");
}
fruitObj.prototype.dead =function(i)
{
    this.alive[i] = false;
}

// 果实监视功能,监视屏幕上有多少个活着的果实,如果果实少于15个,发出一个果实。
function fruitMonitor()
{
    var number = 0;
    for(var i = 0; i < fruit.num; i++)
    {
        if(fruit.alive[i]) number++;

        if (number < 15)
        {
            sendFruit();
            //return;
        }


        //sendFruit();

    }

}
// 发出果实前进行判断,
function sendFruit ()
{
    for(var i = 0; i < fruit.num; i++)
    {
        if(!fruit.alive[i])
        {
            fruit.born(i);
            return;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值