Toggle navigation
Explora
(current)
Aprende
Crea
Retos
×
Aspectos básicos
void main() {...}
for ( int i = 0 ; i < N ; i++ ) {...}
while (condición) {...}
do {...} while (condición);
if (condición) {...}
if (condición) {...} else {...}
switch (valor) {...}
Mostrar y pedir datos
print()
println()
readInteger()
readDouble()
readChar()
readString()
Funciones matemáticas
abs(n)
log(n)
sqrt(n)
pow(b,e)
floor(n)
ceil(n)
round(n)
sin(n)
cos(n)
tan(n)
asin(n)
acos(n)
atan(n)
random(n)
Funciones gráficas
point(x,y)
line(x1,y1,x2,y2)
ellipse(x,y,w,h)
rect(x,y,w,h)
triangle(x1,y1,x2,y2,x3,y3)
text(msg,x,y)
textWidth(msg)
textSize(n)
background(r,g,b,a)
strokeWeight(n)
stroke(r,g,b,a)
noStroke()
fill(r,g,b,a)
noFill()
image(url, x,y,w,h)
Nuevo
Ayuda
Probar
...
// CONSTANTES -- cambialo a tu antojo! final int WIN_H = 320; // un numero positivo final int WIN_W = 320; // un numero positivo final int RADIO_CIRC = 10; // un numero positivo final int N_MAX_CIRC = 10; // un numero positivo final double[] GRAVEDAD = {0, 250}; final double RESTITUCION = 0.8; // tiene que ser entre 0 y 1 final double FRICCION = 0.99; // tiene que ser entre 0 y 1 // variables int n_circ = 0; double[][] pos = new int[N_MAX_CIRC][2]; double[][] vel = new double[N_MAX_CIRC][2]; // ACTUALIZAR double dt; double olddelta = millis(); int elegido = -1; void update() { dt = (millis()-olddelta)/1000; olddelta = millis(); for(int i=0; i
WIN_H) { pos[i][1] = WIN_H - RADIO_CIRC; vel[i][1] *= -RESTITUCION; vel[i][0] *= FRICCION; } else if(pos[i][1]-RADIO_CIRC+vel[i][1]*dt < 0) { pos[i][1] = RADIO_CIRC; vel[i][1] *= -RESTITUCION; vel[i][0] *= FRICCION; } // choque con las paredes horizontales if(pos[i][0]-RADIO_CIRC+vel[i][0]*dt < 0) { pos[i][0] = RADIO_CIRC; vel[i][0] *= -RESTITUCION; vel[i][1] *= FRICCION; } else if(pos[i][0]+RADIO_CIRC+vel[i][0]*dt > WIN_W) { pos[i][0] = WIN_W - RADIO_CIRC; vel[i][0] *= -RESTITUCION; vel[i][1] *= FRICCION; } // aplicar movimiento pos[i][0] += vel[i][0]*dt; pos[i][1] += vel[i][1]*dt; // choque con otros circulos colCircvsCirc(i); // aplicar velocidad hacia el raton si el circulo es el que a seleccionado el ratón if(elegido == i) { vel[i][0] = vel[i][0]*0.9+(mouseX-pos[i][0])*dt*70; vel[i][1] = vel[i][1]*0.9+(mouseY-pos[i][1])*dt*70; } } // detectar que circulo toca el raton if(mousePressed && mouseButton == RIGHTBUTTON) { if(elegido == -1) colMousevsCirc(); } else elegido = -1; } // DIBUJAR void draw() { background(255,255,255); fill(253,110,110); stroke(187,78,78); for(int i=0; i
= N_MAX_CIRC) return; pos[n_circ][0] = x; pos[n_circ][1] = y; vel[n_circ][0] = 0; vel[n_circ][1] = 0; n_circ++; } // detectar colisiones entre circulos void colCircvsCirc(int i) { for(int j=i+1; j
Canvas not supported.
Programado por
Sager
5 votos
439 descargas
872 usos