xxxxxxxxxx
float xPos, yPos;
float angle = -90;
float speed;
bool up, down, left, right;
float angleVel;
float goalX, goalY;
float tail = 100;
void setup() {
size(500, 500);
xPos = width / 2;
yPos = height / 2;
goalX = random(width);
goalY = random(height);
}
void draw() {
//background(60);
fill(50, tail);
rect(0, 0, width, height);
noStroke();
fill(60, 240, 120);
ellipse(goalX, goalY, 15, 15);
fill(240, 60, 60);
ellipse(xPos, yPos, 25, 25);
triangle(xPos + 32.5 * cos(radians(angle)), yPos + 32.5 * sin(radians(angle)),
xPos + 6.25 * cos(radians(angle + 90)) + 20 * cos(radians(angle)),
yPos + 6.25 * sin(radians(angle + 90)) + 20 * sin(radians(angle)),
xPos + 6.25 * cos(radians(angle - 90)) + 20 * cos(radians(angle)),
yPos + 6.25 * sin(radians(angle - 90)) + 20 * sin(radians(angle)),);
if (dist(goalX, goalY, xPos, yPos) <= 15) {
tail *= 0.9;
goalX = random(width);
goalY = random(height);
}
speed *= 0.9;
if (up)
speed += .5;
if (down)
speed -= .5;
if (speed > 5)
speed = 5;
if (speed < -5)
speed = -5;
if (right)
angleVel += .75;
if (left)
angleVel -= .75;
if (angleVel > 7.5)
angleVel = 7.5;
if (angleVel < -7.5)
angleVel = -7.5;
angle += angleVel;
angleVel *= 0.85;
xPos += speed * cos(radians(angle));
yPos += speed * sin(radians(angle));
xPos = (xPos + width) % width;
yPos = (yPos + height) % height;
}
void keyPressed() {
if (key == 'w' || keyCode == UP)
up = true;
if (key == 'a' || keyCode == LEFT)
left = true;
if (key == 's' || keyCode == DOWN)
down = true;
if (key == 'd' || keyCode == RIGHT)
right = true;
}
void keyReleased() {
if (key == 'w' || keyCode == UP)
up = false;
if (key == 'a' || keyCode == LEFT)
left = false;
if (key == 's' || keyCode == DOWN)
down = false;
if (key == 'd' || keyCode == RIGHT)
right = false;
}