Estás en: Cristalab > Artículos > Aprende a bailar salsa con ActionScript 3
Aprende a bailar salsa con ActionScript 3
Por: eldervaz +
11 de Diciembre del 2009
Muchos no sabemos bailar salsa o se nos hace un mundo aprender a mover los pies y cuerpo al ritmo de la música. Es usual en algunos casos pero también hay grandes excepciones. Con este primer curso aprenderás a bailar salsa desde la perspectiva de un desarrollador, obteniendo un algoritmo capaz de cumplir un patrón del paso que realizaremos para luego usarlo con actionScript. En esta ocasión mostraremos el paso básico, el primer paso que debes aprender si quieres bailar salsa lineal. Debo aclarar que no soy un experto en el baile (ver vídeo para corroborar) pero la intención es divertirnos y aprender un poco de código.
No pude hacer este tip sin la necesidad de mostrarles lo que vamos a hacer, así que grabé un vídeo donde explico el paso básico, el patrón base, los subPatrones (C, B, A), para luego continuar con el algoritmo que nos ayude a implementarlo. Por su seguridad, aleje a los niños y personas con alteraciones cardíacas antes de ver el vídeo.
Listo! como habrán 'apreciado' en el vídeo, todo está explicado, es hora de pasarlo a actionScript. Para eso, crearemos un timer que me permita definir la velocidad de los pasos, o lo que llamé el Patrón "C". Para eso implementaré una clase que extienda de Timer y nos permita controlarlo sin depender de la clase principal:
Código :
package com.ini4.salsa.utils
{
import com.ini4.salsa.events.SalsaEvents;
import flash.events.TimerEvent;
import flash.utils.Timer;
public final class SalsaTimerControl extends Timer
{
private var $__delayS:Number;
public function SalsaTimerControl(delay:Number, repeatCount:int=0)
{
super(delay, repeatCount);
this.$__delayS = delay;
this.addEventListener(TimerEvent.TIMER, onTimer, false, 0, true);
}
private function onTimer(e:TimerEvent = null):void{
SalsaEvents.getInstance().step = true;
}
override public function start() : void{
super.start();
}
}
}
La clase SalsaTimerControl, nos dará el control de la velocidad o ritmo que usaremos al bailar, la tengo implementada en una clase aparte para poder seguir con las siguientes lecciones o pasos en un futuro.
Ahora, lo que haremos es crear una clase SalsaEvents que nos permita poder disparar los eventos que requiramos, en este caso cuando el timer nos avise el cambio de paso, esta clase nos ayudará también en el resto del curso.
Código :
package com.ini4.salsa.events
{
import flash.events.Event;
import flash.events.EventDispatcher;
public class SalsaEvents extends EventDispatcher
{
private static var $__instance:SalsaEvents;
public static const SHOW_STEP:String = "showStep";
private var $__step:Boolean;
public function SalsaEvents(e:Enforce){ }
public static function getInstance():SalsaEvents{
if($__instance==null)$__instance = new SalsaEvents(new Enforce());
return $__instance;
}
public function set step(b:Boolean):void{
$__step = b;
dispatchEvent(new Event(SalsaEvents.SHOW_STEP));
}
}
}
class Enforce{}
Cuando la clase SalsaTimerControl dispare un evento TimerEvent.TIMER, este avisará a la propiedad step el update y este, a su vez, disparará SalsaEvents.SHOW_STEP que será escuchado por nuestra clase principal del paso básico.
Al inicio, fue fácil hacer el paso porque me basé en if y usando un contador definía cuando lanzar el paso, muy simple pero efectivo, lo dejé en la clase para los que recién empiezan puedan tener una referencia simple.
package com.ini4.salsa
{
import com.ini4.salsa.events.SalsaEvents;
import com.ini4.salsa.utils.SalsaTimerControl;
import flash.display.Sprite;
import flash.events.Event;
public class ClassSalsa extends Sprite
{
//private static const PASS_TIME:Array = [1,2,3,5,6,7];
//private var cont:int = 0;
private static const FOOT_RIGHT:String = "footRight";
private static const FOOT_LEFT:String = "footLEFT";
private var timer:SalsaTimerControl;
public function ClassSalsa()
{
super();
SalsaEvents.getInstance().addEventListener(SalsaEvents.SHOW_STEP, foo, false, 0, true);
timer = new SalsaTimerControl(500);
timer.start();
}
private function foo(e:Event):void{
//PATRON B
var step:Boolean = ( ((timer.currentCount-1)%3)==0)?true:false;
//PATRON C
var foot:Boolean = ( (((timer.currentCount-1)%2)==0)?true:false);
//PATRON B + PATRON C == PATRON A
//adelante atras
if(((step==true) && (foot== true))) p1.play();
else if(((step==true) && (foot== false))) p6.play();
//centro centro
else if(((step==false) && (foot== false))) p4.play();
else if(((step==false) && (foot== true))) p3.play();
else
throw new Error("me falta un 3er pie");
campo.text = (foot)?FOOT_LEFT:FOOT_RIGHT;
//vesion anterior simple
//if(cont==0)p1.play();
// if(cont==1 || cont==5)p4.play();
// if(cont==2 || cont==4)p3.play();
//if(cont==3)p6.play();
//cont++;
//if(cont>PASS_TIME.length-1)cont = 0;
}
}
}
Entonces señores, bailar salsa no es más que una suma de cosas, pero al igual como todo, también tiene una lógica, un patrón y sobre todo... un algoritmo.
Estas muy pinche loco Elder, ahora que estemos por allá te voy a mostrar que Salsa es algo más que algoritmo! xDDD esta cool el experimento viejo Por:eparada
OMG!! esto es tan fucking sexy!!! (tú sabes q lo digo en serio) =P Por:oxigeno
Elder, como muestra del algoritmo "bailarin" está exelente; pero realmente espero ver una mejora en tus pasos en el proximo video y si veo mejoras compro la clase en cd interactivo Por:adrian.coria
wuau.....espectacular elder...esto si que es crear arte....
te felicito Por:bubudrc
le haría falta un try catch por si te caes. Por:Wanaya
Jajajajaja!!! Buenísimo!
A mi esto de la salsa no se me da U.U Por:violetisha
Buenisimo Elder!! yo en serio, en serio voy a probar el codigo, si la risa me deja Por:andresmaro
Que padreee eso es amar el trabajo que uno hace que se convierte en diversión y creación, Felicidades, y se puede utilizar de mil formas. Por:Grakoo-blog
@daz_angie.. hay desarrolladores que si bailan.. u_u
Tengo videos que lo prueban
@eldervaz: Esta cool el experimento... aunque a tu patron de baile le faltan 2 tiempos
Es un experimento super... a ver si la siguiente es de como bailar reaggeton... Por:Camuss
OH!!! esto podría haber sido útil para _alguien_ hace un tiempo Por:hCanté
jjaja gracias a todos, el paso es el "BASICO 1" de salsa, no le falta tiempo ni nada, yo se lo que les digo @Camuss
Ya empecé con la lógica del paso básico 2 . pronto tendrán noticias Por:eldervaz
OMG por que no vi esto antes yo soy muy tiesa bailando salsa ... esperando básico 2 Por:Jeimmy -blog
jajajajajaja Por:perros
No sé qué es más épico, toda esta interpretación de los pasos de salsa llevados a la programación o que eldervaz no se riese en todo el video. Si alguien podía hacer algo así, ése eres tú. Muy bueno Por:The Fricky!
eldervaz, me hizo reír muchísimo el comentario "existe gente medio rara". En realidad, si debe existir mucha gente rara en Internet, desde los trolls, hasta los que hacen programas para aprender a bailar salsa con actionscript 3.0 solo por que están aprendiendo a bailar, y quieren convertir el baile en "algo más divertido".
Sobre todo, excelente tu análisis y tu artículo , pero queremos que en la proxima entrega bailes como en este video:
Vamos a ver cómo me va. Le diré a mi pareja de baile.. wait wait.. ¿Cómo era? ok.. true, false, true false.. ¿Me sigues? jajaja. Genial eldervaz, a ver si con esto se hace el milagro que un exnovio uber salsero no hizo Por:Tifa^
Juas!. No había visto esto . Está excelente, de lo mejor que has hecho este año .
Ya no tengo excusa para no aprender a bailar salsa . Ya no me bailarán, ahora yo los bailaré Por:XKlibur
ME encantooooooooooooooo no soy programador pero siempre quize encontrarle un patron para aprenderlo mas rapido. demasiado bueno el video Por:Marcelo-blog
Edel, estas muy fumado amigo! Pero la verdad me encantó la nota!!! Me reí mucho y ahora puedo bailar salsa!!! jajaja! Gracias! Por:Core-blog
jajajajajajaja... Por:Zandy
Bueeee....
Pero para la salsa se utilizan los 8 tiempos (En el paso basico) que significa un compas de 4/4. Cuando se baila usualmente el conteo solo se refiere a 1 2 3 - 5 6 7 que es el que tu has usado para tu ejemplo... Pero obvio.. donde esta el 4 y el 8? Lo que pasa es que en la salsa.. al bailar se usa el paso 4 y 8 como pausas. Eso permite que el que baile tenga un "contrapeso" ritmico entre el moverse de atras a adelante o de lado a lado o en cualquiera de las variaciones que pueden haber de este "basico" con algunas pausas. De no ser asi se veria super mecanico moviendote sin parar. Definición Salsa
Bueno... solo era una acotacion mas no una critica. Lo que has hecho me parece cool...
Ahora lo que pones del paso basico en 2 me parece woow... Entender el patron de "On 2" si me parece interesante. Supongo que ahi si usaras para el ejemplo musica de fondo no?
jajaj Camuss, volveremos esto una charla técnica sobre la salsa?
Yo estoy explicando la salsa LINEAL!!! no me imagino aun hacerlo con la salsa CUBANA, pero ya se me ocurrirá algo...
Y la salsa líneal la puedes bailar en cualquier planeta, porque siempre son 7 tiempos y la persona que te acompañe, de saber, sabrá cada cambio o movimiento de MANO para poder cambiar de paso.
Gracias a todos por sus comentarios, al parecer tuvo un impacto interesante para todos y lo mejor es que a todos nos sacó una risa
*se va a planear el paso básico 2 en algoritmo Por:eldervaz
Buee.. ya te conteste por chat y quedamos en la formular perfecta para ser felices...
Pero por Dios.... "siempre son 7 tiempos" No WAY!!!!!! Por:Camuss
Muy buen video. Otra nueva forma de aprender a bailar salsa. Esta es la solucion definitiva para aprender a bailar salsa. lo maximo Por:macpc01
Jaajajaja, nunca pensé ver a mi profe de as3.0 y/o Flex haciendo esto, jajajajaja, larga vida!!! Por:jcruz
Bueno no se si llegue tarde a este artículo, je me encanto la idea de hecho siempre habia pensado hacer algo así, ya que son ingeniro de sistemas y desarrollador y ademas soy bailarín profesional de danza afrocubana(esto involucra la mal llamada "salsa").
Mis repsetos elder como progrmador y por la iniciativa de llevar el arte a los ambitos de la codificación.
Por otro lado esto sirve para entrar en la mecanica de entender pasos pero siempre es bueno la interelación y el entendimiento de la cultura que es lo que pone el "feeling" al baile es el plus!.
Y camus tengo que decirte que el vinculo que pusiste sobre la "salsa" es el artículo mas desfazado que he leido en mi vida nada mas lejos a lo que puede llamrse salsa muy mal por ese wiki, si quieren saber mas busquen por el casino cubano y lo que tu llamas On2 o mejor los norteamericanos, es realmente bailar en tiempo de son.
Ayyay camus si eres programador solamente no te mentas con mi canción! Por:vanvanero
esto si que es geek... as3 es tan buen bailarin como la difunta celia... Por:jegm88
Y para todos los interesados estoy dando clases de rueda de casino en Bogotá, conocido tambien como "salsa cubana", nos puedes encontrar por :
* facebook : http://www.facebook.com/group.php?gid=17343990175
Para que se den cuenta que son puros paradigmas que si uno es programador entonces "uno no puede bailar" en nuestra red de casineros de hecho ya existen bastantes desarrolladores, diseñadores graficos, administradores.... Por:vanvanero-blog
eso son los efectos cuando fumas mariguana y eres analitico muy buen analicis deverias de hacer uno con las vueltas tengo algo similar bailo salsa avanzado y me e dado cuenta que solo cambiea la forma de los brasos cuando encuentra esl codigo es sencillo este video le acaba de ahorrar mucho trabajo gracias y dios te bendiga Por:andresvaz@live.com.mx-blo
Juaaaaaaaaaaaaas!!!!!
* Acibjazz se pone de pie y aplaude Por:Acidbjazz