--
-- Script para el comportamiento cuando es actor
--
-- Variables FRAMETIME y ACCIONBICHO
tiempoUltimoGolpe = tiempoUltimoGolpe + FRAMETIME

-- se trabaja con nextx y nexty, se comprueban y se actualizan al final
NextX = Accion(GET_X)
NextY = Accion(GET_Y)
HayColision = false

if Accion(SALTANDO) then
   -- fisica
   NextX = NextX + Accion(GET_SALTOX) * FRAMETIME
   NextY = NextY + Accion(GET_SALTOY) * FRAMETIME

	-- aplica la gravedad si no esta en el suelo o esta cayendo
   if (not (NextY == Accion(GET_SUELO))) or (not (Accion(GET_SALTOY) == 0)) then
      Accion(SET_SALTOY, Accion(GET_SALTOY) + (9.8 * FRAMETIME))
	else
		-- si no esta cayendo y se mueve, rozamiento hasta epsilon
      if (Accion(GET_SALTOX) > 0.05) or (Accion(GET_SALTOX)< -0.05) then
         Accion(SET_SALTOX, Accion(GET_SALTOX) / (1 + (9.8 *FRAMETIME)))
			-- sale humo al rozar con el suelo
         dofile(PATH.."estela.lua")
		else
         Accion(SET_SALTOX, 0 )
      end
   end

   if NextY > Accion(GET_SUELO) then
      dofile(PATH.."caidaSalto.lua")
   end
end


dofile(PATH.."CompruebaAcciones.lua")

-- tiempo que le queda al frame
Accion(SET_TIEMPO_FRAME, Accion(GET_TIEMPO_FRAME) - FRAMETIME)


-- eventos de fin de frame y de fin de animacion
if Accion(GET_TIEMPO_FRAME)<0 then
   dofile(PATH.."finDeFrame.lua")

   -- Siguiente frame y si se acabo el tiempo de la animacion
   if Accion(NEXT_FRAME) ==1 then
      dofile(PATH.."FinDeAnima.lua")
   end

end


-- COLISIONES Y LIMITES
-- va despues de las animaciones por que cambian el frame y por
-- tanto la bounding box
HayColision,NextX,NextY = Accion(COLISIONA, NextX, NextY)
if  HayColision then
   dofile(PATH.."colision.lua")
end

Accion(SET_X, NextX)
Accion(SET_Y, NextY)