我正在尝试为学校制作游戏,游戏很简单。 1.球员需要吃蛋糕才能得分 2.随机产生固定数量的敌人并随机移动 3.敌人必须从墙壁反弹并向另一个随机方向移动
我的问题是:我做了一个for循环创造了一些敌人,这些敌人随机移动和产生,但不会从墙上反弹。这些敌人从for-loop(#enemy + i)获取他们的ID,然后将它们推送到一个数组中。
我知道我必须使用setInterval来检查每次敌人是否在边境,但我似乎无法使其工作。
In order to make the code easier to understand:
randomTopVijand = creates a random top position for each enemy
randomLeftVijand = creates a random left position for each enemy
randomRichting = decides in which direction the enemy will go
起初我试图让动画停在墙上,但这没有用。 如果有人能帮助我让这些家伙反弹,我将非常感激。
function maakVijand() {
for ( i = 0; i < 6; i++) {
randomTopVijand = Math.floor(Math.random() * 580);
randomLeftVijand = Math.floor(Math.random() * 780);
randomRichting = Math.floor(Math.random() * 7);
$("#terrain").append("<img src='IMG/knight_sprite.gif' id='enemy" + i + "' />");
arrayVijand.push("enemy" + i);
$("#enemy" + i).css({
position : "absolute",
top : randomTopVijand + "px",
left : randomLeftVijand + "px"
});
if (randomRichting == 0) {
$("#enemy" + i).animate({
'left' : '-=200',
'top' : '-=200'
}, 1750);
} else if (randomRichting == 1) {
$("#enemy" + i).animate({
'top' : '-=610'
}, 1750);
} else if (randomRichting == 2) {
$("#enemy" + i).animate({
'left' : '+=810',
'top' : '-=610'
}, 1750);
} else if (randomRichting == 3) {
$("#enemy" + i).animate({
'left' : '+=810'
}, 1750);
} else if (randomRichting == 4) {
$("#enemy" + i).animate({
'left' : '+=810',
'top' : '+=610'
}, 1750);
} else if (randomRichting == 5) {
$("#enemy" + i).animate({
'top' : '+=610'
}, 1750);
} else if (randomRichting == 6) {
$("#enemy" + i).animate({
left : '-=810',
top : '+=610'
}, 1750);
} else if (randomRichting == 7) {
$("#enemy" + i).animate({
left : '-=810'
}, 1750);
}
if ($("#enemy" + i).position.top <= positiescherm.left) {
$("#enemy" + i).stop(true, false);
}
if ($('#enemy' + i).position().left <= positiescherm.left) {
$('#enemy' + i).stop(true, false);
} else if ($("#enemy" + i).position().left + $("#enemy" + i).width() >= positiescherm.right) {
$("#enemy" + i).stop(true, false);
} else if ($("#enemy" + i).position().top <= positiescherm.top) {
$("#enemy" + i).stop(true, false);
} else if ($("#enemy" + i).position().top + $("#enemy" + i).height >= positiescherm.bottom) {
$("#enemy" + i).stop(true, false);
}
}
}