Project 2.6: Orbit
Make a circle that follows the mouse on the screen
REQUIREMENTS
Orbital Motion
The ball should start at a random position anywhere on the screen
Your ball should try to follow the mouse by changing its speed when it is going the wrong way
It should accelerate at a rate of 1 pixel per frame
The ball should have a maximum speed of 25 pixels per frame.
The ball should change color each frame.
This can be totally random or within a limited but still random color set.
User Interface
The program should be in full screen mode and have a background color set.
Left clicking should wipe the screen, setting it to your background color
The 's' key should save a screenshot to your project folder
Your program should work for both capital 'S' and lowercase 's'
The 1, 2, and 3 keys should change the size of the ball.
1 --> Small (15 pixels)
2 --> Medium (30 pixels) <--- Starting size
3 --> Large (60 pixels)
FAQ / Tips
Progression Advice
First - Make Your Physics
Set up your variables
Draw a stationary ball on the screen
Have it follow the mouse in the x dimension only
Have it follow the mouse in the y dimension also
Only speed up the ball if it is under the maximum speed
Try this one direction at a time!
Remember that going left and up means your speed is negative
Second - Make It Fancy
Make your ball a change color randomly
Set a starting background and reset it on left click
Change circle size with '1', '2', and '3' keys
Save a screenshot using 's' or 'S' keys
I'm a little confused on negative maximum speeds
So if we're going to the right, that means xSpeed is positive. So maxSpeed must be positive. We then ask:
if(ySpeed < maxSpeed)
But if we're going to the left, xSpeed is negative. It's always going to be under maxSpeed. So we need to instead ask:
if(ySpeed > -maxSpeed)
Why does my orbit look square-ish if I leave it stationary?
This is okay! We're using some simple math, treating x and y speed independently. It isn't actually a proper circle. You'll need to use more advanced math for that.
You're welcome to do so, or ask a math / physics teacher for help, but it's beyond the scope of our requirements.
EXAMPLE: RUNNING PROGRAMS
Click here to download a running version of the program.