En el ultimo post el código quedo algo así, donde se le dio la animación a nuestro personaje, por medio de asignarle una velocidad a nuestro objeto.
int posX;
void setup(){
posX=300;
size(400,400);
smooth();
}
void draw(){
//se altera la varaible de la posicion
posX+=1;
//se pone un fondo rosa
background(217,71,135);
//se dice que se use blanco como relelno para las figuras
fill(255,255,255);
//se dice que no se pongan bordes a las figuras a dibujar
noStroke();
//se dibuja el circulo, el que seria nuestr personaje
ellipse(posX,200,40,40);
}
void setup(){
posX=300;
size(400,400);
smooth();
}
void draw(){
//se altera la varaible de la posicion
posX+=1;
//se pone un fondo rosa
background(217,71,135);
//se dice que se use blanco como relelno para las figuras
fill(255,255,255);
//se dice que no se pongan bordes a las figuras a dibujar
noStroke();
//se dibuja el circulo, el que seria nuestr personaje
ellipse(posX,200,40,40);
}
pero que tal que quisiéramos que la velocidad cambiara, para esto tendríamos que hacer que la velocidad sumada a la posición en X fuese una variable. Por lo que en vez de poner posX+=4 se podria hacer una variable de velocidad y sumarse a la posibilidad, de esta manera.
//se declaran las variables de posición y velocidad
int posX,velX;
void setup() {
size(400,400);
//se inicializa la variable de posición
posX=300;
//se inicializa la variable de velocidad
velX=1;
smooth();
}
void draw() {
//se altera sumando al variable de velocidad a la posición en X
posX+=velX;
//se pone un fondo rosa
background(217,71,135);
//se dice que se use blanco como relelno para las figuras
fill(255,255,255);
//se dice que no se pongan bordes a las figuras a dibujar
noStroke();
//se dibuja el circulo, el que seria nuestr personaje
ellipse(posX,200,40,40);
}
Teniendo la velocidad en una variable sera mas facil de cambiar la velocidad cuando queramos. Por ejemplo en caso de que queramos que la velocidad cambie mientras se ejecuta el programa. Para lograr esto podríamos dar una variable de aceleración, recuerden que la velocidad es el cambio en la posición de un objeto en un determinado tiempo, pero si este movimiento es cada vez mayor o menor, se va a generar una aceleración en el movimiento del objeto.
Para lograr esto pondré la posición inicial en 0, esto es solo para poder ver el efecto de la aceleración mas fácilmente. Al igual que velocidad voy a guardar la aceleración en una variable, pero como vieron anteriromente no es que sea algo necesario sino que es más adecuado, ya que en caso de ser necesario será más fácil el cambio de la variable, además de que será más comodo el escribir el código.
Además pondré la velocidad en 0, algunos tal vez se preguntaran porque hago esto, pero ya que el movimiento que se va a hacer es de aceleración, implica que el cuerpo inicialmente esta en reposo y por consiguiente no tiene velocidad, es decir que esta sea igual a 0.
También como la aceleración esta constantemente sumándose a la velocidad, se necesitara manejar números más pequeños que los enteros, es decir que se requiere manejar decimales, por lo que iniciare la variable de aceleración en 0.1. Para declara una variable de este tipo, se declara como float o double.
por lo que el código sería algo así.
//se declaran las variables de posición velocidad y aceleración
//se declaran como decimales por medio del float
float posX,velX,acelX;
void setup() {
size(400,400);
//se inicializa la variable de posición
posX=0;
//se inicializa la variable de velosidad
velX=0;
acelX=0.1;
smooth();
}
void draw(){
código...
}
Habíamos dicho que la velocidad era el movimiento que tenía un cuerpo en una determinada unidad de tiempo. Pues la aceleración es el cambio de la velocidad en la unidad de tiempo, por ejemplo, si tenemos un carro que entre el segundo uno y dos avanza 5mts pero entre el segundo dos y 3 avanza 10 mts, significa que el carro tuvo una aceleración de 5m por segundo, es decir que se le suman 5 metros a la velocidad por segundo que tiene el carro.
En cuanto al código del draw, sería algo similar al anterior, en donde ademas de sumársele la velocidad a la posición, se requerirá de sumarle la aceleración a la velocidad.
Dejando así el código:
//se declaran las variables de posición velocidad y aceleraci´n
float posX,velX,acelX;
void setup() {
size(400,400);
//se inicializa la variable de posición
posX=0;
//se inicializa la variable de velosidad
velX=0;
acelX=0.1;
smooth();
}
void draw() {
//se suma la aceleracion a la velocidad
velX+=acelX;
//se altera sumando al variable de velocidad a la posición en X
posX+=velX;
//se pone un fondo rosa
background(217,71,135);
//se dice que se use blanco como relelno para las figuras
fill(255,255,255);
//se dice que no se pongan bordes a las figuras a dibujar
noStroke();
//se dibuja el circulo, el que seria nuestr personaje
ellipse(posX,200,40,40);
}
más proyectos en flavourmachine.com best way to waste your time