Допустим есть с десяток автономных агентов на дисплее, нужно что бы каждый из них двигался асинхронно и отскакивал от границ дисплея. Написал (код ниже), агенты движутся и отскакивают, но проблема в том, что они движутся и отскакивают синхронно.
Код:
//Ошибка тут, ибо velocity глобальна для всех агентов
//но если делать ее непосредственно в рендре для текущего
//агента, то не происходит отсковов от границ дисплея...
Vector2 velocity(200,500);
Render::draw() {
foreach (MovableObj agent in Agents) {
agent.pos() += velocity;
if ((agent.pos().x > Display.width()) || (agent.pos().x < 0)) {
velocity.x = velocity.x * -1;
}
if ((agent.pos().y > Display.height()) || (agent.pos().y < 0)) {
velocity.y = velocity.y * -1;
}
}
}