Simple HTML Game: Avoid Obstacles and Reach the Goal
<html>
<head>
<style>
#game-container {
width: 500px;
height: 500px;
background-color: #000;
position: relative;
}
<pre><code> #player {
width: 25px;
height: 25px;
background-color: #0f0;
position: absolute;
left: 250px;
top: 250px;
}
#obstacle1 {
width: 25px;
height: 25px;
background-color: #f00;
position: absolute;
left: 50px;
top: 50px;
}
#obstacle2 {
width: 25px;
height: 25px;
background-color: #f00;
position: absolute;
left: 450px;
top: 450px;
}
#goal {
width: 25px;
height: 25px;
background-color: #00f;
position: absolute;
left: 250px;
top: 450px;
}
</style>
<script>
function movePlayer(e){
var player = document.getElementById('player');
switch(e.keyCode){
case 37:
if(player.offsetLeft > 0){
player.style.left = (player.offsetLeft - 10) + 'px';
}
break;
case 38:
if(player.offsetTop > 0){
player.style.top = (player.offsetTop - 10) + 'px';
}
break;
case 39:
if(player.offsetLeft < 475){
player.style.left = (player.offsetLeft + 10) + 'px';
}
break;
case 40:
if(player.offsetTop < 475){
player.style.top = (player.offsetTop + 10) + 'px';
}
break;
}
checkCollisions();
}
function checkCollisions(){
var player = document.getElementById('player');
var obstacle1 = document.getElementById('obstacle1');
var obstacle2 = document.getElementById('obstacle2');
var goal = document.getElementById('goal');
if(player.offsetLeft < obstacle1.offsetLeft + obstacle1.offsetWidth &&
player.offsetLeft + player.offsetWidth > obstacle1.offsetLeft &&
player.offsetTop < obstacle1.offsetTop + obstacle1.offsetHeight &&
player.offsetHeight + player.offsetTop > obstacle1.offsetTop){
alert('You lose!');
}
if(player.offsetLeft < obstacle2.offsetLeft + obstacle2.offsetWidth &&
player.offsetLeft + player.offsetWidth > obstacle2.offsetLeft &&
player.offsetTop < obstacle2.offsetTop + obstacle2.offsetHeight &&
player.offsetHeight + player.offsetTop > obstacle2.offsetTop){
alert('You lose!');
}
if(player.offsetLeft < goal.offsetLeft + goal.offsetWidth &&
player.offsetLeft + player.offsetWidth > goal.offsetLeft &&
player.offsetTop < goal.offsetTop + goal.offsetHeight &&
player.offsetHeight + player.offsetTop > goal.offsetTop){
alert('You win!');
}
}
</script>
</code></pre>
</head>
<body>
<div id='game-container'>
<div id='player'></div>
<div id='obstacle1'></div>
<div id='obstacle2'></div>
<div id='goal'></div>
</div>
<script>
document.onkeydown = movePlayer;
</script>
</body>
</html>
原文地址: https://www.cveoy.top/t/topic/lmty 著作权归作者所有。请勿转载和采集!