From 087db447e5249e630a12567c876bb2973e4f8070 Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Thu, 5 Apr 2012 23:27:21 +0100 Subject: [PATCH] [Add] Added main game methods. --- src/Main/GLWindow.cpp | 3 +- src/Main/Game.cpp | 64 +++++++++++++++++++++++++++++++++++++++++++ src/Main/Game.h | 17 ++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) diff --git a/src/Main/GLWindow.cpp b/src/Main/GLWindow.cpp index 189f2a1..7dab8b1 100644 --- a/src/Main/GLWindow.cpp +++ b/src/Main/GLWindow.cpp @@ -235,4 +235,5 @@ float GLWindow::GetElapsedSeconds(void) { unsigned int diff = currentTime - _lastTime; _lastTime = currentTime; return float(diff) / 1000.0f); -} \ No newline at end of file +} + \ No newline at end of file diff --git a/src/Main/Game.cpp b/src/Main/Game.cpp index e69de29..240a1cb 100644 --- a/src/Main/Game.cpp +++ b/src/Main/Game.cpp @@ -0,0 +1,64 @@ +#ifdef _WIN32_ +#include +#endif + +#include +#include + +#include "Game.h" + +Game::Game(void) { + _rotationAngle = 0.0f; +} + +Game::~Game(void) { + +} + +bool Game::Init(void) { + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LEQUAL); + + // Return success. + return true; +} + +void Game::Prepare(float dt) { + const float SPEED = 15.0f; + _rotationAngle += SPEED*dt; + if(_rotationAngle > 360.0f) { + _rotationAngle -= 360.0f; + } +} + +void Game::Render(void) { + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glLoadIdentity(); + + glRotatef(_rotationAngle, 0, 0, 1); + + glBegin(GL_TRIANGLES); + glColor4f(1.0f, 0.0f, 0.0f, 1.0f); + glVertex3f(-1.0f, -0.5f, -4.0f); + glColor4f(1.0f, 1.0f, 0.0f, 1.0f); + glVertex3f(1.0f, -0.5f, -4.0f); + glColor4f(0.0f, 0.0f, 1.0f, 1.0f); + glVertex3f(0.0f, 0.5f, -4.0f); + glEnd(); +} + +void Game::Shutdown(void) { + +} + +void Game::OnResize(int width, int height) { + glViewport(0, 0, width, height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + gluPerspective(45.0f, float(width) / float(height), 1.0f, 100.0f); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); +} diff --git a/src/Main/Game.h b/src/Main/Game.h index e69de29..074e516 100644 --- a/src/Main/Game.h +++ b/src/Main/Game.h @@ -0,0 +1,17 @@ +#pragma once + +class Game { +public: + Game(void); + ~Game(void); + + bool Init(void); + void Prepare(float dt); + void Render(void); + void Shutdown(void); + + void OnResize(int width, int height); + +private: + float _rotationAngle; +};