Hey guys,
I’m trying to get my “enemy” which is a circle to move in a continuous path going right up left down and returning to its starting position. You can imagine the enemy to be moving along this path as a sentry or guard moving along the same route constantly.
The way I thought of doing this was manipulating the Enemy::update() in my Enemy.cpp file in order to simulate this movement:
This is the code in my Enemy.cpp class:
#include "Enemy.h"
#include "ofMain.h"
Enemy::Enemy() {
// Initial Position
middle.x = 300;
middle.y = 300;
loop = 0;
}
void Enemy::update() {
// moves right to 400 x
if (loop == 0) {
while (middle.x <= 400) {
middle.x = middle.x + 2;
}
if (middle.x == 400) {
loop = 1;
}
}
// moves up to 400 y
if (loop == 1) {
while (middle.y <= 400) {
middle.y = middle.y + 2;
}
if (middle.y == 400) {
loop = 2;
}
}
// moves left to 300 x
if (loop == 2) {
while (middle.x >= 300) {
middle.x = middle.x - 2;
}
if (middle.x == 300) {
loop = 3;
}
}
// moves down to 300 y
if (loop == 3) {
while (middle.y >= 300) {
middle.y = middle.y - 2;
}
if (middle.y == 300) {
loop = 0;
}
}
}
void Enemy::draw() {
ofDrawCircle(middle.x, middle.y, 20);
}
As you can see I am using simple if and while loops, but it doesn’t work. There has to be a simpler way of doing this would anyone know?