1- cuando el timer llega a 0, los ingredientes no deberian seguir moviendose (sacarle el drag).Le quito el listener pero sin embargo se mueven.
2-- Si la receta está mal hecha ( o sea, se arrastra el ingrediente equivocado hacia el plato), deberia no dar ningun puntaje. Lo hice con un IF pero el ELSE me hace que si no ejecuto ninguna accion, tambien cuente cero.
Alguien por ahi me dijo que se hacee con un "array de arrays" pero no se bien como hacer esto. Alguien tiene idea? Adjunto el codigo.
codigo en AS3:
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.TextField;
public class Juego extends MovieClip {
public var numero_receta:Number
public var receta:String
public var puntaje:Number=0
public var mayonesa:Mayonesa
public var mostaza:Mostaza
public var ketchup:Ketchup
public var perejil:Perejil
public var plato:Plato
public var texto:TextField;
public var puntos:TextField;
public var reloj:MovieClip
//variables del reloj
var count:Number = 10;
var myTimer:Timer = new Timer(1000, count);
//////////////////////////////////////////////////////////////////////
function init():void {
///creo un random de 20 numeros para 20 recetas
numero_receta = Math.round(Math.random() * 4);
//se lo sumo a la palabra receta
receta=new String("receta " +numero_receta)
trace (receta)//
iniciar_reloj ()
mostrar_puntos()
////////////////funciones del reloj
function iniciar_reloj ():void{
myTimer.addEventListener(TimerEvent.TIMER, countdown);
myTimer.start();
function countdown(event:TimerEvent):void {
myText_txt.text = String((count)-myTimer.currentCount+" segundos");
}
}
if ((count) - myTimer.currentCount > 0) {
mayonesa=new Mayonesa();
mayonesa.x = 200
mayonesa.y = 150
mayonesa.visible=true
addChild(mayonesa)
mostaza=new Mostaza();
addChild(mostaza)
mostaza.visible=true
mostaza.x = 400
mostaza.y= 150
ketchup=new Ketchup();
ketchup.x = 600
ketchup.y = 150
ketchup.visible=true
addChild(ketchup)
perejil=new Perejil();
perejil.x = 800
perejil.y = 150
perejil.visible=true
addChild(perejil)
plato=new Plato();
plato.x = 350
plato.y=250
addChild(plato)
mayonesa.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar)
mayonesa.addEventListener(MouseEvent.MOUSE_UP, soltar)
mostaza.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar)
mostaza.addEventListener(MouseEvent.MOUSE_UP, soltar)
ketchup.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar)
ketchup.addEventListener(MouseEvent.MOUSE_UP, soltar)
perejil.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar)
perejil.addEventListener(MouseEvent.MOUSE_UP, soltar)
texto.text = receta//muestro la receta, por ahora tienen numeros nada mas
/////////////////////////////////////////////////////////////////////
hit()
}
else {
myTimer.stop()
removeEventListener(Event.ENTER_FRAME, hit)
mayonesa.removeEventListener(MouseEvent.MOUSE_DOWN, arrastrar)
mayonesa.removeEventListener(MouseEvent.MOUSE_UP,soltar)
mostaza.removeEventListener(MouseEvent.MOUSE_DOWN, arrastrar)
mostaza.removeEventListener(MouseEvent.MOUSE_UP,soltar)
ketchup.removeEventListener(MouseEvent.MOUSE_DOWN, arrastrar)
ketchup.removeEventListener(MouseEvent.MOUSE_UP,soltar)
perejil.removeEventListener(MouseEvent.MOUSE_DOWN, arrastrar)
perejil.removeEventListener(MouseEvent.MOUSE_UP,soltar)
}
}
function hit():void {
addEventListener(Event.ENTER_FRAME,hitest);
}
//funciones de arrastrar y soltar los ingredientes
function arrastrar(e:MouseEvent=null) {
e.target.startDrag();
}
function soltar(e:MouseEvent=null):void{
e.target.stopDrag();
}
//posiciona los ingredientes sobre el plato y detecta las colisiones
function hitest(e:Event):void {
if (mayonesa.hitTestObject(plato)){
mayonesa.visible=false
volver()
}
if (mostaza.hitTestObject(plato)){
mostaza.visible = false
volver()
}
if(ketchup.hitTestObject(plato)){
ketchup.visible = false
volver()
}
if(perejil.hitTestObject(plato)){
perejil.visible = false
volver()
}
}
// la funcion volver da puntaje y resetea los ingredientes a su lugar inicial
function volver():void {
removeEventListener(Event.ENTER_FRAME, hit)
puntaje=(puntaje+1000)
trace(puntaje)
init()
}
function error():void {
removeEventListener(Event.ENTER_FRAME, hit)
puntaje = (puntaje + 0)
trace(puntaje)
init()
}
//funcion para mostrar puntaje
function mostrar_puntos():void {
puntos.text=(puntaje)
}
}
}