Author Topic: Put a random icon on the screen. (SOLVED)  (Read 183 times)

zlagos

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Put a random icon on the screen. (SOLVED)
« on: May 17, 2018, 05:30:24 AM »
To put on the screen of my layout a certain icon of the path / icons, I use the following code:

Code: [Select]

local icon = fe.add_image("icons/icon01.png", flx*0.215, fly*0.025, flw*0.1, flh*0.08);
icon.preserve_aspect_ratio = true;
icon.trigger = Transition.EndNavigation;


And it works perfectly.
   
But what I want is to put on the screen any of the icons contained in /icons in a random way, that comes out any of those that are inside /icons.

But I do not know how to do it. And I do not find anything either. Somebody could help me?

Sorry for my bad english.

Thanks in advance.
« Last Edit: May 17, 2018, 02:54:49 PM by zlagos »

keilmillerjr

  • Sr. Member
  • ****
  • Posts: 467
    • View Profile
Re: Put a random icon on the screen.
« Reply #1 on: May 17, 2018, 07:07:02 AM »
I created a random function.

https://github.com/keilmillerjr/helpers-module/blob/master/readme.md

Pass array length. It return number. Use it as index in array to update image on your transition.

zlagos

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Put a random icon on the screen.
« Reply #2 on: May 17, 2018, 07:50:02 AM »
I created a random function.

https://github.com/keilmillerjr/helpers-module/blob/master/readme.md

Pass array length. It return number. Use it as index in array to update image on your transition.


Okay thank you very much.
But, I'm not an expert programmer.

I tried this, but it does not work for me:

Code: [Select]
fe.load_module( "module-master" );

// Posters
local my_film = randInt(6);

local film = fe.add_image("posters/films/[my_film].png", 0, 0, flw*0.4, flh*0.3);
film.preserve_aspect_ratio = true;
film.trigger = Transition.EndNavigation;


Being 1.png, 2.png, etc. my film icons.

And I do not know what I'm doing wrong ... I'm sorry.

Edit:

The module.nut I downloaded it from here:
://github.com/keilmillerjr/helpers-module

I have copied the module "module.nut"  in "E:\arcade\attract\ modules", renaming it "module-master.nut".
« Last Edit: May 17, 2018, 08:30:56 AM by zlagos »

keilmillerjr

  • Sr. Member
  • ****
  • Posts: 467
    • View Profile
Re: Put a random icon on the screen.
« Reply #3 on: May 17, 2018, 10:21:40 AM »
Break your string and insert the variable and then continue the string.

Too many languages I do and stressed out at work. Format either “str” . var . “str” or substitute the periods for plus signs.

If you can’t figure it out, I’ll do you up a chunk of code to try - tonight.
« Last Edit: May 17, 2018, 10:24:13 AM by keilmillerjr »

zlagos

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Put a random icon on the screen.
« Reply #4 on: May 17, 2018, 02:54:23 PM »
Solved:

Code: [Select]
local my_film = randInt(6);
my_film = my_film.tostring() + ".png";
local film = fe.add_image("posters/films/" + my_film, 0, 0, 0, 0);

Thank you very much.

keilmillerjr

  • Sr. Member
  • ****
  • Posts: 467
    • View Profile
Re: Put a random icon on the screen.
« Reply #5 on: May 17, 2018, 05:30:43 PM »
Solved:

Code: [Select]
local my_film = randInt(6);
my_film = my_film.tostring() + ".png";
local film = fe.add_image("posters/films/" + my_film, 0, 0, 0, 0);

Thank you very much.

I didn’t test it, but something like this might be easier than numeric file names. Try it and let me know if it works. You can have file names such as „Predator.png“. Include the file extension in the array if they vary, but it’s good practice to have everything uniform if you can.
Code: [Select]
fe.load_module("helpers-module");

local films = [
  "Predator",
  "The Terminator",
  "Total Recall",
]

local film = fe.add_image("posters/films/" + films[randInt(films.len())] + ".png", 0, 0, 0, 0);
film.preserve_aspect_ratio = true;
film.trigger = Transition.EndNavigation;

zlagos

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Put a random icon on the screen. (SOLVED)
« Reply #6 on: May 20, 2018, 05:59:23 AM »
Thanks, it's a good idea, I'll try it.  :D