#javascript
#javascript
Вопрос:
Я пытаюсь создать уменьшенную версию «утиной охоты», я хочу добавить табло, когда каждый раз, когда вы попадаете в утку, это 1, а когда вы пропускаете -1, но счет не может быть ниже 0 (например, не -1), когда вы попробовали 20 раз, игра останавливается ивы увидите свой счет, поэтому на экране будет отображаться время попадания и промаха. Как мне добавить это в свой код, пока у меня есть это:
var duck = document.getElementById('duck');
duck.style.position = 'relative';
var hit = 0;
var miss = 0
var count = 0;
var timing = setInterval(moveduck, 5000);
var button1 = document.getElementById("button1");
var button2 = document.getElementById("button2");
duck.addEventListener('click', moveduck);
function moveduck() {
var top = Math.floor(Math.random() * 750);
var left = Math.floor(Math.random() * 750);
var right = Math.floor(Math.random() * 750);
var bottom = Math.floor(Math.random() * 750);
var vertical = Math.floor(Math.random() * 750);
var horizontal = Math.floor(Math.random() * 750);
duck.style.top = top 'px';
duck.style.left = left 'px';
duck.style.right = right 'px';
duck.style.bottom = bottom 'px';
duck.style.vertical = vertical 'px';
duck.style.horizontal = horizontal 'px';
};
button1.onclick = succesfullhit;
function succesfullhit() {
hit ;
button1.innerHTML = hit;
}
button2.onclick = failedhit;
function failedhit() {
miss--;
button2.innerHTML = miss;
}
#duck { height:50px; }
<!DOCTYPE html>
<html lang="en">
<head>
<title>Duck hunt</title>
<link rel="stylesheet" type="text/css" href="Duckhunt.css">
</head>
<body>
<div class="container">
<input type="image" src="https://www.iconsdb.com/icons/preview/orange/duck-xxl.png" name="duck" id="duck" />
<button id="button1">Hit: </button>
<p></p>
<button id="button2">Miss: </button>
</div>
<script src="Duckhunt.js"></script>
</body>
</html>
Ответ №1:
Я думаю, вы хотите сделать что-то вроде этого: я изменил попадание и промах, и я только забил. я добавил в документ прослушиватель событий, если вы попали в duck score , если не забили — и я показываю результат. я добавил оператор if, если оценка === -1 игра окончена. если счет === 20 побед
Конечно, вам нужно немного поработать, чтобы сделать его идеальным для ваших нужд, это только для начала.
var duck = document.getElementById('duck');
duck.style.position = 'relative';
var score = 0
var timing = setInterval(moveduck, 5000);
var button1 = document.getElementById("button1");
var button2 = document.getElementById("button2");
function moveduck() {
var top = Math.floor(Math.random() * 750);
var left = Math.floor(Math.random() * 750);
var right = Math.floor(Math.random() * 750);
var bottom = Math.floor(Math.random() * 750);
var vertical = Math.floor(Math.random() * 750);
var horizontal = Math.floor(Math.random() * 750);
duck.style.top = top 'px';
duck.style.left = left 'px';
duck.style.right = right 'px';
duck.style.bottom = bottom 'px';
duck.style.vertical = vertical 'px';
duck.style.horizontal = horizontal 'px';
score
};
document.addEventListener("click", function(e){
if(score === -1){
score = 0
document.getElementById('score').innerHTML = 'Game over'
console.log('game over')
}
if(score === 20){
document.getElementById('score').innerHTML = 'Win'
console.log('Win')
}
if (e.target.id === 'duck'){
moveduck()
document.getElementById('score').innerHTML = score
}else {
score--
document.getElementById('score').innerHTML = score
}
})
#duck { height:50px; }
<!DOCTYPE html>
<html lang="en">
<head>
<title>Duck hunt</title>
<link rel="stylesheet" type="text/css" href="Duckhunt.css">
</head>
<body>
<div id="scoreBoard">Score: <p id="score"></p></div>
<div class="container">
<input type="image" src="https://www.iconsdb.com/icons/preview/orange/duck-xxl.png" name="duck" id="duck" />
</div>
<script src="Duckhunt.js"></script>
</body>
</html>
Комментарии:
1. о, вау, это почти именно то, что я имел в виду. но есть ли способ добавить что-то вроде этого: nutty.ca/resource/images/games/duckhunt/… в конце? Мне нужно создать другой html для чего-то подобного, или у меня есть способ добавить его в это?
2. @desit900 вот так codepen.io/Elnatan/pen/KKMJpaJ
Ответ №2:
Вот начало
var duck = document.getElementById('duck');
duck.style.position = 'relative';
var hit = 0;
var miss = 0
var count = 0;
var timing = setInterval(moveduck, 5000);
var button1 = document.getElementById("button1");
var button2 = document.getElementById("button2");
document.body.addEventListener('click', function(e) {
if (hit miss >= 20) return
const tgt = e.target;
if (tgt.id ==="duck") succesfullhit()
else failedhit();
if (hit miss === 20) clearInterval(timing)
else moveduck();
});
function moveduck() {
var top = Math.floor(Math.random() * 750);
var left = Math.floor(Math.random() * 750);
var right = Math.floor(Math.random() * 750);
var bottom = Math.floor(Math.random() * 750);
var vertical = Math.floor(Math.random() * 750);
var horizontal = Math.floor(Math.random() * 750);
duck.style.top = top 'px';
duck.style.left = left 'px';
duck.style.right = right 'px';
duck.style.bottom = bottom 'px';
duck.style.vertical = vertical 'px';
duck.style.horizontal = horizontal 'px';
};
function succesfullhit() {
hit ;
button1.innerHTML = hit;
}
function failedhit() {
miss ;
button2.innerHTML = -1*miss;
}
#duck { height:50px; }
<div class="container">
<input type="image" src="https://www.iconsdb.com/icons/preview/orange/duck-xxl.png" name="duck" id="duck" /><br/>
<button id="button1">Hit: </button>
<p></p>
<button id="button2">Miss: </button>
</div>