# Como hacer movimientos avanzados

**URL:** https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569
**Category:** Español
**Created:** [April 9, 2020, 9:23am UTC](https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569 "2020-04-09T09:23:12Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![hokuto](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/hokuto/32/2139_2.png) [@hokuto](https://discourse.processing.org/u/hokuto)
#### Post date: [April 9, 2020, 9:23am UTC](https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569/1 "2020-04-09T09:23:12Z")

</div>

Saludos.  
Me gustaria saber como hacer movimientos avanzados para mover un objeto como el de este video que voy a poner.

[![](https://img.youtube.com/vi/9NcTNoGjFvE/maxresdefault.jpg "Arcade Longplay [409] 19XX: The War Against Destiny") ](https://www.youtube.com/watch?v=9NcTNoGjFvE)

En el minuto 3:39 salen unos aviones rojos por la izquierda y parece que siguen una ruta,en el minuto 3:54 otra fila de aviones que sale por la derecha y sigue una ruta.En el minuto 4:47 sale un avion medio grande con un movimiento como bailando y en el minuto 4:58 sale un barco mediano con un movimiento bastante realista,es como si lo estuviera manejando una persona,en el minuto 5:23 sale un avion negro mediano con un movimiento realista.

Como se pueden programar esos movimientos.

---

<div class="post-metadata">

### Author: ![danielx](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/danielx/32/8785_2.png) [@danielx](https://discourse.processing.org/u/danielx)
#### Post date: [April 11, 2020, 11:22pm UTC](https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569/2 "2020-04-11T23:22:01Z")

</div>

¿usted puede hablar inglés? Mira el libro Nature Of Code, Daniel Shiffman, para movimientos más realistas físicamente.

---

<div class="post-metadata">

### Author: ![hokuto](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/hokuto/32/2139_2.png) [@hokuto](https://discourse.processing.org/u/hokuto)
#### Post date: [April 12, 2020, 10:16am UTC](https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569/3 "2020-04-12T10:16:26Z")

</div>

No se casi nada de ingles y por lo que he visto,en programacion si no sabes ingles estas perdido, porque casi toda la documentacion esta en ingles.

---

<div class="post-metadata">

### Author: ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)
#### Post date: [April 17, 2020, 6:50pm UTC](https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569/4 "2020-04-17T18:50:48Z")

</div>

Hay muchas maneras. Para movimientos con guiones simples, como los movimientos en su video de ejemplo, un método es hacer una lista de puntos (“waypoints”). Puede usar PVector.

Luego deslice un objeto entre los puntos de la lista. Para hacer eso, use una función como esta:

```auto
PVector lerpVectors(float amt, PVector... vecs) {
  if(vecs.length==1){ return vecs[0]; }
  float unit = 1.0/(vecs.length-1);
  return PVector.lerp(vecs[floor(amt / unit)], vecs[ceil(amt / unit)], amt%unit/unit);
}

```

Aquí hay una discusión previa:

> [@Steering a Shape along a pathway](https://discourse.processing.org/t/steering-a-shape-along-a-pathway/17787):
>
> Hello all, I want to steer a shape along a pathway. Let’s say a spaceship that first goes along x axis and when at a certain point stops and rotates slowly around its axis and then starts in another direction. Like a framework with list of timers and different commands for the time periods. Ah, I must have done something like this… But has anyone an example for this? Thanks! Chrisir

---

<div class="post-metadata">

### Author: ![hokuto](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/hokuto/32/2139_2.png) [@hokuto](https://discourse.processing.org/u/hokuto)
#### Post date: [April 17, 2020, 7:12pm UTC](https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569/5 "2020-04-17T19:12:30Z")

</div>

Gracias @jeremydouglass.

PVector lerpVectors(float amt, PVector… vecs),¿que son esos tres puntos que tiene PVector…?,no entiendo que significa.

---

<div class="post-metadata">

### Author: ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)
#### Post date: [April 17, 2020, 7:23pm UTC](https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569/6 "2020-04-17T19:23:40Z")

</div>

“…” = Java varargs.

Significa que para este argumento puede usar `PVector`, o muchos PVectors` a, b, c, d ...`, o puede usar una array, `PVector []`.

Entonces crea una ruta, luego mueve un objeto en la ruta de esta manera:

```auto
PVector[] ruta = new PVector[4];

void setup() {
  ruta[0] = new PVector(-10, 10);
  ruta[1] = new PVector(90, 10);
  ruta[2] = new PVector(10, 90);
  ruta[3] = new PVector(110, 90);
}

void draw() {
  background(128);
  PVector obj = lerpVectors(mouseX/(float)width, ruta);
  ellipse(obj.x, obj.y, 20, 20);
}

PVector lerpVectors(float amt, PVector... vecs) {
  if (vecs.length==1) { 
    return vecs[0];
  }
  float unit = 1.0/(vecs.length-1);
  return PVector.lerp(vecs[floor(amt / unit)], vecs[ceil(amt / unit)], amt%unit/unit);
}

```

---

<div class="post-metadata">

### Author: ![hokuto](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/hokuto/32/2139_2.png) [@hokuto](https://discourse.processing.org/u/hokuto)
#### Post date: [April 17, 2020, 8:05pm UTC](https://discourse.processing.org/t/como-hacer-movimientos-avanzados/19569/7 "2020-04-17T20:05:11Z")

</div>

Muchas gracias @jeremydouglass. 👍

Voy a estudiar con detenimiento ese codigo,tambien comentarte que he encontrado un canal de youtube con muchos tutoriales en español de processing,voy a poner el enlace aqui para que otros con problemas con el ingles tambien puedan aprender processing.

> **[Air Room](https://www.youtube.com/channel/UCUz9-NhJbTjd7PkVI15NnxQ/featured)**
>
> Air Room nace con el firme propósito de difundir conocimiento sobre diferentes herramientas, lenguajes y procesos vinculados con las nuevas tecnologías. Air Room se encuentra dentro del laboratorio creativo de José León: Estación Nómada.

Saludos.
