Coches que se chocan con una bola movida por mi
boolean r,l,u,d;
int x,y=60;
Car[] myCars;
int numCoches = 30;
void setup() {
size(800, 600);
myCars = new Car[numCoches];
for (int i = 0; i < numCoches; i++) {
color c = color(random(255), random(255), random(255));
float xpos = random(width-5);
float ypos = random(height-5);
float xspeed = random(-6, 6);
if (xspeed == 0){
xspeed = 1;}
myCars[i] = new Car(c, xpos, ypos, xspeed);
}
}
void draw() {
background(255);
muevebola();
dibujabola();
for (int i = 0; i < numCoches; i++) {
myCars[i].drive();
if(dist(x,y,myCars[i].xpos,myCars[i].ypos)<27){
noLoop();
}
myCars[i].display();
}
}
void muevebola(){
if (r){
x=x+2;
}
if (l){
x=x-2;
}
if (u){
y=y-2;
}
if (d){
y=y+2;
}
}
void keyPressed(){
if (keyCode==RIGHT){
r=true;
}
if (keyCode==LEFT){
l=true;
}
if (keyCode==UP){
u=true;
}
if (keyCode==DOWN){
d=true;
}
}
void keyReleased(){
if (keyCode==RIGHT){
r=false;
}
if (keyCode==LEFT){
l=false;
}
if (keyCode==UP){
u=false;
}
if (keyCode==DOWN){
d=false;
}
}
void dibujabola(){
circle(x,y,30);
}
class Car {
color c;
float xpos;
float ypos;
float xspeed;
Car(color tempC, float tempXpos, float tempYpos, float tempXspeed) {
c = tempC;
xpos = tempXpos;
ypos = tempYpos;
xspeed = tempXspeed;
}
void display() {
stroke(0);
fill(c);
rectMode(CENTER);
rect(xpos, ypos, 20, 10);
}
void drive() {
xpos = xpos + xspeed;
if (xpos > width && xspeed > 0) {
xpos = 0;
} else if (xpos < 0 && xspeed < 0) {
xpos = width;
}
}
}
Comentarios
Publicar un comentario