Arima
So, from that example Arima as I now understand it thanks to your
fantastically layed out and simplified written view of how it works,
because at 1fps timedelta in that expression will result with 100,
and 10fps it will result with 10, the time passes as:
1 x 100 = 100,
and
10 x 10 = 100,
in other words it will end up traveling the same amount.
Thank you so much for that example, it really allowed it to make sense
for me, I greatly appreciate it!
------------------------------------------------------------------
------------------------------------------------------------------
tulamide
I'm not using this for movement, however I understand what you mean
by only using one method as it would easily unsynch the gameplay
if you were to use different methods in the same game.
Thanks a lot for that information, I hadn't recognized or thought
about that but that certainly makes sense how you put it. An event
can't run every 1ms if it can't register that amount of time passing,
and would make the event occur basically whenever it could, cause
at 60fps every frame that is registered would have passed a millisecond,
and it wouldn't know a millisecond had occurred between those frames
because it wouldn't have been there to find out.
wait
That I've found is next to useless, it constantly caused errors in
the event hierarchy because it would re-check the above variables
after the time had passed instead of only causing a delay before the
next action occurred.
For example, if you had it check if a private variable were equal to 0
before running some events, one of which would need to change that variable
to 1, when it reached the next action after waiting maybe 200 milliseconds,
the events condition wouldn't be valid anymore and it won't occur.
timer
that's what I've had to use for objects so far, but it becomes an issue
very easily.
#1 if there is more than one object on the screen (if it's an enemy in which multiple enemies would be created, you couldn't get a timer to
start on individual enemies without it occurring on others. For some objects that I have destroy after a certain amount of time, even if there are multiple you can use that timer by only setting the timer
when a condition that a variable is equal to 0 is met, then change that
to 1 after the timer is set in the same event. But that only works because you only need to use the timer once and it's an event based off the objects creation.
#2 if you want multiple areas of an object to be based off time, it'd very easily become a large hassle and difficult to manage if you kept having to create private variables and setting them to time and checking them.
Both of these issues are the reasons causing me to currently use ticks
for some events, but now I recognize that's certainly no safe option,
however you can't run events after 'x' timedelta or anything like that.
Even with a global variable if multiple objects/events used it it wouldn't help to set a single global variable to 'Time' and keep
setting and then checking after time has passed with that.
The timeline object would in a way share the problems described above
for the timestamp solution.
The reason I want some events to not be affected by timescale, is I want
to slow down the world by using timescale (all events/objects/etc), however
some things I don't want to slow down, for example how long a text object
spawned off an enemy displaying the damage they have taken would last
before being destroyed.