Мне нужно написать функцию обнаружения столкновений в лаборатории приложений для космической стрелялки, чтобы убрать огонь и врага, когда они касаются, я пробовал несколько раз, но продолжаю получать (врага0) не существует. Я не знаю, что я должен делать, а также мне нужна помощь, чтобы мои враги двигались по диагонали!
var keys = [false, false, false, false];
// клавиши [0] движутся вправо
// клавиши [1] движутся влево
// клавиши [2] движутся вверх
// клавиши [3] движутся вниз
var xSpeed;
var ySpeed;
var magnitude = 10;
var fireNum = 0;
var fireSpeed = 20;
var enemyNum = 0;
onEvent("buttonStart", "click", function(){
setScreen("screenGame");
timedLoop(15, function(){
xSpeed = 0;
ySpeed = 0;
if(keys[0]){
xSpeed = magnitude;
}
if(keys[1]){
xSpeed = -magnitude;
}
if(keys[2]){
ySpeed = -magnitude;
}
if(keys[3]){
ySpeed = magnitude;
}
setPosition("imageShip", getXPosition("imageShip") + xSpeed, getYPosition("imageShip")+ySpeed );
wrapAround("imageShip");
});
for(var counter =0; counter < 10; counter++){
makeEnemy();
}
});
onEvent("screenGame", "keydown", function(event){
if(event.key == "Right"){
keys[0] = true;
}
if(event.key == "Left"){
keys[1] = true;
}
if(event.key == "Up"){
keys[2] = true;
}
if(event.key == "Down"){
keys[3] = true;
}
if(event.key == " "){
makeFire();
}
});
onEvent("screenGame", "keyup",function(event){
if(event.key == "Right"){
keys[0] = false;
}
if(event.key == "Left"){
keys[1] = false;
}
if(event.key == "Up"){
keys[2] = false;
}
if(event.key == "Down"){
keys[3] = false;
}
});
// чтобы держать космический корабль на экране
function wrapAround(Spaceship){
var objectX = getXPosition(Spaceship);
var objectY = getYPosition(Spaceship);
if(objectY > 450){
objectY = 0;
}
else if(objectY < 0){
objectY = 450;
}
if(objectX > 320){
objectX = 0;
}
else if(objectX < 0){
objectX = 320;
}
setPosition(Spaceship, objectX, objectY);
}
// чтобы создать огонь
function makeFire(){
image("fire"+ fireNum, "https://webstockreview.net/images/bullet-clipart-cartoon-7.png");
setProperty("fire"+fireNum, "width", 20);
setProperty("fire"+fireNum, "height", 20);
moveFire("fire" + fireNum);
fireNum += 1;
}
/ / стрелять и перемещать огонь
function moveFire(object){
setPosition(object, getXPosition("imageShip") + 35, getYPosition("imageShip"));
var fireLoop = timedLoop(15,function(){
setPosition(object, getXPosition(object) , getYPosition(object) - fireSpeed);
if(getYPosition(object) < 20){
stopTimedLoop(fireLoop);
deleteElement(object);
}
});
}
// для создания врага * адрес к изображению должен быть вместе (он разделяет его здесь)
function makeEnemy(){
image("Enemy" +enemyNum,"https://cdn.pixabay.com/photo/2014/04/03/00/42/spaceship-
309153_960_720.png");
setProperty("Enemy"+enemyNum, "width", 35);
setProperty("Enemy" + enemyNum, "height", 35);
setPosition("Enemy"+enemyNum, Math.floor(Math.random()*320), Math.floor(Math.random()*450));
moveEnemy("Enemy"+enemyNum);
enemyNum++;
}
// для перемещения противника вокруг экран
function moveEnemy(object){
var xEnemySpeed = 3;
var yEnemySpeed = 3;
timedLoop(15, function(){
setPosition(object, getXPosition(object)+xEnemySpeed, getYPosition(object)+yEnemySpeed);
if(getXPosition(object)>320 || getXPosition(object)<0){
xEnemySpeed = -xEnemySpeed;
}
if(getYPosition(object)>450 || getYPosition(object)<0){
yEnemySpeed = -yEnemySpeed;
}
});
}
// для удаления огня и врага, когда огонь касается врага
function collisionDetection(object){
}