Professional Documents
Culture Documents
A PROJECT REPORT ON
“2D HELICOPTER GAME”
Submitted in partial fulfilment of the requirements for the award of degree of
Bachelor of Engineering
In
Computer Science and Engineering
Submitted by
MASHOODA BIBI ADNAN AHMED
4KM19CS029 4KM19CS003
DARSHAN S ABDUL RASHEED
4KM19CS019 4KM19CS002
Under the guidance of
Ms. ASWANI M, M.TECH
Assistant Professor
2021-22
CERTIFICATE
Any achievement big or small should have a catalyst and constant encouragement and
advice of valuable and noble minds. The satisfy action and euphoria that accompanies
the successful completion of any task would be incomplete without the mention of the
people who made it possible, whose constant guidance and encouragement crowned
our efforts with success.
We would like to express our sincere and grateful thanks to our guide Ms. Aswani M,
Assistant Professor, Department of Computer Science Engineering, Karavali Institute
of Technology, Mangalore for the valuable guidance, encouragement, technical
comments throughout our Mini Project.
We would like to convey heartful thanks to Mr. Mohammed Siraj B, Assistant
Professor and Head of the Department of Computer Science Engineering, Karavali
Institute of Technology, Mangalore for giving his continued encouragement
throughout the course of this Mini Project.
It is great pleasure to express our gratitude and indebtedness to our beloved principal
Dr. Rajendra Prasad for his help and guidance, moral support and affection through
the completion of our work.
We would like to express our sincere gratitude to the authorities of Karavali Institute
of Technology, especially we would like to express my deep sense of gratitude to our
honorable Chairman Sri S Ganesh Rao sir, for his continues effort in creating a
competitive environment in our college and encouraging throughout this course.
We also wish to thank all the staff members, non-teaching staff members of the
Department of Computer Science Engineering who have helped us directly or
indirectly in the completion of our report successfully.
Finally, we are thankful to our parents, friends and loved ones, who are always our
source of inspiration and for their continued moral and material support throughout
the course and in helping us to finalize the mini project.
MASHOODA BIBI
4KM19CS029
ADNAN AHMED
4KM19CS003
DARSHAN S
4KM19CS019
ABDUL RASHEED
4KM19CS002
i
ABSTRACT
ii
TABLE OF CONTENTS
INDEX PAGE NO
1. Introduction
1.2 OpenGL 04
1.3 2D Helicopter 05
2.1 Commands 07
2.2 Viewing 07
4. System Requirements 20
5.1 Analysis 21
5.2 Design 22
6. Snap shot 24
7. Conclusion 26
Bibliography 27
Appendix A: Source code 28
iii
2D Helicopter Game 2021-22
Chapter 1
INTRODUCTION
Computer graphics started with the display of data on hardcopy plotters and cathode
ray tube (CRT) screens soon after the introduction of computers themselves. It has
grown to include the creation, storage and manipulation of models and manipulation
of models and images of objects. These models come from a diverse and expanding
set of fields, and include physical, mathematical, engineering, architectural, and
even conceptual structures, natural phenomena, and so on.
Computer graphics today is largely interactive. The user controls the contents,
structure and appearance of objects and their displayed images by using input
devices, such as a keyboard, mouse, or touch sensitive panel on the screen. The
handling of such devices is included in the study of computer graphics, because of
the close relationship between the input devices and the display.
Digital to
HOST Analogy
To reduce the burden of basic systems we use the following support applications.
1. Display processor
2. Pipeline architecture
3. Graphics pipeline
4. Vertex processing
5. Clipping and primitive assembly
6. Rasterization
7. Fragment processing
Display
HOST Processor
Display List
1. Display of information
2. Design
4. User interfaces
Our interaction with computers has become dominated by visual paradigm that
includes windows, icons, menus and a pointing device such as a mouse. More
recently millions of people have become internet users. Their access is through
graphical network browsers such as Firefox and internet explorer.
With OpenGL, you must build up your desired model from a small set of
geometric primitives - points, lines, and polygons.
1.3 2DHelicopter
This mini project under Computer Graphics & Visualization Laboratory is an
implementation of a kind popular helicopter game using the OpenGL Graphics
Library and GLUT Toolkit.
Scope
The player input his/her name before starting the game & can control it either using
keyboard or mouse at a time and at the end of game it will show how much distance
you covered as his/her score.
Objective
The objective of the game is to fly a helicopter in space with restricted upward and
downward motion using either mouse or keyboard, meanwhile walls will move
towards player’s copter and player have to avoid a collision between them. The
game will enter into next level as soon as player crosses next 50-unit distance and
speed of wall will increase by a certain amount each time player enters next level.
The game will be over if a collision occurring there.
Mouse function: -
On right click down, copter moves upward,
on releasing it moves downward.
Keyboard function: -
Pressing UP key move copter up and down if press DOWN key.
2.1 Commands
void glBegin(GLenum mode)
void glEnd(void);
2.2 Viewing
2.2.1 The viewing transformation
line of sight, but typically they're some point in the center of the scene
being looked at. The upx, upy, and upz arguments indicate which direction
is up (that is, the direction from the bottom to the top of the viewing
volume).
Translate
Rotate
Multiplies the current matrix by a matrix that rotates an object (or the local
coordinatesystem) in a counterclockwise direction about the ray from
the origin through the point (x, y, z). The angle parameter specifies the
angle of rotation in degrees.
Scale
Orthographic projection
Defines a pixel rectangle in the window into which the final image is
mapped. The (x, y) parameter specifies the lower-left corner of the
Pushes all matrices in the current stack down one level. The current stack
is determined by glMatrixMode(). The topmost matrix is copied, so its
contents are duplicated in both the top and second-from-the-top matrix. If
too many matrices are pushed, an error is generated.
void glPopMatrix(void);
Pops the top matrix off the stack, destroying the contents of the popped
matrix. What was the second-from-the-top matrix becomes the top matrix.
The current stack is determined by glMatrixMode(). If the stack contains a
single matrix, calling glPopMatrix() generates an error.
To use depth buffering, you need to enable depth buffering. This has to be
done only once. Before drawing, each time you draw the scene, you need
to clear the depth buffer and then draw the objects in the scene in any
order.
examples: -
"Fog" describes how to create the illusion of depth by computing the color
values of an object based on its distance from the viewpoint. Thus, objects
that are far away appear to fade into the background, just as they do in real
life.
Examples:
glRasterPos2i(20,20);
Chapter 3
Specifies the function, func, that's called when a mouse button is pressed or
released. The button callback parameter is one of GLUT_LEFT_BUTTON,
GLUT_MIDDLE_BUTTON, or GLUT_RIGHT_BUTTON. The state
callback parameter is either GLUT_UP or GLUT_DOWN, depending upon
whether the mouse has been released or pressed. The x and y callback
parameters indicate the location (in window- relative coordinates) of the
mouse when the event occurred.
void glutPostRedisplay(void);
Marks the current window as needing to be redrawn. At the next opportunity,
the callbackfunction registered by glutDisplayFunc() will be called.
void glutMainLoop(void);
Enters the GLUT processing loop, never to return. Registered callback
functions will be called when the corresponding events instigate them.
Chapter 4
SYSTEM REQUIREMENTS
4.1 Software Requirements
● Language: C++
● Tool: Eclipse
● Processor
Intel Processor 100 MHz / Pentium Processor 100 MHz
/AMDProcessor 100 MHz
● RAM
256 MB or more
Chapter 5
5.1 Analysis
4. A game over window which will show score and level of player and
also a button“PLAY AGAIN” clicking on which game will start again.
5. If player score manages among top ten scorer, after game over it
should prompt for entering his name so it can store and display player’s
name among top ten scorer withplayer’s name in the list.
// start
{
// Checking collision condition
if (( top & bottom check ) ORed ( propeller front check ) ORed ( lower
body
check ) ORed ( lower body check ) )
{
display game over window
exit
}
else
{
// increase in level by 1 and block_speed by certain amount
if((score multiple of 50) ANDed level_flag is set to 1)
{
reset level_flag to zero
increase level by 1
increase block_speed by a fixed small amount
}
// show level and scoreshow level during playincrease score by 1 show score
// drawining bloack
Chapter 6
SNAPSHOT
3. Game over
You scored: 50
CONCLUSION
The project was started with the designing phase in which we figured the
requirements needed, the layout design, then comes the detail designing of
each function after which, was the testing and debugging stage. We have
tried to implement the project making it as user-friendly and error free as
possible. We regret any errors that may have inadvertently crept in.
BIBLIOGRAPHY