Understanding Sequence of Behaviours: In Search of Speed!
-
@Jack8680 The rest I don't understand what you're saying.
It's making a new variable? Not overwriting it later?
I'm more confused than before. Sorry!
-
@Deeeds the value behaviour is basically like saying
Var value = input
It's not a pointer, so if you reference the value elsewhere it will have the value of the input when the value behaviour is activated.
It is different to a box container because a box container is a pointer when you drag a behaviour output in, so referencing a box container will reference the value of what is selected in the box container.
You can't use set input field on a box container that has a behaviour output selected as its value, so there's no reason to use them this way as you can just reference the behaviour output directly.
Using set input field on a box container that isn't a reference to another behaviour output acts the same as using a value behaviour, but it can be set from multiple places.
-
@Jack8680 said in Understanding Sequence of Behaviours: In Search of Speed!:
It's not a pointer, so if you reference the value elsewhere it will have the value of the input when the value behaviour is activated.
Reading this I'm doubting I understand how behaviours actually work.
I'm missing something.
Can you give a concrete example of where and when you'd have to use a Value container for its benefits (and ways of being) versus somewhere a Box container could only provide the desired results?
-
@Deeeds I rarely use the value behaviour, but an example:
While Touching: { If(While Touching Y < 0): { Value = Value(While Touching X) } } Stopped Touching: { Set label to Value }
When you stop touching the object it will set a label to the last x position you touched it in where the Y position was less than zero.
And an example of using a box container:
Box container A = 0 Started Touching: { If(While Touching X < 0): { Set input field of Box Container A to 1 } If(While Touching Y < 0): { Set input field of Box Container A to 1 } Set label to Box Container A.
This will set the label to 1 if X or Y is negative. Both of these can also be done using the other behaviour, so I guess there isn't a specific reason to use one over the other. There might be a use case I'm not aware of though.
-
@Jack8680 said in Understanding Sequence of Behaviours: In Search of Speed!:
Both of these can also be done using the other behaviour, so I guess there isn't a specific reason to use one over the other.
This is exactly the cognition problem I'm having.
Although I just accidentally dragged a different source into a box container and it took it, and left the old one there, too.
So maybe Box Containers are abstracted arrays posing as a variable and without the need to append, etc.
-
@Deeeds you can add any number(at least I haven’t found a limit) of outputs to a box container. When any one of them is triggered the box container is set to that output. For example, say you have an add values and a subtract values outputs in the box container. A started touching behavior triggers the add values, which is adding the touchx plus 4. Then you have stopped touching trigger the subtract values, and subtract the box container value minus 3.
What will happen is when you touch with an x of 16, the box container will be set to 20. When you stop touching, the box container will be set to 17.For an example of How I usually use box containers, say you have three ifs. If x=1 and if x=2 and if x=3.
Each if will trigger a “value” behavior, set to say 10, 20, and 30.
You put each value behavior’s output into a box container. Then you can multiply some value Y by the box container. So the value you multiply Y by will be set by the if’s.Hopefully that makes some sense.
-
@iTap-Development said in Understanding Sequence of Behaviours: In Search of Speed!:
For an example of How I usually use box containers, say you have three ifs. If x=1 and if x=2 and if x=3.
Each if will trigger a “value” behavior, set to say 10, 20, and 30.
You put each value behavior’s output into a box container. Then you can multiply some value Y by the box container. So the value you multiply Y by will be set by the if’s.In this example (and thank you for your time and consideration), aren't the Box Containers redundant/unnecessary?
-
@Deeeds how would you set it up?
-
@iTap-Development Not what I'm saying.
In the example I've quoted, why do you need the box containers?
-
@Deeeds well, you have to set the input for the multiply, so I guess you could use an attribute or something,but this is less behaviors.
-
@iTap-Development Perhaps I'm reading you wrongly.
What I see you saying is this:
if x is 1, triggers a value behaviour set to 10, this needs to by multiplied by some value Y, which then needs to be multiplied by some other value... for which there's no demonstrated need for a box container, it could be literal, or a "Value Behaviour"*
The box container part of what you're talking about seems superfluous, at best.
*I think "Box Container" is a pretty bad name, but "Value Behaviour" is a special level of poor lexicon/terminology/naming.
-
@Deeeds that’s not quite what I’m saying.
What I’m saying is that Y is going to be multiplied by either 10, 20, or 30. Based on what x is equal to. -
@iTap-Development Yes, I got that... but where is the need for a Box Container?
Note the question above that both I and @Jack8680 are struggling to answer.
Let me paraphrase:
Where is there a need and use for Value Behaviours where Box Containers can't do it?
Where is the need for Box Containers that explains them by showing that Value Behaviours can't do it?
Caveat.... I'm not looking for a single example... I'm looking for the types of examples that articulate and demonstrate their fundamental differences AND show what it is that they actually are, and how one should think of their capacity and functionality, benefits and cons.
In other words, like many of my posts, I'm trying to use subterfuge to help the founders stop floundering in their complete failure to document, guide and instruct on the matters of their own engine/tool.
-
@iTap-Development but... I don't mean that to sound the way it did, about needing lots of examples... just one would be enough. That was weird and wrongly worded.
-
@iTap-Development And... just in case you or anyone else is wondering, this is about speed.
Which provides access fastest and sets fastest?
I had (it seems wrongly) assumed that "Value Behaviours" were kind of like constants, which offer a lot of performance advantages in other languages/environments, not just for the compiler, but also for the OS and the hardware.
It seems they're nothing like that kind of idea... and more like a function parameter without a function.
-
@Deeeds said in Understanding Sequence of Behaviours: In Search of Speed!:
In other words, like many of my posts, I'm trying to use subterfuge to help the founders stop floundering in their complete failure to document, guide and instruct on the matters of their own engine/tool.
Really?
-
@Deeeds okay, how would you set the multiply input with the 10, 20, and 30? Maybe I could give you an example.
-
@GameCRAZY Yes. Really.
Have a re-read of the ones that seem obviously odd. They'll make more sense from this perspective.
-
@iTap-Development Yes, try for an example where the differences between a Value Behaviour and a Box Container are essential to their use. In other words, a situation where they're not interchangeable.
-
@Deeeds not perfect but maybe it will help.