Corning Community College
CSCS1320 C/C++ Programming
Building off of your MTB0 progress, start to lay out the infrastructure and logic for a simple paddle, ball pong game.
Custom graphics for paddle and ball.
Ability to control the paddle.
Beginnings of bounds checking for paddle and ball (should not be able to leave the screen).
You will want to go here to edit and fill in the various sections of the document:
NOTE: this is a collaborative document between a couple of my classes this semester. That means more people editing. Be mindful that only one person can edit the document at a time.
Only task headings have been provided. You are not expected to know how to do the task given by just that description (although in some cases it can be adequately figured out). Instead, if no further information is yet present, ASK FOR DETAILS on the discord, then contribute that clarity here.
If something is present but needs polish: spruce it up.
If something is present but is incorrect: please fix it.
This is intended to be an informative, useful document that all can benefit from.
Those with prior experience, please be mindful not to gobble up all the low-hanging fruit from the newcomers.
The Paddle should function identically to the moving box from mtb0, except restricted to only moving in one dimension (up + down, or left + right)
The ball needs to have collisions with both the walls and the paddle. The ball also needs to be constantly moving, with the ability to switch to opposite directions whenever it hits the wall or the paddle. This can be done through two variable possibly called ballXDirection and ballYDirection wherin both values can possibly be either -1 or 1. If ballXDirection is -1, then anytime the ball is being moved by some amount in the x direction, multiply it by the ballXDirection, to reverse it if it negative, or to keep it the same if it is positive. This means any time a ball has the ballXDirection being negative, it will make the ball move left. if the ballXDirection is positive, the ball will move right.
You can move the ball by updating it's position every frame of the main while loop of the program. By creating variables for the balls position, speed, and xy vectors we can control the balls velocity. By using speed and vector variables to calculate the x and y position we can make the ball bounce off of walls by negating the vector values.
Create variable that represent the hitbox for the paddle. One could possibly make a yhitbox offset that represents the distance from the center of the paddle to it's extreme in one of the y direction. To represent the other direction just negate it. The same can be done for the x direction.
To be successful in this project, the following criteria (or their equivalent) must be met:
Let's say you have completed work on the project, and are ready to submit, you would do the following:
lab46:~/src/SEMESTER/DESIG/PROJECT$ submit DESIG PROJECT file1 file2 file3 ... fileN
You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.
I'll be evaluating the project based on the following criteria:
104:mtb1:final tally of results (104/104) *:mtb1:submitted Vircon32 cartridge [13/13] *:mtb1:submitted C code XML and build script [13/13] *:mtb1:ball rebounds around the screen [13/13] *:mtb1:paddle moves in its domain, limited by screen [13/13] *:mtb1:cartridge is NOT added to repository [13/13] *:mtb1:bounds checking for paddle and ball [13/13] *:mtb1:initial collision detection for ball and paddle [13/13] *:mtb1:committed project related changes to semester repo [13/13]