Request: SetCharacterSpeed while character is moving.

Started by bspeers, Tue 29/04/2003 05:05:21

Previous topic - Next topic

bspeers

I know that this is tough to do (else you would have implemented it long ago), but I was wondering, with all this back-to-basics stuff, if this could be included soon?

The advantages are numerous... players run into this error often, and dynamic speed would mean acceleration and realistic rebound effects would be possible.  Falling faster and faster, walking and then running, a proper jumping ability, etc, etc.

There are workarounds for most of this, but eliminating the limitation just seems simpler.  But if it can't be done without an immense ammount of work, don't concern yourself.  Just noting the "back to basics" trend and wondered if you wanted to hit the beginning much longer.

Thanks!
I also really liked my old signature.

scotch

It's been asked for a lot of times.. the problem I think was that the pathfinding calculates the whole movement before it happens so it cant change speed while moving.. something like that.

It's on the list.  The one feature that would make AGS perfect for me :)

Pumaman

scotch is correct about the reason for this limitation.

But yes, movement speed issues are the most complained about part of AGS nowadays, especially the fact that you can't have seperate X and Y speeds, and that the speed doesn't scale with the character scaling.

So it's definately something I'll have a longer look at, see how much work it would be to implement.

Squinky

Since were on this subject, I'll throw out my question:

Is there anyway to have even slower speeds? My problem is that I like to use small chars and they move way to fast...


scotch

yeah being able to have a non integer speed like 0.3 would be nice, you could fine tune your walk speeds more and have slower speeds for things like little map characters.

Gilbert

But that'll make calculations complicated, the reason for the integer speed is because I think currently character speed means pixel-offset moved in each frame (correct me if I'm wrong), if you can set it to any arbitrary decimal value, the problem is that it has to calculate everything by scale, for example, a speed of 0.3 means EGO walks 3 pixels in 10 frames, you have to divide these 3 pixel offset "evenly" accross the 10 frames, which is not very practical.

Currently, a way to make EGO move slower is to use SetGameSpeed() to set the game to a lower frame rate (if you don't mind all animations to be run at lower frame rate), but a possible problem resulting from this is that the mouse cursor movement may become choppy and irresponsive.

Actually, what I'm thinking is that we may have it an alternative way, that is, the character speed can be alternately set to pixel offset moved every n loops. And what I thought of is that, you may just use one single integer value to determine which method is use (so not much change needed), if the character speed is +ve, he moves n pixels/frames, if it's -ve, he moves 1 pixel/n frames, so we have something like:

Code: ags

charspeed        effect
      10               moves 10 pixels per frame
       -10             moves 1 pixel per 10 frames

Pumaman

That's a good idea actually Gilbert.

Yeah, AGS uses integer calculations for movement, mainly for speed reasons, but also for the reasons Gilbert mentioned.

But having negative speeds to move even slower is possible to do this way.

Gilbert

Quote from: CJ on Fri 02/05/2003 14:21:15
But having negative speeds to move even slower is possible to do this way.

That way, I think Helm is going to make Snail Quest 4 ;D

SMF spam blocked by CleanTalk