[Change] FPS is now implemented fully..

[Add] Made a start with some Dialogue box stuff.
This commit is contained in:
Rtch90 2011-12-17 22:53:20 +00:00
parent d047eeebdd
commit 2f05f06f10
10 changed files with 88 additions and 80 deletions

View File

@ -1,6 +1,6 @@
############################################################################# #############################################################################
# Makefile for building: Unuk-QT # Makefile for building: Unuk-QT
# Generated by qmake (2.01a) (Qt 4.7.3) on: Sat Dec 17 22:09:14 2011 # Generated by qmake (2.01a) (Qt 4.7.3) on: Sat Dec 17 22:49:43 2011
# Project: Unuk-QT.pro # Project: Unuk-QT.pro
# Template: app # Template: app
# Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro # Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro
@ -68,7 +68,8 @@ SOURCES = ../src/libUnuk/Debug.cpp \
../src/Unuk/Game.cpp \ ../src/Unuk/Game.cpp \
../src/libUnuk/MapElement.cpp \ ../src/libUnuk/MapElement.cpp \
../src/libUnuk/MapEntities.cpp \ ../src/libUnuk/MapEntities.cpp \
../src/libUnuk/FPS.cpp ../src/libUnuk/FPS.cpp \
../src/libUnuk/DialogueBox.cpp
OBJECTS = Debug.o \ OBJECTS = Debug.o \
main.o \ main.o \
Input.o \ Input.o \
@ -94,7 +95,8 @@ OBJECTS = Debug.o \
Game.o \ Game.o \
MapElement.o \ MapElement.o \
MapEntities.o \ MapEntities.o \
FPS.o FPS.o \
DialogueBox.o
DIST = /usr/share/qt4/mkspecs/common/g++.conf \ DIST = /usr/share/qt4/mkspecs/common/g++.conf \
/usr/share/qt4/mkspecs/common/unix.conf \ /usr/share/qt4/mkspecs/common/unix.conf \
/usr/share/qt4/mkspecs/common/linux.conf \ /usr/share/qt4/mkspecs/common/linux.conf \
@ -194,7 +196,7 @@ qmake: FORCE
dist: dist:
@$(CHK_DIR_EXISTS) .tmp/Unuk-QT1.0.0 || $(MKDIR) .tmp/Unuk-QT1.0.0 @$(CHK_DIR_EXISTS) .tmp/Unuk-QT1.0.0 || $(MKDIR) .tmp/Unuk-QT1.0.0
$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.h ../src/Libs/wglext.h ../src/Libs/glxext.h ../src/libUnuk/Input.h ../src/libUnuk/Rect.h ../src/libUnuk/Timer.h ../src/libUnuk/Font.h ../Constants.h ../src/Unuk/Constants.h ../src/libUnuk/ApplySurface.h ../src/Unuk/Globals.h ../src/libUnuk/ImageLoader.h ../src/libUnuk/TextureManager.h ../src/libUnuk/Texture.h ../src/libUnuk/Text.h ../src/libUnuk/MapTile.h ../src/libUnuk/Map.h ../src/libUnuk/Button.h ../src/libUnuk/ButtonToggle.h ../src/libUnuk/Menu.h ../src/libUnuk/MainMenu.h ../src/libUnuk/ParticleEmitter.h ../src/libUnuk/IngameMenu.h ../src/libUnuk/Collision.h ../src/libUnuk/Character.h ../src/libUnuk/NPC.h ../src/Unuk/Player.h ../src/Unuk/Game.h ../src/libUnuk/MapElement.h ../src/libUnuk/MapEntities.h ../src/libUnuk/FPS.h .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.cpp ../src/Unuk/main.cpp ../src/libUnuk/Input.cpp ../src/libUnuk/Timer.cpp ../src/libUnuk/Font.cpp ../src/libUnuk/ApplySurface.cpp ../src/Unuk/Globals.cpp ../src/libUnuk/Rect.cpp ../src/libUnuk/ImageLoader.cpp ../src/libUnuk/TextureManager.cpp ../src/libUnuk/Texture.cpp ../src/libUnuk/Text.cpp ../src/libUnuk/Map.cpp ../src/libUnuk/Button.cpp ../src/libUnuk/ButtonToggle.cpp ../src/libUnuk/ParticleEmitter.cpp ../src/libUnuk/MainMenu.cpp ../src/libUnuk/IngameMenu.cpp ../src/libUnuk/Collision.cpp ../src/libUnuk/Character.cpp ../src/libUnuk/NPC.cpp ../src/Unuk/Player.cpp ../src/Unuk/Game.cpp ../src/libUnuk/MapElement.cpp ../src/libUnuk/MapEntities.cpp ../src/libUnuk/FPS.cpp .tmp/Unuk-QT1.0.0/ && (cd `dirname .tmp/Unuk-QT1.0.0` && $(TAR) Unuk-QT1.0.0.tar Unuk-QT1.0.0 && $(COMPRESS) Unuk-QT1.0.0.tar) && $(MOVE) `dirname .tmp/Unuk-QT1.0.0`/Unuk-QT1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Unuk-QT1.0.0 $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.h ../src/Libs/wglext.h ../src/Libs/glxext.h ../src/libUnuk/Input.h ../src/libUnuk/Rect.h ../src/libUnuk/Timer.h ../src/libUnuk/Font.h ../Constants.h ../src/Unuk/Constants.h ../src/libUnuk/ApplySurface.h ../src/Unuk/Globals.h ../src/libUnuk/ImageLoader.h ../src/libUnuk/TextureManager.h ../src/libUnuk/Texture.h ../src/libUnuk/Text.h ../src/libUnuk/MapTile.h ../src/libUnuk/Map.h ../src/libUnuk/Button.h ../src/libUnuk/ButtonToggle.h ../src/libUnuk/Menu.h ../src/libUnuk/MainMenu.h ../src/libUnuk/ParticleEmitter.h ../src/libUnuk/IngameMenu.h ../src/libUnuk/Collision.h ../src/libUnuk/Character.h ../src/libUnuk/NPC.h ../src/Unuk/Player.h ../src/Unuk/Game.h ../src/libUnuk/MapElement.h ../src/libUnuk/MapEntities.h ../src/libUnuk/FPS.h ../src/libUnuk/DialogueBox.h .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.cpp ../src/Unuk/main.cpp ../src/libUnuk/Input.cpp ../src/libUnuk/Timer.cpp ../src/libUnuk/Font.cpp ../src/libUnuk/ApplySurface.cpp ../src/Unuk/Globals.cpp ../src/libUnuk/Rect.cpp ../src/libUnuk/ImageLoader.cpp ../src/libUnuk/TextureManager.cpp ../src/libUnuk/Texture.cpp ../src/libUnuk/Text.cpp ../src/libUnuk/Map.cpp ../src/libUnuk/Button.cpp ../src/libUnuk/ButtonToggle.cpp ../src/libUnuk/ParticleEmitter.cpp ../src/libUnuk/MainMenu.cpp ../src/libUnuk/IngameMenu.cpp ../src/libUnuk/Collision.cpp ../src/libUnuk/Character.cpp ../src/libUnuk/NPC.cpp ../src/Unuk/Player.cpp ../src/Unuk/Game.cpp ../src/libUnuk/MapElement.cpp ../src/libUnuk/MapEntities.cpp ../src/libUnuk/FPS.cpp ../src/libUnuk/DialogueBox.cpp .tmp/Unuk-QT1.0.0/ && (cd `dirname .tmp/Unuk-QT1.0.0` && $(TAR) Unuk-QT1.0.0.tar Unuk-QT1.0.0 && $(COMPRESS) Unuk-QT1.0.0.tar) && $(MOVE) `dirname .tmp/Unuk-QT1.0.0`/Unuk-QT1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Unuk-QT1.0.0
clean:compiler_clean clean:compiler_clean
@ -241,8 +243,10 @@ Debug.o: ../src/libUnuk/Debug.cpp ../src/libUnuk/Debug.h
main.o: ../src/Unuk/main.cpp ../src/libUnuk/MainMenu.h \ main.o: ../src/Unuk/main.cpp ../src/libUnuk/MainMenu.h \
../src/Unuk/Constants.h \ ../src/Unuk/Constants.h \
../src/libUnuk/Button.h \ ../src/libUnuk/FPS.h \
../src/Unuk/Globals.h \ ../src/Unuk/Globals.h \
../src/libUnuk/Timer.h \
../src/libUnuk/Button.h \
../src/libUnuk/Input.h \ ../src/libUnuk/Input.h \
../src/libUnuk/Text.h \ ../src/libUnuk/Text.h \
../src/libUnuk/ApplySurface.h \ ../src/libUnuk/ApplySurface.h \
@ -258,7 +262,6 @@ main.o: ../src/Unuk/main.cpp ../src/libUnuk/MainMenu.h \
../src/libUnuk/NPC.h \ ../src/libUnuk/NPC.h \
../src/libUnuk/Character.h \ ../src/libUnuk/Character.h \
../src/libUnuk/Collision.h \ ../src/libUnuk/Collision.h \
../src/libUnuk/Timer.h \
../src/Unuk/Game.h \ ../src/Unuk/Game.h \
../src/Unuk/Player.h \ ../src/Unuk/Player.h \
../src/libUnuk/IngameMenu.h \ ../src/libUnuk/IngameMenu.h \
@ -356,8 +359,10 @@ ParticleEmitter.o: ../src/libUnuk/ParticleEmitter.cpp ../src/libUnuk/ParticleEmi
MainMenu.o: ../src/libUnuk/MainMenu.cpp ../src/libUnuk/MainMenu.h \ MainMenu.o: ../src/libUnuk/MainMenu.cpp ../src/libUnuk/MainMenu.h \
../src/Unuk/Constants.h \ ../src/Unuk/Constants.h \
../src/libUnuk/Button.h \ ../src/libUnuk/FPS.h \
../src/Unuk/Globals.h \ ../src/Unuk/Globals.h \
../src/libUnuk/Timer.h \
../src/libUnuk/Button.h \
../src/libUnuk/Input.h \ ../src/libUnuk/Input.h \
../src/libUnuk/Text.h \ ../src/libUnuk/Text.h \
../src/libUnuk/ApplySurface.h \ ../src/libUnuk/ApplySurface.h \
@ -488,6 +493,9 @@ FPS.o: ../src/libUnuk/FPS.cpp ../src/libUnuk/FPS.h \
../src/libUnuk/Timer.h ../src/libUnuk/Timer.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o FPS.o ../src/libUnuk/FPS.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o FPS.o ../src/libUnuk/FPS.cpp
DialogueBox.o: ../src/libUnuk/DialogueBox.cpp ../src/libUnuk/DialogueBox.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o DialogueBox.o ../src/libUnuk/DialogueBox.cpp
####### Install ####### Install
install: FORCE install: FORCE

View File

@ -37,7 +37,8 @@ HEADERS += ../src/libUnuk/Debug.h \
../src/Unuk/Game.h \ ../src/Unuk/Game.h \
../src/libUnuk/MapElement.h \ ../src/libUnuk/MapElement.h \
../src/libUnuk/MapEntities.h \ ../src/libUnuk/MapEntities.h \
../src/libUnuk/FPS.h ../src/libUnuk/FPS.h \
../src/libUnuk/DialogueBox.h
SOURCES += ../src/libUnuk/Debug.cpp \ SOURCES += ../src/libUnuk/Debug.cpp \
../src/Unuk/main.cpp \ ../src/Unuk/main.cpp \
../src/libUnuk/Input.cpp \ ../src/libUnuk/Input.cpp \
@ -63,4 +64,5 @@ SOURCES += ../src/libUnuk/Debug.cpp \
../src/Unuk/Game.cpp \ ../src/Unuk/Game.cpp \
../src/libUnuk/MapElement.cpp \ ../src/libUnuk/MapElement.cpp \
../src/libUnuk/MapEntities.cpp \ ../src/libUnuk/MapEntities.cpp \
../src/libUnuk/FPS.cpp ../src/libUnuk/FPS.cpp \
../src/libUnuk/DialogueBox.cpp

View File

@ -40,24 +40,9 @@ int main() {
Game* game = NULL; Game* game = NULL;
MainMenu* menu = new MainMenu; MainMenu* menu = new MainMenu;
int fps;
int frame;
const int MAX_FPS = 20;
Timer frameTimer;
frameTimer.Start();
Timer fpsCalc;
fpsCalc.Start();
bool menuRunning = true; bool menuRunning = true;
while(menuRunning) { while(menuRunning) {
menu->Render(); switch(menu->Run()) {
SDL_Flip(screen);
switch(menu->HandleInput()) {
case mainMenuNothing:
break;
case mainMenuNewGame: case mainMenuNewGame:
delete menu; delete menu;
game = new Game; game = new Game;
@ -82,28 +67,12 @@ int main() {
delete menu; delete menu;
break; break;
} }
// Calculate and display the FPS.
if(fpsCalc.GetTicks() >= 1000) {
fps = frame / (fpsCalc.GetTicks() / 1000);
stringstream caption;
caption << "Unuk: fps - " << fps;
SDL_WM_SetCaption(caption.str().c_str(), NULL);
fpsCalc.Start();
frame = 0;
}
// Restrict the FPS.
if(1000 / MAX_FPS > frameTimer.GetTicks()) {
// SDL_Delay does not accept a float, so for higher
// framerate limits there is an innacuracy. This is
// as much as 3FPS at a limit of 60FPS.
SDL_Delay((1000 / MAX_FPS) - frameTimer.GetTicks());
}
frameTimer.Start();
frame++;
} }
//stringstream caption;
//caption << "Unuk - FPS: " << fps;
//SDL_WM_SetCaption(caption.str().c_str(), NULL);
// Clean up after ourselves. // Clean up after ourselves.
Text::FreeFonts(); Text::FreeFonts();

View File

@ -0,0 +1 @@
#include "DialogueBox.h"

13
src/libUnuk/DialogueBox.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef _DIALOGUEBOX_H_
#define _DIALOGUEBOX_H_
class DialogueBox {
public:
void Set(void);
private:
};
#endif

View File

@ -1,7 +1,13 @@
#include "FPS.h" #include "FPS.h"
FPS::FPS(void) { FPS::FPS(int maxFPSArg) {
_maxFPS = maxFPSArg;
_fps = 0;
_frame = 0;
_frameTimer.Start();
_fpsCalc.Start();
} }
FPS::~FPS(void) { FPS::~FPS(void) {

View File

@ -6,7 +6,7 @@
class FPS { class FPS {
public: public:
FPS(void); FPS(int maxFPSArg);
~FPS(void); ~FPS(void);
void LimitFPS(void); void LimitFPS(void);

View File

@ -59,42 +59,50 @@ MainMenu::~MainMenu(void) {
} }
mainMenuNavVal_t MainMenu::HandleInput(void) { mainMenuNavVal_t MainMenu::Run(void) {
while(SDL_PollEvent(&event)) { FPS fpsLimiter(20);
btnNewGame.CheckMouseOver();
if(btnNewGameActive) {
btnNewGameYes.CheckMouseOver();
btnNewGameNo.CheckMouseOver();
}
btnLoadGame.CheckMouseOver(); while(1) {
btnOptions.CheckMouseOver(); Render();
btnExit.CheckMouseOver(); SDL_Flip(screen);
if(event.type == SDL_MOUSEBUTTONUP) { while(SDL_PollEvent(&event)) {
if(event.button.button == SDL_BUTTON_LEFT) { btnNewGame.CheckMouseOver();
if(btnNewGame.CheckMouseOver()) if(btnNewGameActive) {
btnNewGameActive = !btnNewGameActive; btnNewGameYes.CheckMouseOver();
else if(btnLoadGame.CheckMouseOver()) btnNewGameNo.CheckMouseOver();
return mainMenuLoadGame; }
else if(btnOptions.CheckMouseOver())
return mainMenuOptions;
else if(btnExit.CheckMouseOver())
return mainMenuOptions;
if(btnNewGameActive) { btnLoadGame.CheckMouseOver();
if(btnNewGameYes.CheckMouseOver()) btnOptions.CheckMouseOver();
return mainMenuNewGame; btnExit.CheckMouseOver();
else if(btnNewGameNo.CheckMouseOver())
btnNewGameActive = false; if(event.type == SDL_MOUSEBUTTONUP) {
if(event.button.button == SDL_BUTTON_LEFT) {
if(btnNewGame.CheckMouseOver())
btnNewGameActive = !btnNewGameActive;
else if(btnLoadGame.CheckMouseOver())
return mainMenuLoadGame;
else if(btnOptions.CheckMouseOver())
return mainMenuOptions;
else if(btnExit.CheckMouseOver())
return mainMenuExitGame;
if(btnNewGameActive) {
if(btnNewGameYes.CheckMouseOver())
return mainMenuNewGame;
// else if(btnNewGameNo.CheckMouseOver())
// return btnNewGameActive = false;
}
} }
} }
else if(event.type == SDL_QUIT) {
return mainMenuExitGame;
}
} }
else if(event.type == SDL_QUIT) {
return mainMenuExitGame; fpsLimiter.LimitFPS();
}
} }
return mainMenuNothing;
} }
void MainMenu::Render(void) { void MainMenu::Render(void) {

View File

@ -1,13 +1,14 @@
#ifndef _MAINMENU_H_ #ifndef _MAINMENU_H_
#define _MAINMENU_H_ #define _MAINMENU_H_
#include "../Unuk/Constants.h" #include "../Unuk/Constants.h"
#include "FPS.h"
#include "Button.h" #include "Button.h"
#include "Map.h" #include "Map.h"
#include "Rect.h" #include "Rect.h"
#include "Text.h" #include "Text.h"
enum mainMenuNavVal_t { enum mainMenuNavVal_t {
mainMenuNothing,
mainMenuNewGame, mainMenuNewGame,
mainMenuLoadGame, mainMenuLoadGame,
mainMenuOptions, mainMenuOptions,
@ -19,7 +20,7 @@ public:
MainMenu(void); MainMenu(void);
~MainMenu(void); ~MainMenu(void);
mainMenuNavVal_t HandleInput(void); mainMenuNavVal_t Run(void);
void Render(void); void Render(void);
private: private:

View File

@ -2,7 +2,7 @@ CC = g++
CFLAGS = -ansi -Wall -g CFLAGS = -ansi -Wall -g
LDADD = -lGL -lGLU -lSDL -lSDL_ttf -lSDL_gfx -lSDL_image -ltinyxml LDADD = -lGL -lGLU -lSDL -lSDL_ttf -lSDL_gfx -lSDL_image -ltinyxml
objects = ApplySurface.o Button.o ButtonToggle.o Character.o Collision.o \ objects = ApplySurface.o Button.o ButtonToggle.o Character.o Collision.o \
Debug.o Font.o ImageLoader.o IngameMenu.o Input.o MainMenu.o \ Debug.o DialogueBox.o Font.o FPS.o ImageLoader.o IngameMenu.o Input.o MainMenu.o \
Map.o MapElement.o MapEntities.o NPC.o ParticleEmitter.o \ Map.o MapElement.o MapEntities.o NPC.o ParticleEmitter.o \
Rect.o Text.o Texture.o TextureManager.o Timer.o \ Rect.o Text.o Texture.o TextureManager.o Timer.o \