Jump to content
  • Advertisement
Sign in to follow this  
Alpha_ProgDes

Unity Critique on an explanation I gave someone

This topic is 4972 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Quote:
Original post by Alpha_ProgDes ok. now acceleration (this explanation may be a little more complicated, unclear). the basics of acceleration and velocity assume that +velocity means moving forward at a certain speed assume that -velocity means moving backward at a certain speed assume that +accel means moving in the direction of the axis (ie. going faster) assume that -accel means moving in the direction opposite of the axis (ie. going slower)** now all of these values do depend on what directions you're going and how you have your coordinates setup. for example:
on a computer screen, the axes are so:
  

(0,0) |
    - | - - - - - - - -> (+x)
      |                
      |
      |
      |
      | 
      |                
      |
     \/ (+y)
as you can see the origin (0,0) starts at the top of the screen. and y increases the further down the graph you go. now i won't put the normal graph you normally see in math class because you need to concentrate on this and realize this only applies to computer screens and graphics. now your character will NOT be at the origin. it most likely will be further down the screen. for now let's say (0,100). so when you jump you going in the opposite direction. therefore you get -velocity. to counteract -velocity you have to have an +accel. an equation of velocity is velocity + acceleration*time. let's tackle the acceleration*time. the target frame rate for your game is 30 frames per second which equates to 33ms a frame. now gravity accelerates at 9.8 m/s^2. which in the game world could easily be 9.8 pixels per frame squared. well unfortunately i'm not going to do all the conversions but get straight to the point: acceleration is 9.8 and time is .33 (remember velocity + acceleration*time). so we have 3.2 (velocity + 3.2) acceleration (ie. gravity) is going in the same direction as the y-axis, which is down. so the velocity will be negative because you're travelling opposite the axis. (assuming velocity = -10; -10 + 3.2) ok so now here's some (pseudo)code:
struct player {
  float y_vel;
  float y_pos;
  int height;
  int width;
} Player;

gravity = 9.8;  //this is a global variable;
Player pl;
pl.y_vel = -10;
pl.y_pos = 100;
pl.height = 32;
pl.width = 16;

if (key_up) {
   float player_bottom = y_pos + pl.height
   do {
      y_pos = y_pos + y_vel;
      y_vel = y_vel + gravity*time; //remember we said time is .33
   } while (player_bottom < floor_coordinate);

   if (player_bottom > floor_coordinate) {
     player_bottom = floor_coordinate;
} 
granted this is not highly optimized code, but it should get the point across. i'll stop here, since i'm sure anyone math-inclined is ready to flame for mathematical fallacies typed above [flaming] ** normally in physics the above do hold some truth, well the way i've written them anyway. here are some other things to think about when dealing with movement and speed. -- -accel and -velocity means an object is moving in the opposite direction and increasing speed -- -accel and +velocity means an object is moving in direction of positive axis and slowing down -- +accel and -velocity means an object is moving in the opposite direction and slowing down -- +accel and +velocity mean an object is moving in the direction of the positive axis and increasing speed i hope i didn't confuse you. good luck on your coding [smile] everyone else may correct, bash, or flame now
Just wanted to get some feedback on it that's all. Here's where the original post came from: http://www.gamedev.net/community/forums/topic.asp?whichpage=2&pagesize=25&topic_id=292754

Share this post


Link to post
Share on other sites
Advertisement
It all depends on how much the person reading it already knows. Without reading much of the details, I know some people may get confused when they see +velocity and think it's a scalar (do they understand what a vector is?). Also y does not always go down the screen. In OpenGL, at least, it increases upwards and is not tied to the the screen.

Share this post


Link to post
Share on other sites
It's pretty hard anyway to teach motion under gravity to a person that doesn't even know what velocity is. It's not something you can explain in a few paragraphs. He'll have to take at least some physics courses or at least read a physics book if he wants to learn about it.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!