class.js added
This commit is contained in:
parent
1ab4f93f86
commit
33f9086c43
1 changed files with 130 additions and 0 deletions
130
class.js
Normal file
130
class.js
Normal file
|
@ -0,0 +1,130 @@
|
|||
const mapWidth = 210.;
|
||||
const mapHeith = 100.;
|
||||
const playerSize = 10.;
|
||||
|
||||
class Player
|
||||
{
|
||||
constructor (x,y,id)
|
||||
{
|
||||
this.x=x;
|
||||
this.y=y;
|
||||
this.id=id;
|
||||
this.dir=0;//0=standStill
|
||||
//1=North
|
||||
//2=North-East
|
||||
//3=East
|
||||
//4=South-East
|
||||
//5=South
|
||||
//6=South-West
|
||||
//7=West
|
||||
//8=North-West
|
||||
this.ammo=10;
|
||||
this.health=10;
|
||||
}
|
||||
|
||||
takeDamage(amount)
|
||||
{
|
||||
this.health-=amount;
|
||||
if(this.health<=0)
|
||||
{
|
||||
//send death message to server
|
||||
//this.reset()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function dist(A,B)
|
||||
{
|
||||
return sqrt((A.x-B.x)**2+(A.y-B.y)**2);
|
||||
}
|
||||
|
||||
class Bullet
|
||||
{
|
||||
constructor (x,y,dx,dy)
|
||||
{
|
||||
this.x=x;
|
||||
this.y=y;
|
||||
this.dx=dx;
|
||||
this.dy=dy;
|
||||
this.deleted=false;
|
||||
}
|
||||
|
||||
update()
|
||||
{
|
||||
if(!this.deleted)
|
||||
{
|
||||
this.x+=this.dx;
|
||||
this.y+=this.dy;
|
||||
}
|
||||
}
|
||||
|
||||
checkCollisions(player,squares,circles)//only the client's player /!\
|
||||
{
|
||||
if(!this.deleted)
|
||||
{
|
||||
if(dist(player,this)<playerSize/2)
|
||||
{
|
||||
player.takeDamage(1);
|
||||
this.deleted=true;
|
||||
return;
|
||||
}
|
||||
|
||||
/*squares.forEach(square => {
|
||||
if (collideSquare(this,square))
|
||||
{
|
||||
this.deleted=true;
|
||||
break;
|
||||
}
|
||||
});*/
|
||||
for(let square in squares)
|
||||
{
|
||||
if(square.collide(this))
|
||||
{
|
||||
this.deleted=true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for(let circle in circles)
|
||||
{
|
||||
if(circle.collide(this))
|
||||
{
|
||||
this.deleted=true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Square
|
||||
{
|
||||
constructor(x,y,width,heigth)
|
||||
{
|
||||
this.x=x;
|
||||
this.y=y;
|
||||
this.w=width;
|
||||
this.h=heigth;
|
||||
}
|
||||
|
||||
collide(point)
|
||||
{
|
||||
return (this.x<=point.x && point.x<=this.x+this.w && this.y<=point.y && point.y<=this.y+this.h);
|
||||
}
|
||||
}
|
||||
|
||||
class Circle
|
||||
{
|
||||
constructor(x,y,radius)
|
||||
{
|
||||
this.x=x;
|
||||
this.y=y;
|
||||
this.r=radius;
|
||||
}
|
||||
|
||||
collide(point)
|
||||
{
|
||||
return ((point.x-this.x)**2+(point.y-this.y)**2<=r**2);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue