У меня есть фрагмент кода, который добавляет 10 массивов объектов, каждый с индивидуальными значениями (x, xvel, radius и т. Д.) В массив.Внутри объекта мяча я создал 4 функции: функцию рисования, функцию перемещения, функцию столкновения с мышью и функцию столкновения с мячом.Все эти функции работают успешно, кроме функции столкновения мяча.Это потому, что когда он добавлен в цикл выполнения, рисуется только один шарик, а остальные шарики невидимы.
for(i = 0; i < balls.length;i++)
{
balls[i].move()
balls[i].draw()
balls[i].mouse_collision()
//This function is the reason for my quarrels, if I allow it to execute then no balls are drawn except for one however collisions are detected.
//balls[i].checkbox()
}
Несмотря на это, однако, столкновения все еще обнаруживаются, поэтому моя проблема в выяснениикак заставить столкновение и рисование работать одновременно.Код, используемый в функции флажка
this.checkbox = function() {
//Attempt at collision function, loops through all other balls and
//if collision == true then the function executes,
//causing the balls to bounce of each other.
for(i = 0; i < balls.length; i++)
{
if(collision(x,y,radius,balls[i].x,balls[i].y,balls[i].radius) && balls[i].id != id)
{
console.log("COLLISION")
o_xvel = balls[i].xvel
o_yvel = balls[i].yvel
balls[i].xvel = xvel
balls[i].yvel = yvel
xvel = o_xvel
yvel = o_yvel
}
}
}
Ссылка на код в JSFiddle: https://jsfiddle.net/HatBreakingDad/fnzr51yq/
PS Извините, если мой английский был плохим, так как это не мой родной язык.