Autor Tema: Ejecutar proceso en segundo plano  (Leído 1429 veces)

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

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Ejecutar proceso en segundo plano
« en: Octubre 12, 2017, 10:28:08 pm »
Advertisement
Este es el código que usé para el layout de Jukebox que hice, lo usé para mostrar el tiempo que lleva la canción.

Código: [Seleccionar]
// proceso que se ejecuta cada tick
fe.add_ticks_callback( this, "tick" )
function tick( tick_time )
{
// tiempo de ticks en segundos
// local t = tick_time / 1000;
// tiempo de ticks en minutos
// local t = tick_time / 60000;
}

Y ya está, es muy simple.

Todo lo que se ponga en esta función se estará ejecuntando por cada tick, o sea 1000 veces por segundo!! (EDITO: igual no se ejecuta tantas veces... no sé.)

Yo usé una variable de accion, asi que por ejemplo si tengo que actualizar el nombre de una cancion asigno accion = "titulo";

Y dentro de function tick hice un switch (o if) donde pregunto por las distintas acciones, hago la actualizacion y asigno accion = false; asi evito que se esté actualizando constantemente.

Las variables que se declaran en la raiz del layout son globales, asi que las actualizaciones de textos o de imagenes se pueden hacer sin problema desde dentro de las funciones.

Hice otro proceso para detectar las pulsaciones de teclas, pero creo que mejor ponerlo en otro hilo.

No tiene mucho secreto pero cualquier cosa preguntad-.


Ejemplo no funcional...
- player_update: es para indicar que hay que actualizar el título de la cancion, album e imagen
- player_snap: objeto imagen que muestra la portada del album que se está escuchando
- player_title: titulo con el nombre de la cancion
Código: [Seleccionar]
fe.add_ticks_callback( this, "tick" )
function tick( tick_time )
{
if( player_list.len()>0 && player_update==true )
{
// cargar imagen del album - folder = carpeta del album actual
player_snap.load_from_archive( folder, "Folder.jpg" );

// titulo de la cancion seleccionada
player_title.msg = title;

player_update = false;
}
}
« Última modificación: Octubre 12, 2017, 10:43:29 pm por Josepzin »



Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21753
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:Ejecutar proceso en segundo plano
« Respuesta #1 en: Octubre 13, 2017, 09:21:55 am »
Muchísimas gracias por compartirla y esa de pulsaciones de teclas también la veo interesante para ir aprendiendo entre todos.

Nuevamente mil gracias por compartirla que estoy seguro que a más de uno entre los que me incluyo le vendrá bien.

Saludos

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Ejecutar proceso en segundo plano
« Respuesta #2 en: Octubre 13, 2017, 01:16:59 pm »
En realidad estas cosas casi siempre son una chorrada pero cuesta encontrar el ejemplito justo de lo que se necesita.

Desconectado machiminax

  • VIP
  • *
  • Mensajes: 1849
  • Gracias 112
  • Ciudad: indefinida
  • Pais: desconocido
Re:Ejecutar proceso en segundo plano
« Respuesta #3 en: Octubre 13, 2017, 04:18:01 pm »
En realidad estas cosas casi siempre son una chorrada pero cuesta encontrar el ejemplito justo de lo que se necesita.
A ver si ponemos el lector de manuales , que no doy conseguido ponerlo.
Me ha ayudado el "kalimenjr" del foro de AM , a el le va en MAC
A mi en windows ni de coña.
Alguien se anima a intentar ponerlo a punto?
Si hay voluntarios abro un post con la explicacion de lo que me ha dicho que hay que hacer.
Seguro que es una chorrada lo que estoy haciendo mal , pero me imagino que el comando cambiara cualquier simbolo de mac a windows y por eso no hay manera.

Por cierto esto mola mucho , gracias por compartirlo.

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21753
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:Ejecutar proceso en segundo plano
« Respuesta #4 en: Octubre 13, 2017, 07:22:43 pm »
En realidad estas cosas casi siempre son una chorrada pero cuesta encontrar el ejemplito justo de lo que se necesita.
A ver si ponemos el lector de manuales , que no doy conseguido ponerlo.
Me ha ayudado el "kalimenjr" del foro de AM , a el le va en MAC
A mi en windows ni de coña.
Alguien se anima a intentar ponerlo a punto?
Si hay voluntarios abro un post con la explicacion de lo que me ha dicho que hay que hacer.
Seguro que es una chorrada lo que estoy haciendo mal , pero me imagino que el comando cambiara cualquier simbolo de mac a windows y por eso no hay manera.

Por cierto esto mola mucho , gracias por compartirlo.

Abre un hilo @machiminax y explica exactamente lo que quieres/necesitas hacer... Mientras más info mejor.

@Josepzin, esta función es la que comentaste que serviría para hacer lo de la rotación de una imagen, verdad?

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Ejecutar proceso en segundo plano
« Respuesta #5 en: Octubre 13, 2017, 07:54:42 pm »
Si, yo creo que dentro de esta función podrías poner el código que rota la imagen, para que se vaya rotando de a poco, ya sea usando rotation o alguna otra forma.

Ojo que yo llegué aquí hace dos días, igual hay una forma mejor de hacer esto...

Para acomodar las capturas en un televisor con perspectiva usan estas opciones:
Código: [Seleccionar]
local tvStatic = fe.add_image( "static.jpg", blip*0.129, blip*0.357, blip*0.304, blip*0.295);
tvStatic.skew_x = Setting("aspectDepend", "snap_skewX");
tvStatic.skew_y = Setting("aspectDepend", "snap_skewY");
tvStatic.pinch_x = Setting("aspectDepend", "snap_pinchX");
tvStatic.pinch_y = Setting("aspectDepend", "snap_pinchY");
tvStatic.rotation = Setting("aspectDepend", "snap_rotation");

A esto le puedes sumar la deformacion alterando ancho o alto, no tengo claro qué efecto quieres hacer, si sólo es rotar en eje Z lo tienes fácil: .rotation

Habría que ver cómo hacer que el angulo de rotacion se vaya incrementando cada n ticks, supongo que podría ser algo asi:

Código: [Seleccionar]
local tick_rotation = 0;
function tick( tick_time )
{
if( tick_time > tick_rotation )
{
// sumar angulo de rotacion al logo

tick_rotation = tick_time + 1000;
}
}
Mientras mas grande sea el valor "1000", mas lenta la rotacion.
« Última modificación: Octubre 13, 2017, 07:56:14 pm por Josepzin »

Desconectado machiminax

  • VIP
  • *
  • Mensajes: 1849
  • Gracias 112
  • Ciudad: indefinida
  • Pais: desconocido
Re:Ejecutar proceso en segundo plano
« Respuesta #6 en: Octubre 13, 2017, 08:58:58 pm »
Para rotar una imagen ya teneis el codigo que puse hace un milenio para los cds.
Ahi teneis el cd girando.



Código: [Seleccionar]
local cdart_rotation = {
    when = Transition.ToNewSelection ,property = "rotation", start = 0, end = 360, time = 3000, loop = true
 }

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Ejecutar proceso en segundo plano
« Respuesta #7 en: Octubre 13, 2017, 09:52:47 pm »
Es lo que yo decía, eso parece una forma mucho mejor!!

Parece una forma de hacer transiciones entre dos valores.

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Ejecutar proceso en segundo plano
« Respuesta #8 en: Octubre 23, 2017, 05:26:40 am »
@machiminax, podrías desarrollar/explocar un poco ese código que pusiste?? he intentado usarlo pero no me entero... :S

Desconectado machiminax

  • VIP
  • *
  • Mensajes: 1849
  • Gracias 112
  • Ciudad: indefinida
  • Pais: desconocido
Re:Ejecutar proceso en segundo plano
« Respuesta #9 en: Noviembre 06, 2017, 05:11:05 pm »
@machiminax, podrías desarrollar/explocar un poco ese código que pusiste?? he intentado usarlo pero no me entero... :S

No vi la pregunta hasta hoy :)
Mas o menos seria algo asi , ahora no tengo aqui el "layout.nut"

http://attractmode.org/docs/Layouts.html#add_artwork


Código: [Seleccionar]
local cdart = fe.add_artwork( "cdart", 746, 272, 550, 424 );
Y le añades la "animacion"

Código: [Seleccionar]
local cdart_rotation = {
    when = Transition.ToNewSelection ,property = "rotation", start = 0, end = 360, time = 3000, loop = true
 }

Luego necesitas esta parte , se me olvido ponerla  ;D

Código: [Seleccionar]
animation.add( PropertyAnimation( cdart, cdart_rotation ) );
Luego necesitarias añadir la ruta de este artwork en tu "emulator.cfg"
Si por ejemplo tienes un "Sony Playstation.cfg" y los cds en "Y:\Media\Sony Playstation\Cds"

Código: [Seleccionar]
artwork    cdart           Y:\Media\Sony Playstation\Cds
« Última modificación: Noviembre 06, 2017, 05:16:57 pm por machiminax »

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21753
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:Ejecutar proceso en segundo plano
« Respuesta #10 en: Noviembre 08, 2017, 06:58:04 pm »
@machiminax, muchas gracias

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Ejecutar proceso en segundo plano
« Respuesta #11 en: Noviembre 09, 2017, 01:27:10 pm »
Lo he probado y efectivamente es muy fácil de usar!

Lo que no pude hacer (ya lo dejo para la próxima) es animaciones con varias acciones al mismo tiempo, por ejemplo rotar y escalar.

O sea, sí lo pude hacer asignando cada accion pero vi que hay una mejor manera de hacer estas cosas.

Así lo hice, el logo del sistema aparece con un alfa y cambia el tamaño.
Código: [Seleccionar]
animation.add( PropertyAnimation( system_logo, anim_logo_alpha ) );
animation.add( PropertyAnimation( system_logo, anim_logo_scale ) );

 


* El megapost del ZX Spectrum  Autor: empardopo Foro: Offtopic 20/05/2024 (20:22)
* [Recomendación] Cine para los findes en casa (bueno, bonito y barato)  Autor: empardopo Foro: Offtopic 20/05/2024 (20:22)
* [Recomendacion] Series para ver  Autor: empardopo Foro: Offtopic 20/05/2024 (20:21)
* Retro 320 - Wizard of wor  Autor: empardopo Foro: Competiciones y concursos 20/05/2024 (20:18)
* [PS4] PS4 5.05 - Should I Stay or Shoud I Go?  Autor: empardopo Foro: Consolas actuales 20/05/2024 (20:16)
* MPAGD (Multi Platform Arcade Game Designer)  Autor: empardopo Foro: Creación de juegos 20/05/2024 (20:14)
* Ayuda con configuración emulador PXSX2  Autor: empardopo Foro: Emuladores 20/05/2024 (20:10)
* Salón Recreativo #55 (27-04-2024 / 26-05-2024)  Autor: beaches Foro: Salón Recreativo FaseBonus 20/05/2024 (16:58)
* Música y artistas aptos para nuestra jukebox  Autor: Zael Foro: Offtopic 19/05/2024 (12:20)
* Van dos y se cae el del medio - Hilo de cachondeo general  Autor: joselopez Foro: Offtopic 16/05/2024 (00:56)
* ¿A qué estáis jugando ahora mismo?  Autor: joselopez Foro: Offtopic 16/05/2024 (00:35)
* Amiga Games + 1.9.3  Autor: empardopo Foro: Emuladores 15/05/2024 (20:48)
* Ofertas Amazon  Autor: empardopo Foro: Offtopic 15/05/2024 (20:33)
* [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)
* 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)
* 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)
* Etpa8: El Reino Subterráneo  Autor: jmpuk Foro: ZX Spectrum 01/05/2024 (21:49)
* 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)

Reto 320: Wizard of Wor
Buscaunchollo.click