Leo60
2016-10-20 12:08
为什么海葵没有了呢
var aneObj=function()
{
//start point,control point,end point(sin)
this.rootx=[];
this.headx=[];
this.heady=[];
this.amp=[];
this.alpha=0;
}
aneObj.prototype.num=50;
aneObj.prototype.init=function()
{
for(var i=0;i<this.num;i++)
{
this.rootx[i]=i*16+Math.random()*20;//[0,1)
this.headx[i]=this.rootx[i];
//console.log(this.headx[i]);
this.heady[i]=canHeight-250+Math.random()*50;
this.amp[i]=Math.random()*50+50;
}
//console.log("a");
}
aneObj.prototype.draw=function()
{
this.alpha+=deltaTime*0.0008;
var l=Math.sin(this.alpha);
ctx2.save();
ctx2.globalAlpha=0.6;
ctx2.lineWidth=20;
ctx2.lineCap="round";
ctx2.strokeStyle="#3b154e";
for(var i=0;i<this.num;i++)
{
//beginPath,moveTo,lineTo,stoke,stokeStyle,lineWidth,lineCap,globalAlpaha
ctx2.beginPath();
ctx2.moveTo(this.rootx[i],canHeight);
this.headx[i]=this.rootx[i]+l*this.amp[i];
//console.log(l*this.amp[i]);
ctx2.quadraticCurveTo(this.rootx[i],canHeight-100,this.headx[i],this.heady[i]);
ctx2.stroke();
}
ctx2.restore();
}
var fruitObj=function()
{
this.alive=[];//bool
this.x=[];
this.y=[];
this.aneNO=[];
this.l=[];
this.spd=[];
this.fruitType=[];
this.orange=new Image();
this.blue=new Image();
}
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.aneNO[i]=0;
this.spd[i]=Math.random()*0.017+0.003;//[0.003,0.02)
this.fruitType[i]="";
}
this.orange.src="../tiny heart/src/fruit.png";
this.blue.src="../tiny heart/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])
{
if(this.fruitType[i]=="blue")
{
var pic=this.blue;
}
else
{
var pic=this.orange;
}
if(this.l[i]<=14)
{
var NO=this.aneNO[i];
this.x[i]=ane.headx[NO];
this.y[i]=ane.heady[NO];
this.l[i]+=this.spd[i]*deltaTime;
}
else
{
this.y[i]-=this.spd[i]*7*deltaTime;
}
ctx2.drawImage(pic,this.x[i]-this.l[i]*0.5,this.y[i]-this.l[i]*0.5,this.l[i],this.l[i]);
if(this.y[i]<10)
{
this.alive[i]=false;
}
}
}
}
fruitObj.prototype.born=function(i)
{
this.aneNO[i]=Math.floor(Math.random()*ane.num);
this.l[i]=0;
this.alive[i]=true;
var ran=Math.random();
if(ran<0.3)
{
this.fruitType[i]="blue";//orange,blue;
}
else
{
this.fruitType[i]="orange";
}
}
fruitObj.prototype.dead=function(i)
{
this.alive[i]=false;
}
function fruitMonitor()
{
var num=0;
for(var i=0;i<fruit.num;i++){
if(fruit.alive[i])num++;
}
if(num<15)
{
//send fruit
sendFruit();
return;
}
}
function sendFruit()
{
for(var i=0;i<fruit.num;i++)
{
if(!fruit.alive[i])
{
fruit.born(i);
return;
}
}
}
在main.js中当deltaTime预先给给定一个值得时候就可以了
eg:var deltaTime=100;而不是只是定义一下而不给值
HTML5小游戏---爱心鱼(下)
46272 学习 · 189 问题
相似问题