From a physics standpoint, you need to have some base units. Let one pixel be the equivalent of one meter. Let g = the freefall gravitational constant on planet Earth of an object in freefall in a vacuum, which we'll round off to 10 meters/second/second.
Velocity is directional speed. You can define it as either:
class Velocity
{
double velocityX;
double velocityY;
}
or
class Velocity
{
double speed;
double angle;
}
or use all four. You can derive some attributes from the other attributes. I'd recommend that. It gives more flexibility.
class Velocity
{
double velocityX;
double velocityY;
double speed;
double angle;
}
You can also have a Direction class:
class Direction
{
double xDirection;
double yDirection;
double angle;
}
You can derive xDirection and yDirection from angle, or you can derive angle from xDirection and yDirection, in which case Velocity could now be this:
class Velocity
{
Direction direction;
double speed;
}
A character at a certain time would be at a certain Point and have a certain velocity:
class GameCharacter
{
Point position;
Velocity velocity;
}
You can also have a variable called gravity, which could be a multiple of g, which is 10 m/s. So on a planet with gravity 4, an object at free-fall would accelerate downwards at 40 m/s.
So you need to figure out acceleration, which is based on gravity and the angle of the ramp. So let's assume the character at time 0 is at (100, 150) and it's at a standstill, and gravity acceleration is 10 m/s/s. One pixel is one meter. Let's say you're using a ramp that is 30 degrees downward and to the right. Your overall speed increase (acceleration) will be 10 m/s/s times sine(30 deg.) = 5 m/s.
Your x component of this will 5 m/s/s times cos (30 deg.) = 4.33 m/s/s. Your y-component will be 5 m/s times sin (30 deg) = 2.5 m/s/s.
Integrating, your position at time t will be:
positionX = 100 + 4.33 * (t^2 / 2)
positionY = 150 + 2.5 * (t^2 / 2)
So to have it move, decide your time slice (i.e. repaint every 0.05 seconds), and keep recalculation the formulas above and paint your circle at the resulting positions.