Я новичок в JS и пытаюсь создать в нем простую игру.Я ищу способ остановить окно проигрывателя (20px x 20px), заставляющее экран прокручиваться, я ищу фиксированный экран, где игрок не может выходить за границы экрана.Пожалуйста, смотрите предыдущие попытки ниже.
HTML:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="Style.css">
</head>
<body>
<div id="player"></div>
<script type="text/javascript" src="Script.js"></script>
</body>
</html>
CSS:
body{
margin: 0;
padding: 0;
background-color: red;
}
#player{
border-radius: 30%;
padding: 0px;
margin: 0px;
background-color: white;
width: 20px;
height: 20px;
position: absolute;
}
JavaScript:
var player = document.getElementById("player")
var pros = {'top': 0, 'left': 0, 'speed': 10}
var ws = {'h': screen.height, 'w': screen.width}
document.addEventListener("keydown", function(event){
var keyP = event.key;
if(keyP === "ArrowDown"){
pros.top = pros.top + pros.speed;
}else if(keyP === "ArrowUp"){
pros.top = pros.top - pros.speed;
}else if(keyP === "ArrowLeft"){
pros.left = pros.left - pros.speed;
}else if(keyP === "ArrowRight"){
pros.left = pros.left + pros.speed;
}
if(pros.top < 0){
pros.top = 0;
}else if(pros.top > ws.h){
pros.top = ws.h;
}else if(pros.left < 0){
pros.left = 0;
}else if(pros.left > ws.w){
pros.left = ws.w;
}
player.style.top = `${pros.top}px`;
player.style.left = `${pros.left}px`;
});
Сейчас, Я хочу, чтобы элемент никогда не выходил из заданной области экрана. Как вы можете видеть из кода, который я пытался использовать screen.height / screen.width , чтобы управлять им, но все же онпокидает область, и полосы прокрутки активируются даже в полноэкранном режиме.Это выглядит слишком грязно для игры.
Вот изображение того, как он покидает область:
В полноэкранном режиме:
Без полноэкранного режима: