viernes, 4 de noviembre de 2011

ActionScript 3: Juego de Tiro al Blanco

El código que presento a continuación un ejemplo básico para generar un juego de tiro al blanco, muy sencillo, que puede ser utilizado para banners de adsense o cualquier otro sistema de ads.

Por supuesto que no es algo muy elaborado, pero con un poco de diseño de fondo podrás tener un banner bien armado y super funcional.

Vamos al desarrollo:
Antes del Actionscript:
1) Creá en la biblioteca un MC con nombre de clase "target" (serán las silietas a las que les disparamos)
2) Creá otro MC en la biblioteca con el nombre de clase "puntero" (será la mira).
3) En el escenario poné un téxto dinámico con nombre de instancia "textin" (sirve para decirnos si acertamos o nó en el blanco.

Ahora sí, acá va el código:

//CREO UNA VARIABLE QUE CONTABILIZA LOS TIROS CORRECTOS
var hits:Number = 0;

//AGREGAR BLANCOS AL ESCRITORIO
var target1:Sprite = new target(); //cargo una nueva instancia de las siluetas
target1.name="TOTO"; //le asigno un nombre, aunque en este ejemplo no es necesario
target1.x=50; //posiciono X
target1.y=20; //posiciono Y

var target2:Sprite = new target(); //cargo segundo blanco y lo posiciono
target2.x=110;
target2.y=20;

var target3:Sprite = new target(); //lo mismo para el tercer blanco
target3.x=170;
target3.y=20;

//CARGO PUNTERO el movie clip que reemplazará al mouse
var pointer:Sprite = new puntero();

//METO TODO EN EL ESCENARIO
addChild(target1);
addChild(target2);
addChild(target3);
addChild(pointer);

//DEFINIR PUNTERO DEL MOUSE escondo la flecha y cargo el pointer par que siga al mouse
Mouse.hide();
pointer.x=mouseX;
pointer.y=mouseY;
pointer.startDrag();

//LO QUE PASA CUANDO DISPARO
pointer.addEventListener(MouseEvent.MOUSE_UP, disparo);
function disparo(event:MouseEvent):void {
pointer.stopDrag(); //detengo el drag para averiguar el dropTarget


if(pointer.dropTarget==null || pointer.dropTarget.name=="textin"){
textin.text="MAL";
pointer.startDrag();
}else{ //si le atiné al blanco
textin.text="¡BIEN!"; //te felicito
removeChild(pointer.dropTarget.parent); //borro el blanco del escenario
hits++; //sumo puntos a tus hits


if(hits>2){ //cuando los hits lleguen a tres...
textin.text="GANASTE";
pointer.stopDrag();
Mouse.show();
}else{
pointer.startDrag();
}
}
}


PD: En teoría con copiar y pegar el código que está en este post alcanza para que funcione. De todos modos te dejo el link para descargar archivo tiro_al_blanco.rar.

Saludos y suerte con tus banners.