<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="utf-8">
<title
>兵抓贼游戏开发
</title
>
</head
>
<body
>
<form
>
<input type
="button" value
="换背景" onclick
="setbg()" />
</form
>
<script src
="js/game.js"></script
>
</body
>
</html
>
var canvas
=document
.createElement("canvas");
var ctx
=canvas
.getContext("2d");
canvas
.width
=512;
canvas
.height
=480;
document
.body
.appendChild(canvas
);
var bgReady
=false;
var bgImage
=new Image();
bgImage
.onload
=function()
{
bgReady
=true;
};
bgImage
.src
="images/background.png";
var bgReady2
=false;
var bgImage2
=new Image();
bgImage2
.onload
=function()
{
bgReady2
=true;
};
bgImage2
.src
="images/background2.jpg";
var heroReady
=false;
var heroImage
=new Image();
heroImage
.onload
=function()
{
heroReady
=true;
};
heroImage
.src
="images/hero.png";
var monsterReady
=false;
var monsterImage
=new Image();
monsterImage
.onload
=function()
{
monsterReady
=true;
};
monsterImage
.src
="images/monster.png";
var hero
={speed
:256};
var monster
={};
var monstersCaught
=0;
var keyDown
={};
addEventListener("keydown",function(e
){keyDown
[e
.keyCode
]=true;},false);
addEventListener("keyup", function(e
){delete keyDown
[e
.keyCode
];},false);
var reset
=function()
{
hero
.x
=canvas
.width
/2;
hero
.y
=canvas
.height
/2;
monster
.x
=32+(Math
.random()*(canvas
.width
-64));
monster
.y
=32+(Math
.random()*(canvas
.height
-64));
};
var update
=function(modifier
)
{
if(38 in keyDown
)
{
if(hero
.y
<=32)
{hero
.y
=hero
.y
;}
else
{
hero
.y
-=hero
.speed
*modifier
;
}
}
if(40 in keyDown
)
{
if(hero
.y
>=canvas
.height
-64)
{hero
.y
=hero
.y
;}
else
{
hero
.y
+=hero
.speed
*modifier
;
}
}
if(37 in keyDown
)
{
if(hero
.x
<=32)
{hero
.x
=hero
.x
;}
else
{
hero
.x
-=hero
.speed
*modifier
;
}
}
if(39 in keyDown
)
{
if(hero
.x
>=canvas
.width
-64)
{hero
.x
=hero
.x
;}
else
{
hero
.x
+=hero
.speed
*modifier
;
}
}
if(hero
.x
<=(monster
.x
+40)&&
monster
.x
<=(hero
.x
+40)&&
hero
.y
<=(monster
.y
+40)&&
monster
.y
<=(hero
.y
+40))
{
++monstersCaught
;
reset();
}
};
var render
=function()
{
if(bgReady
)
{
ctx
.drawImage(bgImage
,0,0);
}
else
{
ctx
.drawImage(bgImage2
,0,0);
}
if(heroReady
)
{
ctx
.drawImage(heroImage
,hero
.x
,hero
.y
);
}
if(monsterReady
)
{
ctx
.drawImage(monsterImage
,monster
.x
,monster
.y
);
}
ctx
.fillStyle
="rgb(250,250,250)";
ctx
.font
="24px Helvetica";
ctx
.textAlign
="left";
ctx
.textBaseline
="top";
ctx
.fillText("成功抓获:"+monstersCaught
,32,32);
};
var main
=function()
{
var now
=Date
.now();
var delta
=now
-then
;
update(delta
/1000);
render();
then
=now
;
requestAnimationFrame(main
);
};
var w
= window
;
requestAnimationFrame
= w
.requestAnimationFrame
|| w
.webkitRequestAnimationFrame
|| w
.msRequestAnimationFrame
|| w
.mozRequestAnimationFrame
;
var then
=Date
.now();
reset();
main();
function
setbg()
{
bgReady
=false;
}
转载请注明原文地址: https://lol.8miu.com/read-6908.html