Capítulo 5: Proyecto final

Para consolidar todo lo aprendido en este curso rápido de Processing os vamos a proponer dos opciones de trabajo final.

Opción A

Para este proyecto final se os pedira crear un sistema en el un círculo cambie de una posición a otra cada cierto tiempo, siendo un total de cuatro posiciones distintas.El tiempo inicial que nosotros proponemos es de un segundo. Además de eso que cuando se pulse la tecla «r» se le sume un cuarto de segundo al tiempo que tarda en cambiar de posición, y que cuando se pulse «e» se le reste lo mismo.

Opción B

Haremos un paso de cebra que si pulsas la tecla w a partir de los 5 segundos aparecerá mensaje que dirá»pase» y si pulsamos el ratón aparecerá un signo de prohibido que dirá «no pasar».

Soluciones

Opción A


Importante: cuando pulseis las teclas procurad presionarlas muy poco tiempo, sino os sumará/restará más de un cuarto de segundo. Os dejo el archivo de la solución aquí.

Opción B

Os dejo la solución aquí

Test capítulo 4

1.¿Cuál es la función de millis()?

a)Contabiliza el tiempo transcurrido en milisegundos desde que se dan unas condiciones.

b )Contabiliza el tiempo transcurrido en segundos desde que se dan unas condiciones.

c )Contabiliza el tiempo transcurrido en milisegundos desde que se inicia el programa.

d) )Contabiliza el tiempo transcurrido en milisegundos desde que se presiona una tecla indicada.

2.¿Como funcionan las funciones hour(), minute() y second()?

a)Contabilizan horas, segundos y minutos respectivamente, en función de la hora que Internet diga.

b )Contabilizan horas, minutos y segundos respectivamente, en función de la hora que Internet diga.

c)Contabilizan segundos, minutos y horas respectivamente, en función de la hora que el equipo indique diga.

d)Contabilizan horas, minutos y segundos respectivamente, en función de la hora que el equipo indique diga.

3.¿Qué otra función/es puede sernos útil para establecer dos valores de tiempo entre los cuáles pasará algo?

a)if

b)millis()

c)hour() ,minute() y second()

4.¿Cómo funciona millis()?

a)Hay que poner dentro de los paréntesis el número de milisegundos que tiene que contar.

b)Simplemente funciona como una variable, es decir únicamente un número.

c )Hay que poner dentro de los paréntesis el número de segundos que tiene que contar.

d )Hay que poner dentro de los paréntesis el número de milisegundos con el que tiene que empezar de más.

5.¿Qué otra funcionalidad nos puede servir para controlar el tiempo que dura un ciclo de tiempo, y hacer que se repita en bucle automáticamente?

a)Las variables int

b)rect

c)ellipse

d)keyPressed

Respuestas

Pregunta 1:c)

Pregunta 2:d)

Pregunta 3:a)

Pregunta 4:b)

Pregunta 5:a)

Test capítulo 3

Pregunta 1 :If sirve para establecer una condicion para que ocurra algo.

a) Verdadero

b)falso

c)solo si va acompañado de el comando else

Pregunta 2: ¿With se corresponde con la variable size?

a) si se corresponde

b)no lo hace

c) la función se llama width no with

Pregunta 3: Si size es (600,400), que valor tendrá la variable de la pregunta 2?

a)600

b)400

c)1000

Pregunta 4: ¿Para qué sirve mousePressed?

a) Hace que cuando pulses el ratón ocurra algo

B)Guarda el tiempo que una tecla es presionada

c)Determina cuando el ratón es presionado

Pregunta 5: Tengo una ellipse y quiero que se mueva junto con mi ratón y que mida 50 de largo y 30 de ancho, ¿cuál es la opción correcta?

a)ellipse(mouseX,mouseY,50,30);

b)ellipse mouseX,mouseY,50,30);

c)ellipse(mouseY,mouseX,30,50);

Soluciones:

1)a

2)c

3)a

4)c

5)a

Test capítulo 2.

1.¿Qué función debemos usar si queremos que ocurra algo cuando se cumple una condición?

a)if

b)rect

c)else

d)int

2.¿Cúal es la estructura correcta de la función if?

a)if{accion}{condición}

b)if(accion)(condicion)

c)if(condicion){accion}

d)if(accion)[condicion]

3.¿Qué clase de valores puede tomar una variable?

a)Solo números.

b)Números y variables.

c)Números, variables y letras.

d)Ninguna es correcta.

4.¿Para qué sirve la función else?

a)Forma parte de la función int y sirve para indicar cuando la variable toma un valor.

b)Esa función no existe.

c)Acompaña a la función if y sirve para expresar que pasa si no se cumple la condición.

d)Esta función opera como la función if solo que realiza más de una acción cuando se cumple la condición establecida.

5.¿Puede una variable incluirse a sí misma en alguna operación?

a)Sí puede siempre.

b)Solo puede si esta dentro de un if.

c)Nunca, solo puede incluir otras variables.

d)No, no puede ni con ella ni con otras variables.

Soluciones:

Pregunta 1: a)

Pregunta 2: c)

Pregunta 3: b)

Pregunta 4: c)

Pregunta 5: a)

Test Capitulo 1

Este test prueba tus conocimientos sobre la unidad 1, seran cinco preguntas y al final encontraras las soluciones, tendrán tres opciones y tendrás que señalar la correcta.

Pregunta 1

¿Para qué sirve el comando size?

a) Determina el tamaño del área de trabajo

b)Determina el fondo del área de trabajo

c)No es un comando

Pregunta 2

Si quiero que el fondo se siga dibujando ¿qué comando debo usar?

a)void setup()

b)void draw()

c)void redraw()

Pregunta 3

Si quiero pintar un círculo de rojo, ¿ cuál es la orden correcta?

a)fill(250,0,0);

b)fill(250);

c)fill(0,250,0);

Pregunta 4

¿Para que sirve el comando ellipse?

a)Crea un cuadrado

b)Crea un triángulo

c)Crea ellipses

Pregunta 5

¿cómo hago un círculo perfecto?

a)ellipse(20,20,50,50);

b)ellipse(20,30,30,20);

c)ellipse(20,20,30,20);

soluciones:

  1. a
  2. b
  3. a
  4. c
  5. a

Capítulo 4: Control de tiempos.

Este último capítulo os enseñaremos a programar acciones que se realicen en un tiempo concreto. Para ello las orden que más vamos a utilizar es la primera aunque todas las demás mencionadas pueden ser útiles.

millis() : esta orden es un valor el cual es el tiempo transcurrido en milisegundos desde que se inicio el programa.

hour() : es un valor que detecta la hora que es basándose en la hora del equipo. Puede tomar valores del 0 al 23.

minute() : es un valor que detecta los minutos, basándose en la hora del equipo. Puede tomar valores del 0 al 59.

second() : es un valor que detecta los segundos, basándose en la hora del equipo. Puede tomar valores del 0 al 59.

Todas estas funciones nos sirven para poder contabilizar el tiempo ayudandonos de las variables int, un ejemplo para crear un semáforo sería el siguiente

En este ejemplo usando distintas variables y la función millis() conseguimos crear un semáforo de tres colores que pasa los primeros 7 segundos en rojo, luego 3 segundos en ámbar, 5 segundos en verde y después de eso vuelve a iniciar el ciclo. Para ello hemos usado una doble condición en los if para determinar entre que dos valores debe de activarse cada color.

Propuesta de trabajo

Haced una pelota que avance 50 píxeles cada 2 segundos. Como dificultad extra haced que rebote en las paredes.

Solución

Aquí teneis un enlace a nuestra página para que hagais un test sobre este capítulo.

Y un vídeo que explica los contenidos.

Capítulo 3:Interacción del teclado y el ratón.

Aprenderemos la interacción con el ratón,en esta unidad veremos los comandos:

width: Utiliza el comando size como referencia, si size es(300,200) width se establece en 300), nos servira mas tarde.

mouseX: Se corresponde con la posición del ratón en el eje x.

mouseY:Se corresponde con la posición del ratón en el eje y.

mousePressed: Cuenta cuando es pulsado el ratón o no.

keyPressed: Cuenta cuando una tecla es pulsada o no

Propuesta de actividad:

Realiza un cuadrado que al mover el raton cambie de color (3 colores) y que al pulsarlo desaparezca ese cuadrado.

Solución:

Aquí os dejamos un test de la unidad para probar vuestros conocimientos

Y aqui un vídeo para verlo más graficamente

Capítulo 2: Dibujo dinámico.

En este apartado de nuestro curso os enseñaremos como hacer que los objetos que hemos aprendido a crear en el capítulo anterior se muevan por sí solos.

Para empezar una de las órdenes que nos será muy útil es la función «if». Su estructura es la siguiente:

Además esta estructura puede seguirse de otra que finciona como alternativa si la condición no se cumpliera, este comando es else y su forma es la siguiente:

De esta forma podemos determinar en que condiciones puede llegar a suceder un evento y que sino siga una monotonía. Otra función que va a resultar muy útil son las variables. Las variables nos servirán cuando queramos que un número no sea constante. Estas se establecerán al principio de todo de la siguiente forma.

Aunque en la imagen aparezca cero, se le puede dar cualquier otro valor numérico, o incluso operaciones de otras variables incluida la propia variable.

En este apartado utilizaremos estas herramientas para crear dibujos que se muevan. En este ejemplo el código lo que hará sera crear un círculo que se ira desplazando por la pantalla en una dirección hasta salirse de nuestro lienzo.

Propuesta de actividad: Haz una circunferencia que rebote de arriba y abajo.

Solución:

Aquí teneis un enlace a nuestra página para que hagais un test sobre este capítulo. Y aquí un vídeo explicativo de la actividad

Capítulo 1:Dibujo estático.

Utilizaremos los siguientes comandos:

-void:

separa los elementos que queremos que se repitan de nuevo de los que no, dividiendose en void setup y void draw:

void setup(): comprenderá los comandos que utilicemos y que no queramos repetir.

size: determina el tamaño del área de trabajo

background:Determina el color del fondo del área de trabajo

-ellipse: Este comando dibuja un ellipse donde especificamos por orden:lugar del eje x, lugar del eje y, largo, ancho.Si se establece el mismo largo y ancho se dibuja una circunferencia.

-fill: este comando se utiliza para llenar de color algo(como una ellipse anteriormente mencionada) y tiene tres colores principales que van en orden: rojo,verde,azul.Dependiendo de la intensidad que demos desde 0 hasta 250 de cada color conseguiremos un color mas vivo o mas apagado.

Propuesta de actividad:Diana de tiro con arco:

Se debe realizar una diana que conste de:

Un tamaño de 1000×600

5 círculos que tengan diferente color.

Fondo blanco

Solución:

Aquçi te dejamos un test para probar tus conocimientos de la unidad

Y aquí un vídeo explicándolo por sino lo entendéis del todo.

¿Qué es Processing y para qué sirve?

Antes de comenzar con el curso de Processing hemos pensado que lo más correcto sería primero introduciros a que es Processing y para que sirve de una forma breve.

Para empezar explicaremos qué es Processing.

Processing es un software gratuito disponible en múltiples sistemas operativos, incluido Linux. El lenguaje de Processing se asemeja al Arduino, sin embargo el programa funciona con Java.

Uno de los objetivos de la fundación Processing es que artistas, diseñadores visuales y miembros de otras comunidades ajenas a la programación, como por ejemplo vosotros, sean capaces de aprender las bases de la programación dando resultados gráficos inmediatos.

La función de este curso será que vosotros aprendais las bases de la programación con Processing. Este curso estará dividido de la siguiente forma:

      • Capítulo 1: Dibujo estático.
      • Capítulo 2: Dibujo dinámico.
      • Capítulo 3:Interacción del ratón y el teclado.
      • Capítulo 4:Control de tiempos.
      • Capítulo 5:Proyeccto final.

Cada capítulo, a excepción del proyecto final, constará de:

  • Explicación escrita.
  • Un videotutorial.
  • Una propuesta de actividad con solución.
  • Test de 5 preguntas sobre la teoría.

En cuanto al proyecto final, involucrará todos los contenidos dados en el curso. También en vez de haber un solo proyecto final se podrá escoger entre dos opciones.

En este curso se enseñarán varias órdenes de Processing, sin embargo no son todas las que existen. Si necesitais alguna orden especial en algún momento o os surgen dudas, sentíos libres de visitar la página oficial de Processing donde podéis encontrar todas los comandos y sus estructuras. Aquí teneis un enlace directo a la página donde se encuentran.

Dicho todo esto, ¡comencemos el curso!