Normalizing variables with maths?

Get help using Construct 2

Post » Wed Jun 12, 2013 4:14 am


Hi again mathemancers!

Okay so I need to normalize a variable.

i.e. I have variable X and variable Y, and I want Y to always tend towards X. So if Y is greater than X, reduce Y. And if Y is less than X, increase Y.

Normally I would of course do this using IF statements, but that's kinda infeasible (or unreasonably complicated) for what I'm currently working on and I'm really hoping there's a maths algorithm than can be used here.


Cheers!
B
5
Posts: 85
Reputation: 395

Post » Wed Jun 12, 2013 4:53 am

If I have understood correctly what you want to do, then using an IF is not complicated at all. Just put this in Construct.

Condition:   Y < X ; Action:    Set Variable Y to Y + 1
Condition:   Y > X ; Action:    Set Variable Y to Y - 1


For the first one, while Y is smaller than X, it adds +1 to Y each time the event is checked.
This event runs roughly 60 times per second, so it would mean Y would be changed by roughly 60 in the course of a second. Change +1/-1 to anything else to increase/reduce the speed of change.

If you want to set it to another value immediately, just change
Set Variable Y to Y + 1
to
Set Variable Y to <Value>Xionor2013-06-12 05:00:31
B
10
S
3
Posts: 233
Reputation: 1,537

Post » Wed Jun 12, 2013 5:13 am

Thanks, I think I've found a workaround for my original problem, but the reason I don't want to use IF statements is as follows:

What I'm doing is setting a value AngleOfMotion which dictates the movement of an object. I want to set AngleOfMotion each tick using the variables AngleOfMomentum and AngleOfGravity. So what I want is for AngleOfMotion to start off as AngleOfMomentum and then move towards AngleOfGravity. But there are constantly random forces acting on the object which change the AngleOfMomentum, so I'm basically trying to figure a way to get an object to fall in a natural arc, but still react to any forces applied to it. Without using built in physics (they everything up).

And I confuse myself just thinking about it :P

So I suppose what I was looking for was:
AngleOfMotion = (Half way between AngleOfMotion and (Half way between AngleOfMomentum and AngleOfGravity))

That's where it starts to get complex.
B
5
Posts: 85
Reputation: 395


Return to How do I....?

Who is online

Users browsing this forum: menos30, mercuryus, RetroSpock, TRMG and 12 guests