Skip to content

3D Space invaders game in OpenGL and Glut, using different types of cameras(first person, third person and top down view), lights (omnidirectional lights and spotlights),transparant objects renedering by using alpha test, OFF objects,bounding spheres collision detection

evelinad/Space-Invaders

Repository files navigation

Dumitrescu Evelina 
331CA 
Tema4 EGC

1.CERINTA

Implementarea unui joc 3D in openGl ce simuleaza o batalie spatiala. 
Nava trebuie sa navigheze prin centura de asteroizi incercand sa distruga cat mai multi.

2.UTILIZARE
 * w, a,s,d-> deplasare camere inainte /inapoi/stanga/dreapta
 * i, k, j, l-> deplasare nava inainte /inapoi/stanga/dreapta
 * m,n-> rotire camere sideview si backview
 * z,x,c,v -> selectare camere z = sideview, x= backview, c = shipview , v = satelliteview
 * mouse selectare asteroid + distrugere cu raza laser
 * camera asteroid functioneaza astfel : intare in modul SATELLITEVIEW (tasta v) + selectare asteroid
	module default este cel SIDEVIEW
	

3. IMPLEMENTARE
	Mediu dezvoltare : Visual Studio 2010 express edition
	Descriere clase:
	1.Spaceship
		* metode pt deplasare nava
		* powerup/damage scut
		- scutul este o sfera ; de fiecare data cand nava este lovita scade parametrul alpha al culorii scutului
		- load coordonate din fisier off
	2.Camera
		* initializare vectori forward, up, right+setare tip camera
		* translatii/rotatii
		* randare in functie de tipul camerei
	3.Satellite
		* setare parametri 
			- culoare + dimensiune  (alese random)
			- tip 
				* icoshaedron
				* decahedron
				* bonus (satelitii reprezentati prin sfere rosii + inele albastre)
				* desenare (translatie)
		* explozie 
		* destroy pt resetare parametri
		* collision pt detectare coliziuni 
				- atunci cand un asteroid intra prima data intr-o nava id-ul lui este memorat intr-un vector (pt a inregistra 1 sg data aceasta coliziune ) 
				  si este sters abia cand iese din spatiul de joc 
		- am folosit bounding spheres	
		- inelele satelitilor se invart in jurul axelor Ox si Oz
		
	4.Light
		* am adaugat in plus fata de laborator metoda Renderexplight pentru efectul de explozie al satelitilor
		* pt cei 2 sori(lumini omnidirectionale) + tunuti laser(spoturi)
	5. Lab7
		- fisierul principal al programului contine fctia main + dirijeaza workflowul jocului
	5. Alte clase din laborator
	
	
	- daca nava distruge un astroid de tip bonus / este lovita de unul dintre acestia rezistenta scutului creste
	- daca este lovita de 5 ori de asteroizi de tip icoshaedron sau decahedron nava este distrusa
	- daca nava distruge 10 asteroizi jucatorul castiga
	- la finalul jocului se afiseaza un mesaj de GAMEOVER (WIN/LOST)
	- pentru efectul de explozie: efect de fade in/out, modific atenuarea luminii + parametrul alpha
	setez valori specifice pentru lumina abientala, difuza si speulara)
	- in timpul exploziei un asteroid ramane pe loc				
4. TESTARE
	Programul a fost testat pe Windows 7.


5. CONTINUT ARHIVA
	- lab7.cpp - fisier principal;
	- Spaceship.cpp Spaceship.h
	- Satellite.cpp, Satellite.h
	- Camera.cpp, Camera.h
	- Light.cpp, Light.h
	-Transform3d.cpp, Transform3d.h
	-Transform2d.cpp, Transform2d.h
	- Vector3D.h
	- Vector4D.h
	- Suport3D.cpp,Suport3D.h
	- Suport2D.cpp,Suport2D.h
	- Object3D.h, Object3D.cpp
	- Readme 
	
7.BONUSURI
	- powerups
	- background zona de joc cu stele (functiile createStars + random) din lab7.cpp
	- explozie asteroizi (setare atenuare + parametru alpha, lumina abientala, difuza si speulara)
	- rotatie asteroizi in jurul axelor Ox si Oz
	- numar constant asteroizi in zona de joc

 

 
 

About

3D Space invaders game in OpenGL and Glut, using different types of cameras(first person, third person and top down view), lights (omnidirectional lights and spotlights),transparant objects renedering by using alpha test, OFF objects,bounding spheres collision detection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published