Explicación de funciones
Una función es un bloque con código que realiza una tarea específica. Solo van a funcionar si las invocamos con antelación. Las funciones sirven para que el programa este mucho más ordenado, para declarar variables temporales o para que nos devuelvan parámetros.
Hay diferentes tipos de funciones clasificadas por el tipo de dato que devuelve:
-Void: no devuelve ningún dato.
-String: devuelve un dato de tipo letra.
-Float: devuelve un dato de un número decimal.
-Int: devuelve un dato de un número entero.
-Color: te devuelve un dato de tipo color.
Hay dos pasos para crear una función. Lo primero es invocarla, se puede invocar dentro del void draw (si queremos que se repita) o fuera del draw (si no queremos que se repita). Lo segundo es escribir el código, fuera del draw.
Un ejemplo de función seria el siguiente:
boolean r,l,u,d; //Creamos las variables con tipo boolean: solo puede ser verdadero o falso (1 o 0).
int x,y=60;
void setup(){
size(800,600);
frameRate(1000);
}
void draw(){
background(0);
muevebola(); //Invocamos la función.
dibujabola(); //Invocamos la función.
}
void muevebola(){ //Definimos la función con el siguiente bloque de código.
if (r){
x=x+1;
}
if (l){
x=x-1;
}
if (u){
y=y-1;
}
if (d){
y=y+1;
}
}
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(){ //Definimos la función.
circle(x,y,60);
}
En este caso, las funciones no devuelven ningún parámetro. Sirve únicamente para ordenar el programa y aislar los códigos para que resulte más sencillo encontrar errores.
En el siguiente ejemplo sí devuelve un valor, tipo float:
float=h; //Creamos la variable con tipo float ya que la h no va a ser un número entero.
void setup(){
size(800,600);
fill(255);
frameRate(100);
strokeWeight(4);
stroke(255);
textSize(60);
}
void draw(){
background(0);
h=linea(100,100,500,400); //Invocamos la función dándole los cuatro parámetros que están entre paréntesis.
line(100,100,500,400);
}
float linea(int cx,int cy,int cx2, int cy2){ //Definimos la función. Entre paréntesis, creamos las variables temporales que van a tener los valores de los parámetros dados anteriormente.
float h;
h=sqrt((cx2-cx)*(cx2-cx)+(cy2-cy)*(cy2-cy));
return h; //Esto nos devuelve el valor de h.
}
Como podemos observar en este ejemplo, nuestro programa calcula, mediante el teorema de Pitágoras, el valor de la línea dibujada. Como el valor que nos devuelve no es un número entero, habría que empezar la función por float en vez de por int.
También nos podemos fijar en los parámetros que le damos al invocar la función (en este caso donde empiezan y donde acaban las lineas).
Comentarios
Publicar un comentario