Это то, что я пытаюсь сделать для университетского задания, и я довольно новичок в этом, но я много читал по этому вопросу. Может кто-нибудь объяснить, в самых простых словах, как сделать то, что я пытаюсь сделать, чтобы я мог понять, что должно произойти?
У меня есть массив объектов, каждый из которых рисует круг на экране; У меня они подпрыгивают в ограничительной рамке, но теперь я бы хотел, чтобы они столкнулись.
Я написал метод ниже, который работает ... но только справедливо. Шары иногда застревают и «дрожат» друг на друга, и я понятия не имею, почему это происходит. Кроме того, я думаю, что проверяю больше коллизий, чем необходимо (?).
void handleObjectCollision() {
for(int i = 0; i < _myBtns.length; i++) {
if(i != _id) {
float dx = _myBtns[i].x - x;
float dy = _myBtns[i].y - y;
float distance = sqrt(dx*dx + dy*dy);
if(distance < r * 2) {
xS = -xS;
yS = -yS;
// Debug
// println("Collision!");
}
}
}
Полная вставка моего класса и соответствующих сегментов может быть найдена здесь: http://pastebin.com/eJawiHAE.
Кроме того, вот пример, с которым я работал, http://processing.org/learning/topics/bouncybubbles.html.
Я пытаюсь добиться простого отскока (реверса в скорости?), Без добавления физики или использования векторов, так как сначала я хочу понять, что происходит в простейшей форме.
Спасибо.