gpt4 book ai didi

JavaScript - 重力 setInterval() - 平台碰撞

转载 作者:太空宇宙 更新时间:2023-11-04 16:24:54 26 4
gpt4 key购买 nike

我用主体中的 setInterval(fall,1000) 函数触发的 parseInt(its.style.top) 编写了一个 img 元素,使其“落下”到窗口中。

Moves()函数触发后发生错误,fall()函数停止调用。 Moves() 函数是否有一个 if 语句在 img s.style.left >= r.style.width 之后再次调用 setInterval(fall,1000) ?

谢谢! :-)

<html>
<body onload="setInterval(fall,1000)" onkeydown="Moves()">

<img id="square" style="position:absolute; left:10px; top:0px;
width:50px; height:50px; background-color:red;" />

<img id="rectangle" style="position:absolute; left:10px; top:130px;
width:150px; height:10px; background-color:blue;" />

<script>

function fall(){
var s = document.getElementById("square");
s.style.top = parseInt(s.style.top) + 25 + 'px';


var r = document.getElementById("rectangle");
r.style.top=130 + 'px';

if(s.style.top>=r.style.top){s.style.top=r.style.top;}
}

function Moves(){
var s = document.getElementById("square");
if (event.keyCode==39) {
s.style.left = parseInt(s.style.left)+10+'px';}

var r = document.getElementById("rectangle");
r.style.width=150 + 'px';

if(s.style.left>=r.style.width){setInterval(fall,1000);}
}

</script>

</body> </html>

最佳答案

我相信这就是您想要做的:

<html>
<body onload="setTimeout(fall,1000)" onkeydown="Moves()">

<img id="square" style="position:absolute; left:10px; top:0px;
width:50px; height:50px; background-color:red;" />

<img id="rectangle" style="position:absolute; left:10px; top:130px;
width:150px; height:10px; background-color:blue;" />

<script>
var over_edge = false;
var can_fall = true;

function fall(){
var s = document.getElementById("square");
s.style.top = parseInt(s.style.top) + 25 + 'px';


var r = document.getElementById("rectangle");
//r.style.top=130 + 'px';

if(!over_edge) {
if(parseInt(s.style.top) >= parseInt(r.style.top) - parseInt(s.style.height)) {
s.style.top = parseInt(r.style.top) - parseInt(s.style.height);
can_fall = false;
}
}
if(can_fall || over_edge)
setTimeout(fall, 1000);
}

function Moves(){
var s = document.getElementById("square");
if (event.keyCode==39) {
s.style.left = parseInt(s.style.left)+10+'px';}

var r = document.getElementById("rectangle");
//r.style.width=150 + 'px';

if(parseInt(s.style.left) >= parseInt(r.style.left) + parseInt(r.style.width)) {
if(!over_edge) {
over_edge = true;
fall(); // trigger falling over the edge but only once
}
}
}

</script>
</body>
</html>

关于JavaScript - 重力 setInterval() - 平台碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40314823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com