Sticmy Posted December 31, 2015 Share Posted December 31, 2015 Hola gente de la comunidad, quisiera tener una explicación de como hacer que la cámara se mueva lentamente.. No se si me entenderán.. Gracias Feliz Año Nuevo Link to comment
aka Blue Posted December 31, 2015 Share Posted December 31, 2015 Creo que es fadeCamera o también interpolateBetween Link to comment
Sticmy Posted December 31, 2015 Author Share Posted December 31, 2015 Creo que es fadeCamera o también interpolateBetween Mmm voy a intentar hacerlo con esa función interpolateBetween. Link to comment
Alexs Posted December 31, 2015 Share Posted December 31, 2015 Usa un interpolado de las coordenadas (para movimiento no lineal recomiendo la librería Easing adaptada a Lua de EmmanuelOga) y 'setCameraMatrix'. Link to comment
starksZ Posted January 1, 2016 Share Posted January 1, 2016 Usa un interpolado de las coordenadas (para movimiento no lineal recomiendo la librería Easing adaptada a Lua de EmmanuelOga) y 'setCameraMatrix'. Podrías hacer un ejemplo usando esa librería? Link to comment
Alexs Posted January 1, 2016 Share Posted January 1, 2016 Perdón la tardanza. La librería debe ser acomodada, puesto que está hecha para ser importada a un script mediante la función require, pero MTA no permite su uso de manera tan abierta. En cuanto a cada función, los argumentos son: t = Tiempo transcurridob = Extremo inicial del interpoladoc = Tamaño de la interpolacion (final-inicio)d = Duración en tiempo. Acá dejo un ejemplo bastante sencillo: local marker = createMarker (-2405, -598, 132, 'cylinder', .8 ) --Un simple marcador para ver la funcion en ejecucion local s = getTickCount() --Tiempo de inicio local function outBounce(t, b, c, d) --Añado la funcion al codigo t = t / d if t < 1 / 2.75 then --Estas divisiones pueden ser reemplazadas por multiplicaciones, son mas rapidas. return c * (7.5625 * t * t) + b elseif t < 2 / 2.75 then t = t - (1.5 / 2.75) return c * (7.5625 * t * t + 0.75) + b elseif t < 2.5 / 2.75 then t = t - (2.25 / 2.75) return c * (7.5625 * t * t + 0.9375) + b else t = t - (2.625 / 2.75) return c * (7.5625 * t * t + 0.984375) + b end end addEventHandler( 'onClientRender', root, function() local t = getTickCount() - s --Defino t como el tiempo transcurrido. local z = t < 1800 and outBounce(t, 132+4, -4, 1800) or 132 --Altero la variable Z para que en 1800 ms ejecute el interpolado para un total de 4 metros que caen desde 136 metros hasta 132. Asegurate de que la funcion no pase de largo pues no hay nada que detenga su ejecucion mas alla del tiempo de duracion. outputChatBox( t..'/'..z ) setElementPosition( marker, -2405, -598, z ) --Aca utilizo la recien definida Z. end ) Link to comment
Recommended Posts