# phaser Acceleration display faster and faster

## Recommended Posts

Hi, most (scaffold) on my first game I've ready so far. but on one thing I have a problem. My speedometer to show the speed, but no real benefit to the game, he will only increment beautiful.

So far I have an indication of speed. Example: Your Speed: 70 Mp / h.
When I press the start button, the speed goes from 0 to 100 in zero seconds. That's OK for the Play-Character, but only I want that runs the display logarithmic.
Example: 0 Mp/h ...., - slow up ....,  - slow ...., - faster ...., - faster ...., - faster ...., - very fast ....., - very very fast ...., Highspeed Mp/h

A short version as Gimp animation.

I would also like to use it for the score display. As I said: No impact on the game, just look pretty.

T
he concrete Problem: I do not know any formula for it. I tried it with a FOR loop. But the computer is too fast. The result remains 0 to 70 in zero seconds.

Can anyone help me out with a minimalist, sample script? For a beginner.

Thx Pinkman

##### Share on other sites

if this is purely visual, then you can just increment in the update loop like so:

``````create() {
this.speedCount = 0;
this.mySpeed = 0;
}

update() {
this.speedCount+= 0.1;
mySpeed = Math.round(this.calcNewSpeed();
mySpeedText.setText(mySpeed.toString());
}

calcNewSpeed() {
return Math.Exp(this.speedCount);
}``````

What this will do, is increment the speed counter by 0.1 every tick and use Math.Exp (exponential) : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/exp and then updates the actual speed then the text accordingly from this. What you should see, is that math.exp returns the following

0.1 = 1.01....

0.2 = 1.22...

0.3 = 1.34...

0.4 = 1.49...

0.5 = 1.68..

...

1.5 = 4.48...

What you will notice, is that as the incremented value increases, the incremented speed increases faster, hence exponential. You may want to speed up, or slow the rate at which it is sped up by simply changing the this.speedCount object in the create function

This should be enough to get you started

##### Share on other sites

5 hours ago, megmut said:

This should be enough to get you started

Hay megmut, yes it does!

I have it still do not get to run, something I decide wrong, but I'll manage it already.

Your obligatory built-fault and additional test order (one missing bracket) I've already discovered

Thanks for your valuable help!

When the game is finished, I will present it here. Please be patient.

Best regards
Pinkman

##### Share on other sites

You can also use Phaser.Tween to tween the variable. Then in update function just set text based on current value:

``````create() {
this.mySpeed = 0;
this.add.tween(this).to({mySpeed: 100}, 1000 /* duration in ms */, Phaser.Easing.Linear.None /* easing function */, true);
}

update() {
this.mySpeedText.text = this.mySpeed.toString();
}``````

Then you can easily change easing function to produce different counter speeds (linear, parabolic, exponential, ...)

##### Share on other sites

@Tom Atom this is amazing, I had no idea you could tween a variable! This will save me so much time in the future! Thanks haha

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.