辅导案例-CS 134

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
© K e v i n S m i t h 2 0 2 0 P a g e 1 | 2

SJSU - CS 134 – Game Design Programming Project 1 – Part 1 – Foundation Classes
A Vintage 2D Shooter Arcade Game
In this assignment (Part 1-3), you will build a vintage 2D “Shooter” style
game that will be based on the theme of the “space invader” style games
of the past. The game will leverage the object-oriented and graphics
capabilities of OpenFrameworks and you will learn the basics of game
interaction, 2D game graphics using sprites, rudimentary collision
detection and basic animation. This assignment will be broken down into
three (3) parts. By the end of Part 3, you will have written your own game.
The game should be easily ported to mobile devices such as a smart phone
or tablet. Let’s get started!
Part I Basic Functionality
For Part 1 the basic functionality is as follows:
• The game starts up in idle mode, waiting to receive a “spacebar”
keyboard event to start the game.
• The user will be able to use either arrow keys or the mouse (both
must be supported) to move “the Player” which is a small gun
turret in any direction in the play window (up and down, left and
right). The gun turret’s motion is limited by the play area size. You
need to check the bounds for that.
• The spacebar will be used to fire missiles from the turret. Holding the spacebar will cause the missiles to
fire automatically. The rate of fire should be adjustable internally (by a method in the class – see
below). You will need to create a slider to adjust this rate for game playability testing.
• The direction of fire should be adjustable by modifying a vector. You also need to create a slider to test
this feature. (These diagnostic sliders should be able to be hidden).
• The firing of the missiles should emit a burst sound effect of your choosing.
• The visual design of the turret, missiles and background of the playing area (image files) and the sounds
used are up to you. You have creative control over these aspects. Please feel free to put on your game
artist hat. You are required to create the turret image yourself.
• In the next part (Part 2 – next week), we will implement more sophisticated motion and collision
detectin.
Required Steps
1. Use an object-oriented design like what we had discussed in the lecture. This will include the classes:
Emitter, Sprite and the SpriteSystem. You will want to use this method (or similar) because we will later
reuse these components for other parts of the game. An example *.h file will be included that shows
how these classes can be defined.
2. Determine the size (in Pixels) of your window for your game. If you would like to ultimately target an
iPhone 6, then the iPhone resolution is: 1334 X 750. If you target an iPad air, the resolution is 2048 X
1536. Knowing in advance what platform you want to target first will help you make decisions on sizes
© K e v i n S m i t h 2 0 2 0 P a g e 2 | 2

of elements in the game (players, enemy, sprites etc.). Depending on your PC, you may also be limited
on display size for your window. The window resolution is set in the file, main.cpp.
3. A movie link will be posted that provides a tutorial on how to make images for your sprites. You do not
need final images at this stage, but you will for Part 3 when you complete your final game. If no images
are installed, your program must be robust enough to draw some representation of your sprites and
emitters (missiles and turret(s)). This could be a rectangle.

What to Submit
1. Submit only main.cpp, ofApp.h and ofApp.cpp files for your project (and any other sources files required
to build your project). Zip it into a .zip file using the following naming convention:
Project1-Foundation--.zip.
As an example:

Project1-Foundation-KevinSmith-09042018.zip

No other compressed format will be accepted (zip is available natively on both windows and Mac).

2. Submit a video demonstrating part 1. Use a screen capture program. Mobile phone videos will not be
accepted.

Due Date
This Part 1 is a one-week assignment. Due date will be posted in Canvas system.

Grading Criteria
To receive the highest grade on the assignment, the code most be original, robust and well documented
(commented) with all functionality specified included. Please refer to the Rubric in the assignment for a
breakdown of the grading.


欢迎咨询51作业君
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468