当敌人到达x的位置900时,我怎么会在敌人身上产卵呢?
它必须像
if(enemy.x<=900){
//spawn enemies
}
这里有一个jsfiddle来向你展示我的意思,向左移动的块我想要它们的倍数 http://jsfiddle.net/h8u1n3fj/ 我需要当前的敌人留在棋盘上,同时产生它们,并且只是让它在每次击中900后有多组敌人留在棋盘上。
var requestAnimFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
window.requestAnimationFrame = requestAnimFrame
var place = [74,111,148,185,222,259,296,333,370];
var rand = place[Math.floor(Math.random()*place.length)];
var rand2 = place[Math.floor(Math.random()*place.length)];
var rand3 = place[Math.floor(Math.random()*place.length)];
var rand4 = place[Math.floor(Math.random()*place.length)];
var rand5 = place[Math.floor(Math.random()*place.length)];
var rand6 = place[Math.floor(Math.random()*place.length)];
var rand7 = place[Math.floor(Math.random()*place.length)];
var rand8 = place[Math.floor(Math.random()*place.length)];
var rand9 = place[Math.floor(Math.random()*place.length)];
console.log(rand);
var move = setInterval(function () {
enemy.x -= 45;
}, 500);
//drawing the character
function drawChar(x,y){
enemy.y = rand;
enemy.y2 = rand2;
enemy.y3 = rand3;
enemy.y4 = rand4;
enemy.y5 = rand5;
enemy.y6 = rand6;
enemy.y7 = rand7;
enemy.y8 = rand8;
enemy.y9 = rand9;
context.drawImage(tile3,enemy.x,enemy.y,tileWidth,tileHeight);
context.drawImage(tile3,enemy.x,enemy.y2,tileWidth,tileHeight);
context.drawImage(tile3,enemy.x,enemy.y3,tileWidth,tileHeight);
context.drawImage(tile3,enemy.x,enemy.y4,tileWidth,tileHeight);
context.drawImage(tile3,enemy.x,enemy.y5,tileWidth,tileHeight);
context.drawImage(tile3,enemy.x,enemy.y6,tileWidth,tileHeight);
context.drawImage(tile3,enemy.x,enemy.y7,tileWidth,tileHeight);
context.drawImage(tile3,enemy.x,enemy.y8,tileWidth,tileHeight);
context.drawImage(tile3,enemy.x,enemy.y9,tileWidth,tileHeight);
requestAnimFrame(drawChar);
if(enemy.x<=0){
enemy.x=990;
rand = place[Math.floor(Math.random()*place.length)];
}
else {
return true;
}
}
此外,如果您对如何使代码更清洁有任何建议,请随意,但我主要希望每次x等于900时能够产生这些敌人并保持当前敌人在棋盘上。
答案 0 :(得分:0)
目前,您的敌人列表(rand to rand9)正在被使用,直到它到达enemy.x等于零的位置。现在,不是使用一个敌人列表,如果我们可以一个接一个地生成敌人列表而不覆盖变量,然后一旦它们达到零就丢弃敌人列表,那不是很好吗? 您需要使用对象编程来解决您的问题。可以在此处找到详细记录的教程:http://eloquentjavascript.net/1st_edition/chapter8.html。在学习了一点面向对象编程(OOP)之后,您将能够为敌人列表制作一个“蓝图”,允许您创建它们并定位它们,同时保持它们彼此独立。