Critique on an explanation I gave someone

Started by
4 comments, last by mikeman 19 years, 3 months ago
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

Beginner in Game Development?  Read here. And read here.

 

Advertisement
no one?

Beginner in Game Development?  Read here. And read here.

 

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.
It's pretty poor.
i see.... i was hoping it would be somewhat clear.
i guess that's why newbies shouldn't teach newbies.

Beginner in Game Development?  Read here. And read here.

 

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.

This topic is closed to new replies.

Advertisement