Autor Tema: Animar Wheels para que desaparezcan por un lado (conseguido)  (Leído 2125 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 »

 


* ZX Touch o el timo de la estampita  Autor: sirdrak Foro: Retroconsolas 05/06/2024 (06:07)
* Salón Recreativo #55 (27-04-2024 / 26-05-2024)  Autor: hoz3 Foro: Salón Recreativo FaseBonus 04/06/2024 (05:52)
* Amiga Games + 1.9.6  Autor: empardopo Foro: Emuladores 03/06/2024 (20:21)
* El megapost del ZX Spectrum  Autor: empardopo Foro: Offtopic 03/06/2024 (20:13)
* ASUS, ¿me engaña, me tima o se rie de mí?  Autor: empardopo Foro: Offtopic 03/06/2024 (20:09)
* [PS4] PS4 5.05 - Should I Stay or Shoud I Go?  Autor: empardopo Foro: Consolas actuales 03/06/2024 (20:07)
* Retro Portable Maker ArcadeSpain (RPMA)  Autor: empardopo Foro: Otros programas 03/06/2024 (20:03)
* Volante PXN V9 - ¿Ganga... o tongo?  Autor: Zael Foro: Reviews tecnológicas 01/06/2024 (12:08)
* MPAGD (Multi Platform Arcade Game Designer)  Autor: Zael Foro: Creación de juegos 31/05/2024 (11:32)
* Ofertas Amazon  Autor: empardopo Foro: Offtopic 30/05/2024 (19:35)
* Retro 320 - Wizard of wor  Autor: empardopo Foro: Competiciones y concursos 28/05/2024 (20:58)
* GB-Operator (Emulador GB/GBC/GBA en PC)  Autor: Zael Foro: Retroconsolas 28/05/2024 (20:12)
* [Recomendación] Cine para los findes en casa (bueno, bonito y barato)  Autor: arquillos Foro: Offtopic 27/05/2024 (11:38)
* ¿A qué estáis jugando ahora mismo?  Autor: joselopez Foro: Offtopic 25/05/2024 (01:08)
* Ayuda con configuración emulador PXSX2  Autor: Zael Foro: Emuladores 24/05/2024 (10:39)
* Salón Recreativo FaseBonus - Preparativos y Sugerencias  Autor: Zael Foro: Salón Recreativo FaseBonus 24/05/2024 (10:21)
* Música y artistas aptos para nuestra jukebox  Autor: empardopo Foro: Offtopic 22/05/2024 (20:02)
* [Recomendacion] Series para ver  Autor: empardopo Foro: Offtopic 20/05/2024 (20:21)
* Van dos y se cae el del medio - Hilo de cachondeo general  Autor: joselopez Foro: Offtopic 16/05/2024 (00:56)
* [N3DS] Red Viper - Emulando Virtual Boy como Dios manda  Autor: sirdrak Foro: Noticias de emuladores 13/05/2024 (00:53)
* 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)
* Recopilatorio Retos: Desde el 1 hasta .....  Autor: montypepa Foro: Competiciones y concursos 05/05/2024 (21:30)
* 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)

Reto 320: Wizard of Wor
Buscaunchollo.click