ejemplos cambio de estado con eventos
This commit is contained in:
parent
04e5c3a756
commit
ef56650b59
|
@ -175,6 +175,89 @@ void tres(){
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Cambio de estado con eventos
|
||||||
|
|
||||||
|
Estos ejemplos se parecen a los de arriba, pero el cambio de estado sucede dentro de los eventos `keyPressed()` o `mousePressed()`.
|
||||||
|
|
||||||
|
Esta plantilla ayuda para cuando queremos que algo suceda justo al *cambiar* de estado, y no *durante* el estado.
|
||||||
|
|
||||||
|
### Teclado
|
||||||
|
|
||||||
|
Usa los condicionales dentro de `keyPressed()` para realizar las acciones que quieres que sucedan al iniciar dicho estado. Por ejemplo, puedes usar la plantilla para iniciar la reproducción del sonido al presionar alguna tecla.
|
||||||
|
|
||||||
|
```java
|
||||||
|
int estado = 1; // estado inicial
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
size( 800, 600 );
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw() {
|
||||||
|
background(0);
|
||||||
|
if ( estado == 1 ) {
|
||||||
|
noStroke();
|
||||||
|
square(350, 250, 100);
|
||||||
|
} else if ( estado == 2 ) {
|
||||||
|
noStroke();
|
||||||
|
circle(400, 300, 100);
|
||||||
|
} else if ( estado == 3 ) {
|
||||||
|
stroke(255);
|
||||||
|
strokeWeight(5);
|
||||||
|
line(0, 300, 800, 300);
|
||||||
|
}
|
||||||
|
} // cierra draw()
|
||||||
|
|
||||||
|
void keyPressed() {
|
||||||
|
if ( key == '1' ) {
|
||||||
|
// inicia estado 1
|
||||||
|
estado = 1;
|
||||||
|
} else if ( key == '2' ) {
|
||||||
|
// inicia estado 2
|
||||||
|
estado = 2;
|
||||||
|
} else if ( key == '3' ) {
|
||||||
|
// inicia estado 3
|
||||||
|
estado = 3;
|
||||||
|
}
|
||||||
|
} // cierra keyPressed
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mouse
|
||||||
|
|
||||||
|
Este ejemplo es muy parecido al de arriba, pero aquí se usa el evento `mousePressed()` para cambiar al *siguiente* estado.
|
||||||
|
|
||||||
|
Nota el uso del condicional para regresar al estado inicial.
|
||||||
|
|
||||||
|
Lo que sucede dentro de `mousePressed()` podrías agruparlo en otro condicional que haga que las acciones sucedan solo cuando las coordenadas del mouse (`mouseX` y `mouseY`) se encuentren dentro de cierto rango.
|
||||||
|
|
||||||
|
```java
|
||||||
|
int estado = 1; // estado inicial
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
size( 800, 600 );
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw() {
|
||||||
|
background(0);
|
||||||
|
if ( estado == 1 ) {
|
||||||
|
noStroke();
|
||||||
|
square(350, 250, 100);
|
||||||
|
} else if ( estado == 2 ) {
|
||||||
|
noStroke();
|
||||||
|
circle(400, 300, 100);
|
||||||
|
} else if ( estado == 3 ) {
|
||||||
|
stroke(255);
|
||||||
|
strokeWeight(5);
|
||||||
|
line(0, 300, 800, 300);
|
||||||
|
}
|
||||||
|
} // cierra draw()
|
||||||
|
|
||||||
|
void mousePressed(){
|
||||||
|
estado = estado + 1; // siguiente estado
|
||||||
|
if( estado > 3 ){
|
||||||
|
estado = 1;
|
||||||
|
}
|
||||||
|
} // cierra mousePressed
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Modifica un parámetro con el teclado
|
## Modifica un parámetro con el teclado
|
||||||
|
|
Loading…
Reference in New Issue