How to define what member of family to create

Get help using Construct 2

Post » Sun Jul 03, 2016 10:25 pm

Hi.

It it possible to create a copy of a certain object from family at runtime, say, by UID?
Trying to make a kind of "gallery" application for interaсtive kiosk. All paintings are stored as Sprite objects, picked together in family "Paintings", with their properties (author, genre, material, physical size, etc...) saved as family local variables. Pictures are quite small (the larger versions are loaded dynamically at runtime as the are needed), so they are all loaded at startup as global objects, forming a kind of database. The problem is, when it comes to showing some of them, I have to operate on source objects, so it's not possible to have, say, a pair of same pictures on-screen at the same time (to have a row of miniatures, showing one of them at full size, for example), and when they are not needed I have to hide them again. It would be nice to make copies, operate on them and then dispose of them, but when I use "Create oblect "Paintings" it creates a random member, and looks like there is no way to control that.

Is there any solution or walkaround? Creating a long list of conditions and writing a uniqe "create" action for each member won't work, 'cause there are 300+ objects in family and number tends to grow.
B
4
Posts: 8
Reputation: 216

Post » Mon Jul 04, 2016 9:45 am

Only with the help of rex_nickname plugin.

http://c2rexplugins.weebly.com/rex_nickname.html
B
33
S
18
G
28
Posts: 2,493
Reputation: 20,950

Post » Tue Jul 05, 2016 9:34 pm

To 99Instances2Go:

Seems like it does the same thing... What did I do:
1. During initialization process: "For each <myFamilyName> -> Rex_nickname | Assign nickname <someUniqueString> to <myFamilyName>"
2. When certain object is needed: "Rex_nickname | Create <sertainUniqueString> at (X,Y) on layer N"
And it creates a random object from family, like if I used standard "System | CreateObject" approach.

Did I do something wrong?
B
4
Posts: 8
Reputation: 216

Post » Tue Jul 05, 2016 10:02 pm

I have a different Idea, however, you might not like it just make one object called painting or something like that and then make an animation for each painting by name and you could load your paintings using an instance variable on your base object for instance if I added a animation called "pretty" And I had an instance variable called something like "picture to show" on a function or on created have it set the animation to that variable.

If you want to go further you can set up an array on start called master painting list or something which will hold all of your animations names and possibly a ID-Number If you wanted your paintings numbered. All you would need is a for loop to go through that array and find the ID or the number in the array depending on how your spawning them.

This way is a little outside the box to fix your problem I've used it for things like spell icons and inventory slots it should work for a gallery application but you have to re-code everything around that one object or make it the only object in your family.

If you want to talk to me about this just private message me or reply.

Anyways good luck with your project Have a nice day :D
B
12
S
8
G
3
Posts: 33
Reputation: 3,483

Post » Wed Jul 06, 2016 8:32 am

Like this:

https://drive.google.com/open?id=0B1SSu ... k8wejB6Yjg

I should have directed you to the forum entry. Deeply sorry, expected you to do the research.
plugin-nickname-behavior-nickname_t74522
B
33
S
18
G
28
Posts: 2,493
Reputation: 20,950

Post » Wed Jul 06, 2016 6:38 pm

To 99Instances2Go:

Thanks a lot! Honestly, was too tired to do the research!)) Didn't even notice the rex_bnickname behavior 'till tried to load your sample project, and it seems impossible to make things work without it. The thing is when I assign a nickname inside the "for each" loop via family (assigning, say, UID as a nickname), it is probably somehow associated with family object, so when I try to create a member by nickname, it is created randomly, as if it was created via family. However, assigning behaviour with "mode" set to "SID" solves the problem! Thank you!


To Brandon12hummer:

Thank you too for your reply. I thought of using this "animation" trick, however, it wouldn't fit for some reasons. Not even because there will be several hundreds frames of animation (taken as miniatures they are quite small and quick to load). But at some point (when user touches a miniature) a larger version of picture has to be loaded, end even a larger one if user decides to zoom it. And as far as i know there's no way to replace one particular frame at runtime, especially when sizes of frames differ so much (some hi-res versions are 5000+ pixels wide). However, the idea is good for a fixed number of comparable images, so i may use it for something else, thank you anyway!
B
4
Posts: 8
Reputation: 216


Return to How do I....?

Who is online

Users browsing this forum: Baidu [Spider], Yahoo [Bot] and 45 guests