大鱼吃小鱼游戏-main.js

var can1;       //定义一个canvas
var can2;       //定义另一个canvas

var ctx1;       //定义一个画布场景,用于画fish UI dust circle...
var ctx2;       //定义一个画布场景,用于画背景图、海葵、果实...

var canWidth;   //canvas的宽
var canHeight;  //canvas的高

var ane;        //海葵变量

var lastTime;   //定义结束时间    
var deltaTime;  //定义时间差

var bgPic = new Image();    //定义背景图片

var mom;

var baby;

var mousex;
var mousey;

var babyTail = [];

var babyEye = [];

var babyBody = [];

var momTail =[];
var momEye = [];

var data;

var momBodyOra = [];
var momBodyBlue = [];

var wave;

document.body.onload = game;//启动body,先运行game函数

function game()
{
    init();
    gameloop();
    lastTime = Date.now();
    deltaTime = 0;
}
// 游戏初始化,初始化canvas、背景图、海葵、果实
function init()
{
    // 获得cavas context
    can1 =document.getElementById("canvas1"); //fish UI dust circle canvas1在前
    ctx1 =can1.getContext('2d'); //获得canvas1场景

    can1.addEventListener('mousemove', onMouseMove , false);

    can2 =document.getElementById("canvas2"); //background ane  canvas2在后
    ctx2 =can2.getContext('2d');

    bgPic.src ="./src/background.jpg";

    canWidth = can1.width;
    canHeight = can1.height;

    ane = new aneObj();
    ane.init();

    fruit = new fruitObj();
    fruit.init();

    mom = new momObj();
    mom.init();

    baby = new babyObj();
    baby.init();

    mousex = canWidth * 0.5;
    mousey = canHeight * 0.5;

    for (var i = 0; i < 8; i++)
    {
        babyTail[i] = new Image();
        babyTail[i].src = "./src/babyTail" + i + ".png";
    }

    for (var i = 0; i <2 ; i++)
    {
        babyEye[i] = new Image();
        babyEye[i].src = "./src/babyEye" + i +".png";
    }

    for (var i =0; i < 20 ; i++)
    {
        babyBody[i] = new Image();
        babyBody[i].src ="./src/babyFade" + i +".png";
    }

    for (var i = 0; i < 8; i++)
    {
        momTail[i] = new Image();
        momTail[i].src = "./src/bigTail" + i +".png";
    }

    for(var i = 0; i < 2; i++)
    {
        momEye[i] = new Image();
        momEye[i].src = "./src/bigEye" + i +".png";
    }

    data = new dataObj();

    for(i = 0; i < 8; i++)
    {
        momBodyOra[i] = new Image();
        momBodyBlue[i] = new Image();
        momBodyOra[i].src = "./src/bigSwim" + i + ".png";
        momBodyBlue[i].src = "./src/bigSwimBlue" + i + ".png";
    }

    wave = new waveObj();
    wave.init();

}
//游戏循环,产生时间差值,画背景、画海葵、画果实
function gameloop()
{
    requestAnimFrame(gameloop);//根据机器性能动态计算出帧刷新时间,frame per second  相对于setIntervar setTimeout要好
    //requestAnimFrame
    //console.log("loop");
    var nowTime = 0 ;
    nowTime = Date.now();
    deltaTime = nowTime - lastTime + 1;
    lastTime = nowTime;
    //console.log(deltaTime);
    //console.log(nowTime);


    if(deltaTime > 40 ) deltaTime = 40;

    drawBackground();

    ane.draw();
    fruitMonitor();
    fruit.draw();
    ctx1.clearRect(0, 0, canWidth, canHeight);
    mom.draw();
    baby.draw();

    momFruitsCollision();
    momBodyCollision();
    data.draw();

    wave.draw();
}

function onMouseMove(e)
{
    if(!data.gameOver)
    {
        if(e.offSetX || e.layerX)
        {
            mousex = e.offSetX == undefined ? e.layerX : e.offSetX;
            mousey = e.offSetY == undefined ? e.layerY : e.offSetY;
            //console.log(mousex);
        }
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值