Autor Tema: Animar Wheels para que desaparezcan por un lado (conseguido)  (Leído 1915 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Animar Wheels para que desaparezcan por un lado (conseguido)
« en: Julio 27, 2018, 09:02:03 pm »
Advertisement
Pues lo que quiero conseguir es que la rueda de las wheels de AM, tras unos segundos de inactividad, se vaya por un lado.

Y lo he conseguido, y de la forma que quería, así que aquí lo tenéis:

https://www.youtube.com/watch?v=52tQqPzzsQs

En cuanto termine el layout con el que estoy trabajando podréis ver el código, ya que lo subiré por aquí.
« Última modificación: Agosto 16, 2018, 01:11:37 am por iOtero »



Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #1 en: Julio 28, 2018, 06:53:37 pm »
Tienes que ponerle easing, o sea que cambie la velocidad según pasa el tiempo. Por ejemplo que empiece despacio y se acelere.

Desconectado treme

  • Moderador global
  • *
  • Mensajes: 4679
  • Gracias 159
  • No robes,al gobierno no le gusta la competencia
  • Ciudad: Calera y Chozas
  • Iniciales nick: CCO
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #2 en: Julio 28, 2018, 07:17:50 pm »
Esta chulo tio
No robes....al gobierno no le gusta la competencia

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #3 en: Julio 28, 2018, 07:18:48 pm »
Tienes que ponerle easing, o sea que cambie la velocidad según pasa el tiempo. Por ejemplo que empiece despacio y se acelere.

No están hechas con animate.nut, así que por ahora se quedarán como están...  ;D

Ahora si tú sabes ponerle un easing al conveyor, pues nada, adelante...  8)


Esta chulo tio
Gracias, sobrino...  :P

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #4 en: Julio 28, 2018, 08:49:44 pm »
El ease-out lo puedes hacer muy fácil, por ejemplo:

incx = 1;
inicio loop
wheel.x += incx
incx ++;
fin loop

Es para que veas la lógica!

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #5 en: Julio 28, 2018, 08:56:48 pm »
Vale, tío listo, a ver donde aplicas tu lógica en esto:

Código: [Seleccionar]
// Wheel Move
if(my_config["set_hide"] == "move")
{
if (wheel_hide_ms > 0 && (my_config["wheel_type"] == "vertical wheel"))
{

function wheel_a_move_transition(ttype, var, ttime)
{
if (ttype == Transition.ToNewSelection || ttype == Transition.ToNewList)
first_tick = -1;
}
fe.add_transition_callback("wheel_a_move_transition");

function wheel_a_move(ttime)
{
if (first_tick == -1)
{
stop_moving = false;
}

if (!stop_moving)
{
local elapsed = 0;

if (first_tick > 0)
{
elapsed = ttime - first_tick - wheel_hide_ms;
}

local count = conveyor.m_objs.len();

for (local i=0; i < count; i++)
{
if (elapsed > 0)
{
if(i == count/2)
{
conveyor.m_objs[i].x = ((flx*0.755) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
}
else
{
conveyor.m_objs[i].x = ((flx*0.785) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
}
}
}

if (elapsed > wheel_hide_ms)
{
stop_moving = true;
}

if (first_tick == -1)
{
first_tick = ttime;
}
}
}
fe.add_ticks_callback("wheel_a_move");


if (wheel_hide_ms > 0 && (my_config["wheel_type"] == "arc wheel"))
{

function wheel_a_move_transition(ttype, var, ttime)
{
if (ttype == Transition.ToNewSelection || ttype == Transition.ToNewList)
first_tick = -1;
}
fe.add_transition_callback("wheel_a_move_transition");

function wheel_a_move(ttime)
{
if (first_tick == -1)
{
stop_moving = false;
}

if (!stop_moving)
{
local elapsed = 0;

if (first_tick > 0)
{
elapsed = ttime - first_tick - wheel_hide_ms;
}

local count = conveyor.m_objs.len();

for (local i=0; i < count; i++)
{

if (elapsed > 0 && (my_config["wheel_type"] == "arc wheel"))
{
local wheels = my_config["wheels_a"].tointeger();

if (wheels == 11)
{
switch(i)
{
case 0:
conveyor.m_objs[i].x = ((flx*1.0479) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 1:
conveyor.m_objs[i].x = ((flx*0.9781) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 2:
conveyor.m_objs[i].x = ((flx*0.9167) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 3:
conveyor.m_objs[i].x = ((flx*0.8646) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 4:
conveyor.m_objs[i].x = ((flx*0.8219) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 5:
conveyor.m_objs[i].x = ((flx*0.7922) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 6:
conveyor.m_objs[i].x = ((flx*0.7734) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 7:
conveyor.m_objs[i].x = ((flx*0.7365) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 8:
conveyor.m_objs[i].x = ((flx*0.7740) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 9:
conveyor.m_objs[i].x = ((flx*0.7927) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 10:
conveyor.m_objs[i].x = ((flx*0.8234) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 11:
conveyor.m_objs[i].x = ((flx*0.8656) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 12:
conveyor.m_objs[i].x = ((flx*0.9182) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 13:
conveyor.m_objs[i].x = ((flx*0.9797) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
}
}

if (wheels == 9)
{
switch(i)
{
case 0:
conveyor.m_objs[i].x = ((flx*1.0479) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 1:
conveyor.m_objs[i].x = ((flx*0.9677) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 2:
conveyor.m_objs[i].x = ((flx*0.8984) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 3:
conveyor.m_objs[i].x = ((flx*0.8422) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 4:
conveyor.m_objs[i].x = ((flx*0.8010) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 5:
conveyor.m_objs[i].x = ((flx*0.7760) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 6:
conveyor.m_objs[i].x = ((flx*0.7365) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 7:
conveyor.m_objs[i].x = ((flx*0.7760) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 8:
conveyor.m_objs[i].x = ((flx*0.8016) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 9:
conveyor.m_objs[i].x = ((flx*0.8432) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 10:
conveyor.m_objs[i].x = ((flx*0.8995) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 11:
conveyor.m_objs[i].x = ((flx*0.9688) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
}
}

if (wheels == 7)
{
switch(i)
{
case 0:
conveyor.m_objs[i].x = ((flx*1.0479) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 1:
conveyor.m_objs[i].x = ((flx*0.9526) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 2:
conveyor.m_objs[i].x = ((flx*0.8745) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 3:
conveyor.m_objs[i].x = ((flx*0.8156) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 4:
conveyor.m_objs[i].x = ((flx*0.7797) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 5:
conveyor.m_objs[i].x = ((flx*0.7365) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 6:
conveyor.m_objs[i].x = ((flx*0.7802) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 7:
conveyor.m_objs[i].x = ((flx*0.8167) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 8:
conveyor.m_objs[i].x = ((flx*0.8755) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 9:
conveyor.m_objs[i].x = ((flx*0.9542) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
}
}

if (wheels == 5)
{
switch(i)
{
case 0:
conveyor.m_objs[i].x = ((flx*1.0479) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 1:
conveyor.m_objs[i].x = ((flx*0.9313) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 2:
conveyor.m_objs[i].x = ((flx*0.8422) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 3:
conveyor.m_objs[i].x = ((flx*0.7865) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 4:
conveyor.m_objs[i].x = ((flx*0.7365) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 5:
conveyor.m_objs[i].x = ((flx*0.7870) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 6:
conveyor.m_objs[i].x = ((flx*0.8432) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
case 7:
conveyor.m_objs[i].x = ((flx*0.9328) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;
break;
}
}
}
}

if (elapsed > wheel_hide_ms)
{
stop_moving = true;
}

if (first_tick == -1)
{
first_tick = ttime;
}
}
}
fe.add_ticks_callback("wheel_a_move");

}

Y ahora dirás que también se lo he copiado a no sé quién... :D

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #6 en: Julio 28, 2018, 09:00:57 pm »
Que golpe mas bajo y rastrero... tirarme todo ese código hecho completamente por ti! :P

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #7 en: Julio 28, 2018, 09:03:51 pm »
A primera vista parece ser mejorable, veo ahí unas ristras de switch que seguro se podrían resolver con unos arrays... pero tendría que tener tiempo para meterme en ese código :S

El tema está en esta linea: conveyor.m_objs.x = ((flx*0.8167) * (wheel_hide_ms + elapsed)) / wheel_hide_ms;

O esa, en las lineas similares a esa, que hay montones a lo bestia!!!

A ver quien es el guapo que se meter a modificar eso o refactorizarlo... :(

Desconectado machiminax

  • VIP
  • *
  • Mensajes: 1849
  • Gracias 112
  • Ciudad: indefinida
  • Pais: desconocido
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #8 en: Julio 28, 2018, 09:43:55 pm »
Mola mucho  :)
Creo que si puedes meterle una transicion, este codigo se lo pase a mi 'buen amigo Josepzin' cuando juntos ibamos a crear el layout definitivo de la c64 mini  ;D
La mayor parte ya era codigo suyo  8)

Código: [Seleccionar]
//
// Prueba LEER CFG Y MOSTRAR EN UN TEXTO ALINEADO ARRIBA
// Autor: Josepzin
//



//
//---------- Carga de modulos y archivos externos ----------
// fe.load_module("pan-and-scan");
// fe.load_module("file-format");

fe.load_module( "animate" );




fe.layout.width = 1366;
fe.layout.height = 768;

//local blip = fe.layout.height;
local flx = fe.layout.width;
local fly = fe.layout.height;
local flw = fe.layout.width;
local flh = fe.layout.height;







//
// ----- lista de textos para overviewpistas del album

//create surface for overview
// local overview_surface = fe.add_surface( 640, 480 );

local overview = [];
local overview_anim_tmp;
local overview_anim_alpha = { when = When.Always, time = 2000, property = "alpha", start = 0, end = 255, easing = "in", };

// crear textos
for( local i=0; i<=15; i++ )
{
overview.push( fe.add_text( "" + i, 50, 10 + (i*25) , 800, 25 ) );
}

for( local i=0; i<overview.len(); i++ )
{
overview[i].align = Align.Left;
overview[i].charsize = 18;
overview[i].font = "DroidSansMono";
overview[i].set_rgb( 255, 255, 255 );
overview[i].set_bg_rgb( 0, 0, 50 + (i*10) );

//overview_anim_tmp = { when = Transition.FromOldSelection, time = 300 + (10*i), property = "y", start = -(fly*0.1), end = 5 + (i*26), easing = "in", };
overview_anim_tmp = { when = Transition.FromOldSelection, time = 300 + (10*i), property = "x", start = (flx*0.5) + (i*26) , end = 5, easing = "in", };
animation.add( PropertyAnimation( overview[i], overview_anim_tmp ) );
animation.add( PropertyAnimation( overview[i], overview_anim_alpha ) );
}


local listado;

listado = fe.add_listbox( flx*0.68, fly*0.0, flw*0.32, flh );
listado.rows = 12;
listado.rotation = 0;
listado.bg_alpha = 100;
listado.charsize = 20;

listado.format_string="[Title]";
listado.align=Align.Left;
listado.set_rgb( 255, 255, 255);
listado.set_sel_rgb( 255, 255, 255 );






//
// -------- detectar transiciones
fe.add_transition_callback( "transition" );
function transition( ttype, var, transition_time )
{
if( ttype == Transition.StartLayout || ttype == Transition.ToNewList || ttype == Transition.FromOldSelection )
{
local s1 = fe.game_info(Info.Overview);
::print( "> " + fe.list.index );

local line_str = "";
local max_chars = 71;
for( local i=0; i<overview.len(); i++ )
{
for( local i1=0; i1<max_chars ; i1++ )
{
if( s1.len()>0 )
{
line_str += s1.slice(0, 1);
s1 = s1.slice(1);
if( s1.len()==0 )
{
break;
}
}
}
overview[i].msg = line_str;
line_str = "";
}

}
   return false;
}






Código: [Seleccionar]
local overview_anim_alpha = { when = When.Always, time = 2000, property = "alpha", start = 0, end = 255, easing = "in", };

Yä me cuentas si puedes aprovecharlo, un saludo  ;)

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #9 en: Julio 29, 2018, 04:54:43 am »
Me llueven cuchilladas :D

¿Sigues necesitando mi ayuda para algo?

Desconectado machiminax

  • VIP
  • *
  • Mensajes: 1849
  • Gracias 112
  • Ciudad: indefinida
  • Pais: desconocido
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #10 en: Enero 05, 2019, 03:33:30 pm »
Al final subiste esto?
Yo estoy dandole vueltas a lo siguiente, que el cartucho desaparezca en unos segundos tras detener la wheel.
Si puedes poner tu codigo igual me sirve para lo mio  ;D

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #11 en: Enero 05, 2019, 08:38:39 pm »
En casi todos mis themes está ese código a tu disposición... :D

Desconectado machiminax

  • VIP
  • *
  • Mensajes: 1849
  • Gracias 112
  • Ciudad: indefinida
  • Pais: desconocido
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #12 en: Enero 05, 2019, 08:42:17 pm »
gracias a ver si me animo ä intentar hacerlo.

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #13 en: Enero 05, 2019, 09:17:09 pm »
gracias a ver si me animo ä intentar hacerlo.

Te advierto que es un poco ortopédico el sistema que empleo... porque en el fondo el conveyor es una porquería... y no te deja hacer casi nada.  :P

Desconectado machiminax

  • VIP
  • *
  • Mensajes: 1849
  • Gracias 112
  • Ciudad: indefinida
  • Pais: desconocido
Re:Animar Wheels para que desaparezcan por un lado (conseguido)
« Respuesta #14 en: Enero 05, 2019, 10:03:09 pm »
Creo que abandono , no es algo complicado pero no me veo con ganas  :D
Solo queria meter un delay a un artwork para que pase de alpha 0 a 255.
El problema es que el delay solo me funciona la primera vez.
Despues pasa de 255 a 0 y vuelve a 255  :(

Tenia un layout que hacia eso,estaba intentando que hiciese un efecto tipo abrir una caja al cabo de unos segundos parado en el mismo juego pero no se donde lo meti...
« Última modificación: Enero 05, 2019, 10:04:52 pm por machiminax »

 


* Salón Recreativo #55 (27-04-2024 / 26-05-2024)  Autor: periko Foro: Salón Recreativo FaseBonus 13/05/2024 (17:17)
* [N3DS] Red Viper - Emulando Virtual Boy como Dios manda  Autor: sirdrak Foro: Noticias de emuladores 13/05/2024 (00:53)
* El megapost del ZX Spectrum  Autor: Zael Foro: Offtopic 12/05/2024 (20:30)
* La inteligencia artificial ha llegado a la música  Autor: Zael Foro: Offtopic 12/05/2024 (20:24)
* Info sobre MARP  Autor: empardopo Foro: Records y wolfmame 12/05/2024 (20:09)
* Stop the express  Autor: empardopo Foro: ZX Spectrum 12/05/2024 (20:05)
* Retro 320 - Wizard of wor  Autor: empardopo Foro: Competiciones y concursos 12/05/2024 (20:03)
* Retro Portable Maker ArcadeSpain (RPMA)  Autor: empardopo Foro: Otros programas 12/05/2024 (17:37)
* Recopilatorio Retos: Desde el 1 hasta .....  Autor: montypepa Foro: Competiciones y concursos 05/05/2024 (21:30)
* ¿A qué estáis jugando ahora mismo?  Autor: jmpuk Foro: Offtopic 05/05/2024 (01:05)
* iojukebox Theme, un JukeBox para Attract-Mode  Autor: gucaza Foro: Themes AM 04/05/2024 (02:47)
* Nuevo miniPc para mi vieja recre y juegos Windows compatibles formato 4:3  Autor: jmpuk Foro: Offtopic 02/05/2024 (23:31)
* Homenaje a Locomalito  Autor: beaches Foro: Otros programas 02/05/2024 (23:03)
* [Recomendación] Cine para los findes en casa (bueno, bonito y barato)  Autor: arquillos Foro: Offtopic 02/05/2024 (09:39)
* [Recomendacion] Series para ver  Autor: jmpuk Foro: Offtopic 01/05/2024 (21:54)
* Etpa8: El Reino Subterráneo  Autor: jmpuk Foro: ZX Spectrum 01/05/2024 (21:49)
* Amiga Games + 1.9.2  Autor: empardopo Foro: Emuladores 01/05/2024 (20:58)
* West Bank para ZX Spectrum  Autor: empardopo Foro: ZX Spectrum 01/05/2024 (20:07)
* Patrocinador para el foro ArcadeSpain  Autor: empardopo Foro: Noticias 29/04/2024 (19:37)
* Aprende a hacerte un PORTABLE de tu juego arcade favorito  Autor: empardopo Foro: Records y wolfmame 29/04/2024 (19:27)
* Screenshot de empardopo  Autor: empardopo Foro: Otros programas 24/04/2024 (19:42)
* Concurso Bytemaniacos 2025  Autor: empardopo Foro: Creación de juegos 23/04/2024 (21:46)
* Van dos y se cae el del medio - Hilo de cachondeo general  Autor: empardopo Foro: Offtopic 21/04/2024 (18:47)
* Hacer fondos de pantalla con Excel para Spectrum  Autor: empardopo Foro: Creación de juegos 18/04/2024 (19:33)

Countdown
Buscaunchollo.click