Почему не работает обнаружение столкновений? (П5 JS в рамках )
Я создал обнаружение столкновений между змеей и базовым врагом. Я создал цикл for, чтобы создать пять разных врагов, но обнаружение столкновений не вызывается ни на одном из врагов, которые были созданы из цикла for. Столкновение работает только с одним базовым объектом-врагом. Почему функция столкновения не вызывается для всех врагов внутри массива? Спасибо.
Sketch.js
var snake; var food; var basicEnemy; var scl = 20; var enemies = []; function setup() { createCanvas(600, 500); snake = new Snake(); basicEnemy = new BasicEnemy(); //** CREATE FIVE ENEMIES ** for (var i = 0; i < 5; i++) { enemies[i] = new BasicEnemy(); } } // **FUNCTION WHEN SNAKE HITS ENEMY** function collision() { console.log("hit!"); } function draw() { background(51); //Draw snake snake.update(); snake.show(); //Draw basicEnemy basicEnemy.update(); basicEnemy.show(); //** LOOP THROUGH ENEMIES AND UPDATE AND SHOW ** for (var i = 0; i < enemies.length; i++) { enemies[i].show(); enemies[i].update(); if (enemies[i].hits(snake)) { collision(); } } }
BasicEnemy.js
function BasicEnemy() { this.x = random(700); this.y = random(700); this.velX = 15; this.velY = 15; } //** FUNCTION TO CHECK IF ENEMY AND SNAKE ARE IN THE SAME LOCATION ** this.hits = function (pos) { var = d = dist(this.x, this.y, pos.x, pos.y); if(d < 1) { return true; } else { return false; } } this.show = function () { fill(255, 0, 100); rect(this.x, this.y, scl, scl); }
snake.js
function Snake() { this.x = 0; this.y = 0; this.xspeed = 1; this.yspeed = 0; this.update = function() { this.x = this.x + this.xspeed * scl; this.y = this.y + this.yspeed * scl; this.x = constrain(this.x, 0, width - scl); this.y = constrain(this.y, 0, height - scl); } this.show = function() { fill(255); rect(this.x, this.y, scl, scl); }
Что я уже пробовал:
Я устал менять код много раз, но, кажется, могу заставить его работать. Я новичок в js, так что все будет полезно. спасибо.