aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2015-09-10 15:24:39 -0400
committerClyne Sullivan <tullivan99@gmail.com>2015-09-10 15:24:39 -0400
commitbecacb292c902bbbc55a196ba824a9ff678481ff (patch)
tree1885ddde08fe17ac3a1dd5706bf0cfb27a1a47df
parent1a3f4ac5ac12700757d2558ee06f202ad43aa841 (diff)
parent22fd8623af3f57c4e28f43f793bae4d14948abc0 (diff)
fixed
-rw-r--r--doc/QuestList.htm40
-rw-r--r--include/World.h2
-rw-r--r--include/common.h62
-rw-r--r--include/entities.h81
-rw-r--r--src/UIClass.cpp85
-rw-r--r--src/entities.cpp53
-rw-r--r--src/main.cpp246
7 files changed, 373 insertions, 196 deletions
diff --git a/doc/QuestList.htm b/doc/QuestList.htm
new file mode 100644
index 0000000..a4bf677
--- /dev/null
+++ b/doc/QuestList.htm
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Quest</title>
+ <style>
+ .title{
+ background:#833;
+ color:white;
+ font-family:Consolas;
+ font-size:16px;
+ margin:auto 20px;
+ padding:12px;
+ }
+ .code{
+ background:#555;
+ color:white;
+ font-family:Consolas;
+ font-size:12px;
+ margin:auto 20px;
+ padding:20px;
+ }
+ .reward{
+ background:#383;
+ color:white;
+ font-family:Consolas;
+ font-size:16px;
+ margin:auto 20px;
+ padding:15px;
+
+ }
+ </style>
+</head>
+<body>
+ <h1>Quests</h1>
+ <hr>
+ <div class="title">Hello there!</div>
+ <div class="code">In this quest you must find the starting village of ASS</div>
+ <div class="reward">A starting weapon for the class of your choice</div>
+</body>
+</html>
diff --git a/include/World.h b/include/World.h
index 3b4b56d..d8440a0 100644
--- a/include/World.h
+++ b/include/World.h
@@ -21,4 +21,4 @@ public:
void detect(vec2 *v,const float width);
};
-#endif // WORLD_H
+#endif // WORLD_H
diff --git a/include/common.h b/include/common.h
index 9ce1be0..df5b6ac 100644
--- a/include/common.h
+++ b/include/common.h
@@ -1,31 +1,31 @@
-#ifndef COMMON_H
-#define COMMON_H
-
-typedef struct{float x; float y;}vec2;
-
-///THIS FILE IS USED FOR VARIABLES THAT WILL BE ACCESED BY MULTIPLE CLASSES/FILES
-
-#include <iostream>
-#include <cstdlib>
-#include <SDL2/SDL.h>
-#include <SDL2/SDL_image.h>
-#include <SDL2/SDL_opengl.h>
-#include <UIClass.h>
-#include <entities.h>
-#include <World.h>
-
-#define SCREEN_WIDTH 1280
-#define SCREEN_HEIGHT 800
-#define FULLSCREEN
-
-#define HLINE (2.0f/(SCREEN_WIDTH/4))
-
-//SDL VARIABLES
-extern SDL_Window *window;
-extern SDL_Surface *renderSurface;
-extern SDL_GLContext mainGLContext;
-
-//WINODWS VARIABLES
-extern bool gameRunning;
-
-#endif // COMMON_H
+#ifndef COMMON_H
+#define COMMON_H
+
+typedef struct{float x; float y;}vec2;
+
+///THIS FILE IS USED FOR VARIABLES THAT WILL BE ACCESED BY MULTIPLE CLASSES/FILES
+
+#include <iostream>
+#include <cstdlib>
+#include <SDL2/SDL.h>
+#include <SDL2/SDL_image.h>
+#include <SDL2/SDL_opengl.h>
+#include <UIClass.h>
+#include <entities.h>
+#include <World.h>
+
+#define SCREEN_WIDTH 1280
+#define SCREEN_HEIGHT 720
+//#define FULLSCREEN
+
+#define HLINE (2.0f / (SCREEN_WIDTH / 4))
+
+//SDL VARIABLES
+extern SDL_Window *window;
+extern SDL_Surface *renderSurface;
+extern SDL_GLContext mainGLContext;
+
+//WINDOW VARIABLES
+extern bool gameRunning;
+
+#endif // COMMON_H
diff --git a/include/entities.h b/include/entities.h
index 3ecf014..89d9ec3 100644
--- a/include/entities.h
+++ b/include/entities.h
@@ -1,26 +1,57 @@
-#ifndef ENTITIES_H
-#define ENTITIES_H
-
-#include <common.h>
-
-
-class Entities{
-public:
- float width;
- float height;
- float speed;
- int type;
- vec2 loc;
-
- void spawn(float, float);
-
-
-};
-
-class Player : public Entities{
-public:
- Player();
- ~Player();
-};
-
+<<<<<<< HEAD
+#ifndef ENTITIES_H
+#define ENTITIES_H
+
+#include <common.h>
+
+
+class Entities{
+public:
+ float width;
+ float height;
+ float speed;
+ int type;
+ vec2 loc;
+ vec2 loci;
+ vec2 vel;
+ vec2 velg;
+
+ void spawn(float, float);
+
+
+};
+
+class Player : public Entities{
+public:
+ Player();
+ ~Player();
+};
+
+=======
+#ifndef ENTITIES_H
+#define ENTITIES_H
+
+#include <common.h>
+
+
+class Entities{
+public:
+ float width;
+ float height;
+ float speed;
+ int type;
+ vec2 loc;
+
+ void spawn(float, float);
+
+
+};
+
+class Player : public Entities{
+public:
+ Player();
+ ~Player();
+};
+
+>>>>>>> origin/master
#endif //ENTITIES_H \ No newline at end of file
diff --git a/src/UIClass.cpp b/src/UIClass.cpp
index c17b6a7..bf76336 100644
--- a/src/UIClass.cpp
+++ b/src/UIClass.cpp
@@ -1,22 +1,63 @@
-#include <UIClass.h>
-
-void UIClass::handleEvents(){
- SDL_Event e;
- while(SDL_PollEvent(&e)){
- switch(e.type){
- case SDL_QUIT:
- gameRunning=false;
- break;
- case SDL_KEYDOWN:
- switch(e.key.keysym.sym){
- case 27:
- gameRunning=false;
- break;
- default:
- break;
- }
- default:
- break;
- }
- }
-}
+<<<<<<< HEAD
+#include <UIClass.h>
+extern Player player;
+
+void UIClass::handleEvents(){
+ SDL_Event e;
+ while(SDL_PollEvent(&e)){
+ switch(e.type){
+ case SDL_QUIT:
+ gameRunning=false;
+ break;
+ case SDL_KEYDOWN:
+ switch(e.key.keysym.sym){
+ case 27: ///ESCAPE
+ gameRunning=false;
+ break;
+ case SDLK_d: ///D
+ player.velg.x = 10;
+ break;
+ case SDLK_a: ///A
+ player.velg.x = -10;
+ break;
+ default:
+ break;
+ }
+ case SDL_KEYUP:
+ switch(e.key.keysym.sym){
+ /*case SDLK_d: ///D
+ break;
+ case SDLK_a: ///A
+ break;*/
+ default:
+ break;
+ }
+ default:
+ break;
+ }
+ }
+}
+=======
+#include <UIClass.h>
+
+void UIClass::handleEvents(){
+ SDL_Event e;
+ while(SDL_PollEvent(&e)){
+ switch(e.type){
+ case SDL_QUIT:
+ gameRunning=false;
+ break;
+ case SDL_KEYDOWN:
+ switch(e.key.keysym.sym){
+ case 27:
+ gameRunning=false;
+ break;
+ default:
+ break;
+ }
+ default:
+ break;
+ }
+ }
+}
+>>>>>>> origin/master
diff --git a/src/entities.cpp b/src/entities.cpp
index 5e86b72..1b8861a 100644
--- a/src/entities.cpp
+++ b/src/entities.cpp
@@ -1,16 +1,39 @@
-#include <entities.h>
-
-void Entities::spawn(float x, float y){
- loc.x = x;
- loc.y = y;
-
-}
-
-Player::Player(){
- width = 24;
- height = 42;
- speed = 1;
- type = 0;
-}
-
+<<<<<<< HEAD
+#include <entities.h>
+
+void Entities::spawn(float x, float y){
+ loc.x = x;
+ loc.y = y;
+ loci.x = loc.x;
+ loci.y = loc.y;
+ vel.x = 0;
+ vel.y = 0;
+ velg.x = 0;
+ velg.y = 0;
+}
+
+Player::Player(){
+ width = HLINE * 6;
+ height = HLINE * 16;
+ speed = 1;
+ type = 0;
+}
+
+=======
+#include <entities.h>
+
+void Entities::spawn(float x, float y){
+ loc.x = x;
+ loc.y = y;
+
+}
+
+Player::Player(){
+ width = 24;
+ height = 42;
+ speed = 1;
+ type = 0;
+}
+
+>>>>>>> origin/master
Player::~Player(){} \ No newline at end of file
diff --git a/src/main.cpp b/src/main.cpp
index fa3a9c4..8bc01e2 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,102 +1,144 @@
-#include <common.h>
-#include <ctime>
-
-SDL_Window *window = NULL;
-SDL_Surface *renderSurface = NULL;
-SDL_GLContext mainGLContext = NULL;
-
-bool gameRunning = true;
-
-UIClass ui;
-Entities *entit1;
-Player player;
-World *currentWorld;
-
-int main(int argc,char **argv){
- // Initialize SDL
- if(!SDL_Init(SDL_INIT_VIDEO)){
- atexit(SDL_Quit);
- }else{
- std::cout << "SDL was not able to initialize! Error: " << SDL_GetError() << std::endl;
- return -1;
- }
- // Initialize SDL_image
- if((IMG_Init(IMG_INIT_PNG|IMG_INIT_JPG)&(IMG_INIT_PNG|IMG_INIT_JPG))){
- atexit(IMG_Quit);
- }else{
- std::cout<<"Could not init image libraries!\n"<<std::endl;
- return -1;
- }
- // Create the window
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
- window = SDL_CreateWindow("Independent Study v.0.1 alpha", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL
- #ifdef FULLSCREEN
- | SDL_WINDOW_FULLSCREEN
- #endif // FULLSCREEN
- );
- if(!window){
- std::cout << "The window failed to generate! Error: " << SDL_GetError() << std::endl;
- return -1;
- }
- // Set OpenGL context
- if((mainGLContext = SDL_GL_CreateContext(window))==NULL){
- std::cout << "The OpenGL context failed to initialize! Error: " << SDL_GetError() << std::endl;
- }
- // Setup rand() and OpenGL
- srand(time(NULL));
- glClearColor(.3,.5,.8,0);
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
-
- /**************************
- **** GAMELOOP ****
- **************************/
-
- entit1 = &player;
- entit1->spawn(0,0);
-
- World *w=NULL;
- World *w2=new World(4,w,NULL);
- w=new World(2,NULL,w2);
- currentWorld=w;
-
- while(gameRunning){
- ui.handleEvents(); // Handle events
- //a matrix is a blank canvas for the computer to draw on, the matrices are stored in a "stack"
- //GL_PROJECTION has 2 matrices
- //GL_MODELVIEW has 32 matrices
- glMatrixMode(GL_PROJECTION); //set the matrix mode as projection so we can set the ortho size and the camera settings later on
- glPushMatrix(); //push the matrix to the top of the matrix stack
- glLoadIdentity(); //replace the entire matrix stack with the updated GL_PROJECTION mode
- glOrtho(-1,1,-1,1,-1,1); //set the the size of the screen
- glMatrixMode(GL_MODELVIEW); //set the matrix to modelview so we can draw objects
- glPushMatrix(); //push the matrix to the top of the matrix stack
- glLoadIdentity(); //replace the entire matrix stack with the updated GL_MODELVIEW mode
- glPushMatrix(); //basically here we put a blank canvas (new matrix) on the screen to draw on
- glClear(GL_COLOR_BUFFER_BIT); //clear the matrix on the top of the stack
-
- /**************************
- **** RENDER STUFF HERE ****
- **************************/
-
- currentWorld->draw();
- glColor3ub(0,0,0);
- glRectf(player.loc.x, player.loc.y, player.loc.x + player.width, player.loc.y + player.height);
-
- /**************************
- **** CLOSE THE LOOP ****
- **************************/
-
- glPopMatrix(); //take the matrix(s) off the stack to pass them to the renderer
- SDL_GL_SwapWindow(window); //give the stack to SDL to render it
- }
-
- /**************************
- **** CLOSE PROGRAM ****
- **************************/
-
- //closes the window and frees resources
- SDL_GL_DeleteContext(mainGLContext);
- SDL_DestroyWindow(window);
- return 0;
-}
+#include <common.h>
+#include <ctime>
+
+SDL_Window *window = NULL;
+SDL_Surface *renderSurface = NULL;
+SDL_GLContext mainGLContext = NULL;
+
+bool gameRunning = true;
+
+const float ticksPerSec = 20;
+const float msecPerTick = 1000 / ticksPerSec;
+int prevTime = GetTickCount();
+int currentTime = 0;
+float deltaTime = 0;
+
+Entities *entit1;
+Player player;
+UIClass ui;
+World *currentWorld;
+
+float interpolate(float goal, float current, float dt){
+ float difference = goal - current;
+ if(difference > dt){
+ return current + dt;}
+ if(difference < dt){
+ return current - dt;}
+ return goal;
+}
+
+void render();
+
+int main(int argc,char **argv){
+ //runs start-up procedures
+ if(!SDL_Init(SDL_INIT_VIDEO)){
+ atexit(SDL_Quit);
+ if(!(IMG_Init(IMG_INIT_PNG|IMG_INIT_JPG)&(IMG_INIT_PNG|IMG_INIT_JPG))){
+ std::cout<<"Could not init image libraries!\n"<<std::endl;
+ return -1;
+ }
+ atexit(IMG_Quit);
+ //Turn on double Buffering
+ SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
+ //create the window
+ window = SDL_CreateWindow("Independent Study v.0.1 alpha", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL
+ #ifdef FULLSCREEN
+ | SDL_WINDOW_FULLSCREEN
+ #endif // FULLSCREEN
+ );
+ if(window){
+ //set OpenGL context
+ mainGLContext = SDL_GL_CreateContext(window);
+ if(mainGLContext == NULL){
+ std::cout << "The OpenGL context failed to initialize! Error: " << SDL_GetError() << std::endl;
+ }
+ }else{
+ std::cout << "The window failed to generate! Error: " << SDL_GetError() << std::endl;
+ return -1;
+ }
+ }else{
+ std::cout << "SDL was not able to initialize! Error: " << SDL_GetError() << std::endl;
+ return -1;
+ }
+ srand(time(NULL));
+ glClearColor(.3,.5,.8,0);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+
+ /**************************
+ **** GAMELOOP ****
+ **************************/
+
+ entit1 = &player;
+ entit1->spawn(4, 0);
+
+ World *w=NULL;
+ World *w2=new World(4,w,NULL);
+ w=new World(2,NULL,w2);
+ currentWorld=w;
+
+ while(gameRunning){
+ prevTime = currentTime;
+ currentTime = GetTickCount();
+ deltaTime = currentTime - prevTime;
+
+ if(prevTime + msecPerTick <= GetTickCount()){ //HANDLE ALL LOGIC STUFF HERE
+ ui.handleEvents(); // Handle events
+
+ player.vel.x = 0;
+
+ std::cout << player.vel.x << std::endl;
+ std::cout << player.velg.y << std::endl;
+ std::cout << "d:" << deltaTime << std::endl;
+
+ prevTime = GetTickCount();
+ }
+ //DO ALL RENDERING HERE
+ player.vel.x = interpolate(player.velg.x, player.vel.x, deltaTime) * .001;
+ if(player.vel.x > .05) player.vel.x = .05;
+ if(player.vel.x < -.05) player.vel.x = -.05;
+ player.loci.x += player.vel.x;
+
+ render();
+
+ }
+
+ /**************************
+ **** CLOSE PROGRAM ****
+ **************************/
+
+ //closes the window and frees resources
+ SDL_GL_DeleteContext(mainGLContext);
+ SDL_DestroyWindow(window);
+ return 0;
+}
+
+void render(){
+ //a matrix is a blank canvas for the computer to draw on, the matrices are stored in a "stack"
+ //GL_PROJECTION has 2 matrices
+ //GL_MODELVIEW has 32 matrices
+ glMatrixMode(GL_PROJECTION); //set the matrix mode as projection so we can set the ortho size and the camera settings later on
+ glPushMatrix(); //push the matrix to the top of the matrix stack
+ glLoadIdentity(); //replace the entire matrix stack with the updated GL_PROJECTION mode
+ glOrtho(-1 + player.loci.x, 1 + player.loci.x , -1, 1, -1,1); //set the the size of the screen
+ glMatrixMode(GL_MODELVIEW); //set the matrix to modelview so we can draw objects
+ glPushMatrix(); //push the matrix to the top of the matrix stack
+ glLoadIdentity(); //replace the entire matrix stack with the updated GL_MODELVIEW mode
+ glPushMatrix(); //basically here we put a blank canvas (new matrix) on the screen to draw on
+ glClear(GL_COLOR_BUFFER_BIT); //clear the matrix on the top of the stack
+
+ /**************************
+ **** RENDER STUFF HERE ****
+ **************************/
+
+ currentWorld->draw();
+ glColor3ub(0,0,0);
+ glRectf(player.loci.x, player.loci.y, player.loci.x + player.width, player.loci.y + player.height);
+
+ /**************************
+ **** CLOSE THE LOOP ****
+ **************************/
+
+ glPopMatrix(); //take the matrix(s) off the stack to pass them to the renderer
+ SDL_GL_SwapWindow(window); //give the stack to SDL to render it
+}