Animación · Piech, CS106A, Stanford University d e r año Ahoraséque el comienzoesduro para...

Post on 07-Oct-2020

3 views 0 download

Transcript of Animación · Piech, CS106A, Stanford University d e r año Ahoraséque el comienzoesduro para...

Piech, CS106A, Stanford University

Animación

Piech, CS106A, Stanford University

Piech, CS106A, Stanford University

3 dias aqui es igual a2 semanas en Stanford

Piech, CS106A, Stanford University

Como aprendi a programar

Piech, CS106A, Stanford University

¿Cuándo adivinaríasque aprendí a programar?

Piech, CS106A, Stanford University

Cuando era joven?

Piech, CS106A, Stanford University

Creando cosas con solosu mente y una computadora.

Piech, CS106A, Stanford University

capa

cidad

de p

rogr

amar

año

Al comienzo de mi viaje

yoestudiante

10x mejor?

Piech, CS106A, Stanford University

capa

cidad

de p

rogr

amar

año

Ahora sé que el comienzo es duro

para todos.

Estásaprendiendo unanueva forma de

pensar.

Al comienzo de mi viaje

yoestudiante

La figura

10x mejor?

Piech, CS106A, Stanford University

Lo q

ue se

a, qu

ieras

mejo

rar

año

Imagínate a ti mismo

túotra persona

Piech, CS106A, Stanford University

Lo q

ue se

a, qu

ieras

mejo

rar

año

¿Quién preferirías ser?

Piech, CS106A, Stanford University

Lo q

ue se

a, qu

ieras

mejo

rar

año

¿Quién preferirías ser?

Piech, CS106A, Stanford University

Lo q

ue se

a, qu

ieras

mejo

rar

año

¿Quién preferirías ser?

Piech, CS106A, Stanford University

Lo q

ue se

a, qu

ieras

mejo

rar

año

Imagínate a ti mismo

Grace Hopper

Piech, CS106A, Stanford University

Si quieres hacer algograndioso, importa cuánto

aprendas cada día, no cuánto sabes cuando tienes

17 años.

Piech, CS106A, Stanford University

Espanol

año

El español de Chris

Chris

fluido

Piech, CS106A, Stanford University

Para empezar

Piech, CS106A, Stanford University

Nuestra historia hasta ahora …

Piech, CS106A, Stanford University

Learning Goals1. Write animated programs

2. Center an object

Piech, CS106A, Stanford University

revisión

Piech, CS106A, Stanford University

By Chris

Piech, CS106A, Stanford University

Había una vez …

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x estaba buscando amor …

x5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

x estaba buscando amor …

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

x definitivamenteestaba buscando amor

x estaba buscando amor …

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x conocío a y

x5

y5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

y5 Hola, soy y

x conocío a y

Piech, CS106A, Stanford University

“Wow!”

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

y5Wow

x conocío a y

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

y5 Tenemos mucho

en comun

x conocío a y

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

y5 ¡Ambos tenemos

valor 5!

x conocío a y

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

y5 Tal vez algún día

podamos ...

x conocío a y

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

y5 imprimir juntos?

x conocío a y

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

Se llevan bien

x5

y5

Piech, CS106A, Stanford University

Era una pareja hermosa ...

Piech, CS106A, Stanford University

Pero entonces la tragedia golpeó.

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

La tragedia golpeó

x5

y5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

y5

La tragedia golpeó

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

La tragedia golpeó

Piech, CS106A, Stanford University

Noooooooooooooooo!

Piech, CS106A, Stanford University

Lo ves…

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

Cuando un programa sale de un bloque de código ...

x5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

…donde una variable fue declarada ...

x5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

¡Se borra de la memoria!

x5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

y fue declarado dentro del if

x5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

Se borra de la memoria aquí

x5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

Y no existe aquí.

x5

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;

}imprimir(x + y);

x5

Error. Undefined variable y.

Y no existe aquí.

Piech, CS106A, Stanford University

El fin

Piech, CS106A, Stanford University

¿O es eso?

Piech, CS106A, Stanford University

Variables tienen una duración de vida

public void run(){double v = 8;if(condición){

v = 4;… algun código

}… algun otro código

}

Piech, CS106A, Stanford University

public void run(){double v = 8;if(condición){

v = 4;… algun código

}… algun otro código

}

Variables tienen una duración de vida

Piech, CS106A, Stanford University

v

Viene a la vida aquí

8

public void run(){double v = 8;if(condición){

v = 4;… algun código

}… algun otro código

}

Entrar en existencia cuando se declara

Piech, CS106A, Stanford University

Viven hasta el final del bloque de código.

Este es el bloque de código más interno enel que estabadeclarado….

v4

public void run(){double v = 8;if(condición){

v = 4;… algun código

}… algun otro código

}

Piech, CS106A, Stanford University

public void run(){double v = 8;if(condición){

v = 4;… algun código

}… algun otro código

}

Todavía vivo aquí ...

v4

Variables tienen una duración de vida

Piech, CS106A, Stanford University

public void run(){double v = 8;if(condición){

v = 4;… algun código

}… algun otro código

}Muere aquí (al final de su bloque de código)

v4

Viven hasta el final del bloque de código.

Piech, CS106A, Stanford University

public void run(){double v = 8;if(condición){

v = 4;… algun código

}… algun otro código

}Muere aquí (al final de su bloque de código)

Viven hasta el final del bloque de código.

Piech, CS106A, Stanford University

Capítulo 2

Piech, CS106A, Stanford University

El programador reparó su error.

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;imprimir(x + y);

}

x5

x estaba buscando amor …

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;imprimir(x + y);

}

x5

x estaba buscando amor …x definitivamenteestaba buscando amor

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;imprimir(x + y);

}

x5

y5

x conocío a y

Piech, CS106A, Stanford University

int x = 5;if(buscandoAmor()) {int y = 5;imprimir(x + y);

}

Ya que ambos estaban en “scope” ...

x5

y5

Piech, CS106A, Stanford University

La historia tuvo un final feliz!

Piech, CS106A, Stanford University

Mover SRect

Piech, CS106A, Stanford University

Ciclo de animación

private void run() {// prepara

while(true) {// actualice el mundo

// pausapausa(RETRASAR);

}}

Piech, CS106A, Stanford University

private void run() {// prepara

while(true) {// actualice el mundo

// pausapausa(RETRASAR);

}}

Haz todas las variables que

necesites. Agregar los

objetosgráficos a la

pantalla.

Ciclo de animación

Piech, CS106A, Stanford University

private void run() {// prepara

while(true) {// actualice el mundo

// pausapausa(RETRASAR);

}}

El ciclo de animación esuna repetición

de latidos.

Ciclo de animación

Piech, CS106A, Stanford University

private void run() {// prepara

while(true) {// actualice el mundo

// pausapausa(RETRASAR);

}}

Cada latido, actualiza el mundo haciaadelante un

paso.

Ciclo de animación

Piech, CS106A, Stanford University

private void run() {// prepara

while(true) {// actualice el mundo

// pausapausa(RETRASAR);

}}

Si no haces unapausa, los

humanos no podrán verlo.

Ciclo de animación

Piech, CS106A, Stanford University

Mover SRect

Piech, CS106A, Stanford University

private void run() {// preparaSRect r = new Srect(0, 250, 100, 100);s.cambiarFilled(true);agregar(s);

while(true) {// actualice el mundor.moverse(1, 0);

// pausapausa(RETRASAR);

}}

Mover SRect

Piech, CS106A, Stanford University

Pelota que rebota

Primero latido

Velocidad: cuántos píxelesla pelota mueve cada latido

vx

vy

1

1

Piech, CS106A, Stanford University

First heartbeat

vx

vy

El SOval moverse El método tomaun cambio en x y un cambio en y

Pelota que rebota

vx

vy

1

1

Piech, CS106A, Stanford University

Second heartbeat

vx

vy

Pelota que rebota

vx

vy

1

1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

Third heartbeat

vx

vy

Pelota que rebota

vx

vy

1

1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

What happens when we hit a wall?

Pelota que rebota

vx

vy

1

1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

We have this velocity

vx

vy

Pelota que rebota

vx

vy

1

1

Piech, CS106A, Stanford University

Seventh Heartbeat

vxvy

vy = vy * -DAMPING;

Pelota que rebota

vx

vy

1

-1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

Seventh Heartbeat

vy = vy * -DAMPING;

Pelota que rebota

vx

vy

1

-1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

Seventh Heartbeat

vy = vy * -DAMPING;

Pelota que rebota

vx

vy

1

-1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

Seventh Heartbeat

vy = vy * -DAMPING;

Pelota que rebota

vx

vy

-1

-1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

Seventh Heartbeat

vy = vy * -DAMPING;

Pelota que rebota

vx

vy

-1

-1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

Seventh Heartbeat

vy = vy * -DAMPING;

Pelota que rebota

vx

vy

-1

1

Velocidad: cuántos píxelesla pelota mueve cada latido

Piech, CS106A, Stanford University

SRect que rebota

Piech, CS106A, Stanford University

SRect que rebota

Piech, CS106A, Stanford University

SRect que rebota

Piech, CS106A, Stanford University

¿Preguntas?