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: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=292754as 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:on a computer screen, the axes are so: (0,0) | - | - - - - - - - -> (+x) | | | | | | | \/ (+y)
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 nowstruct 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; }
Critique on an explanation I gave someone
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.
i see.... i was hoping it would be somewhat clear.
i guess that's why newbies shouldn't teach newbies.
i guess that's why newbies shouldn't teach newbies.
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
Popular Topics
Advertisement