I think that "velocity"  be Math.sqrt(vel_x*vel_x + vel_y*vel_y). This
is the length of the vector (vel_x, vel_y). The rest of the code looks
right to me.

                       Dan

Boden, Donovan wrote:

This isn't quite the proper forum to ask about that, but I do have an
answer.

Your velocity is equal to the absolute value of (vel_x * vel_y), so
calculate what vel_x and vel_y are. Then test to see if they are over
max_velocity. If they are scale them back down to fix within
max_velocity.

   float velocity = Math.abs(vel_x * vel_y);
   if (velocity > max_velocity) {
     vel_x *= max_velocity / velocity;
     vel_y *= max_velocity / velocity;
   }

I think this code will work. I didn't test it.

Donovan Boden

-----Original Message-----
From: Discussion list for Java 2D API
[mailto:[EMAIL PROTECTED] On Behalf Of Flavius Alecu
Sent: Wednesday, May 11, 2005 1:01 PM
To: [EMAIL PROTECTED]
Subject: [JAVA2D] Acceleration and movement problem

I'm trying to make a game with a space ship that has the same physics as
the "Asteroids" ship. you can rotate the ship and accelerate towards the
direction the ship is pointing and no air resistance to slow the ship
down. If you want to stop, you need to accelerate in the opposite
direction of your movement.

Anyway, everything works ok except for one thing: I don't have a
max_velocity value. That is, i haven't coded a speed limit for the ship.
Why I haven't done that is because I don't know how.

The game is 2D and programmed in Java using Jogl. A textured polygon is
the ship and I rotate it using glrotatef(). I have a vel_x and a vel_y
value which keeps track of the velocity of the ship on each axis. I also
have a variable angle, which keeps track of where the ship is pointing
so I know in which direction to accelerate the ship when the user
presses the up-arrow.

Anyone have any clue how I can implement a speed limit?

Thanx a lot

========================================================================
===
To unsubscribe, send email to [EMAIL PROTECTED] and include in the
body of the message "signoff JAVA2D-INTEREST".  For general help, send
email to [EMAIL PROTECTED] and include in the body of the message
"help".

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".



=========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to