Attract-Mode Support Forum
Attract-Mode Support => Themes => Topic started by: iOtero 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:
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.
-
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.
-
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:
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 (http://://github.com/keilmillerjr/helpers-module)
I have copied the module "module.nut" in "E:\arcade\attract\ modules", renaming it "module-master.nut".
-
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.
-
Solved:
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.
-
Solved:
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.
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;
-
Thanks, it's a good idea, I'll try it. :D
-
The two options work, but both have a small problem: When AM start, the first image is always the same, the others are random, but the one at the beginning, always the same position: 4 in 0-12 or 10 in 0-30.
Many years ago, when ms-dos, I had to do a pseudo-random, and so that it would not happen to me, I took the random seed of the clock: current second.
Sorry for my bad english... :-[
-
The two options work, but both have a small problem: When AM start, the first image is always the same, the others are random, but the one at the beginning, always the same position: 4 in 0-12 or 10 in 0-30.
Many years ago, when ms-dos, I had to do a pseudo-random, and so that it would not happen to me, I took the random seed of the clock: current second.
Sorry for my bad english... :-[
Your English is great.
The math.rand() squirrel function should deliver pseudo random integers according to electric imp. However, I think how it is generated depends on the processor used.? What’s your platform?
-
Windows 10 with Intel Core i7-4790K 4.0 Ghz.
-
Another simple solution is put some "random" jpg´s into the "scrapper/[sytem]" folder.
I mean , you have a "NES" layou.nut with something like
fe_add.artwork = icon...
Then just create a folder "scrapper/nes/icon"
Inside 1.jpg , 2.jpg , 3.jpg or wathever you want :D
-
Another simple solution is put some "random" jpg´s into the "scrapper/[sytem]" folder.
I mean , you have a "NES" layou.nut with something like
fe_add.artwork = icon...
Then just create a folder "scrapper/nes/icon"
Inside 1.jpg , 2.jpg , 3.jpg or wathever you want :D
Thanks, a great idea... :D but i do not use the scrapper for nothing at all ::)
-
Another simple solution is put some "random" jpg´s into the "scrapper/[sytem]" folder.
I mean , you have a "NES" layou.nut with something like
fe_add.artwork = icon...
Then just create a folder "scrapper/nes/icon"
Inside 1.jpg , 2.jpg , 3.jpg or wathever you want :D
Thanks, a great idea... :D but i do not use the scrapper for nothing at all ::)
Don`t need to use it , just create the folder structure and put your media inside :)
-
Well ido not see the difference in what you tell me what I do:
local my_film = randInt(30);
my_film = my_film.tostring() + ".png";
local film = fe.add_image("posters/films/" + my_film, 0, 0, flw*0.408, flh*0.6);
Something is slipping away ... :D
(Me lo vas a tener que explicar en español, a ver si asà me entero mejor) :)
-
The two options work, but both have a small problem: When AM start, the first image is always the same, the others are random, but the one at the beginning, always the same position: 4 in 0-12 or 10 in 0-30.
There is no solution for this bug?
-
Another thing, keilmillerjr...
This line of code
local film = fe.add_image("posters/films/" + films[randInt(films.len())] + ".png", 0, 0, 0, 0);
has a small error.
This would be the correct
local film = fe.add_image("posters/films/" + films[randInt(films.len()-1)] + ".png", 0, 0, 0, 0);