使用JavaScript动态移动创建的图像
我已经学习JavaScript大约2个月了,我正在尝试制作一个简化版的太空入侵者。基本上,在包含游戏的使用JavaScript动态移动创建的图像,javascript,html,css,Javascript,Html,Css,我已经学习JavaScript大约2个月了,我正在尝试制作一个简化版的太空入侵者。基本上,在包含游戏的div底部有一艘左右移动的宇宙飞船。小行星来自顶部,你必须通过撞击空格键向它们射击。我设法使子弹正确地产生,但我无法使它们缓慢地向上移动 这就是我用来制造子弹的方法: function spawnBullet(evento) { if (evento.charCode==32) { newBullet=document.createElement("i
div
底部有一艘左右移动的宇宙飞船。小行星来自顶部,你必须通过撞击空格键向它们射击。我设法使子弹正确地产生,但我无法使它们缓慢地向上移动
这就是我用来制造子弹的方法:
function spawnBullet(evento) {
if (evento.charCode==32) {
newBullet=document.createElement("img");
newBullet.classList.add("bullet");
newBullet.setAttribute("src", "images/bullet.png");
newBullet.setAttribute("style", "left: "+parseInt(parseInt(document.getElementById("spaceship").style.left)+15)+"px");
document.getElementById("spaceWrap").appendChild(newBullet);
bullets.push(newBullet);
}
}
其中项目符号
基本上是一个对象数组,包含当前屏幕上的每个项目符号,参数evento
通过容器div
上的onkeypress=“event”
传递
以下是项目符号
类的CSS:
.bullet {
width: 10px;
position: absolute;
top: -10px;
display: block;
}
现在是运动:
function moveBulletsTimer() {
bulletTimer=setInterval(moveBullets, 100);
}
function moveBullets() {
for (var i=0; i<=bullets.length-1; i++) {
if (bullets[i].style.top<=document.getElementById("gameWindow").style.height)
bullets[i].style.top=parseInt(bullets[i].style.top)-10+'px';
else {
bullets[i].remove();
bullets.pop(bullets[i]);
}
}
}
函数moveBulletsTimer(){
bulletTimer=setInterval(移动项目符号,100);
}
函数moveBullets(){
对于(var i=0),使用此代替StTealStay-Exchange以便于演示此方法。请考虑使用<代码> SETimeR()/<代码>而不是<代码> SETIN()/代码>。每次调用“代码> MOVEBUBSUBSH())/代码>,调用另一个调用<代码> SETIMER()处理下一个动画帧。这将避免@ J.NoHurBER在他的代码引用中标识的问题。尝试此而不是StTealTimeExchange,以便于为此演示提供一个简单的方法。考虑使用<代码> SETimeR()/<代码>而不是<代码> SETIN()/代码>。
被调用时,再次调用setTimer()
以处理下一个动画帧。这将避免@JonHerbert在其代码引用中识别的问题。