[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
# 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
# Template: app
# 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/libUnuk/MapElement.cpp \
../src/libUnuk/MapEntities.cpp \
../src/libUnuk/FPS.cpp
../src/libUnuk/FPS.cpp \
../src/libUnuk/DialogueBox.cpp
OBJECTS = Debug.o \
main.o \
Input.o \
@ -94,7 +95,8 @@ OBJECTS = Debug.o \
Game.o \
MapElement.o \
MapEntities.o \
FPS.o
FPS.o \
DialogueBox.o
DIST = /usr/share/qt4/mkspecs/common/g++.conf \
/usr/share/qt4/mkspecs/common/unix.conf \
/usr/share/qt4/mkspecs/common/linux.conf \
@ -194,7 +196,7 @@ qmake: FORCE
dist:
@$(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
@ -241,8 +243,10 @@ Debug.o: ../src/libUnuk/Debug.cpp ../src/libUnuk/Debug.h
main.o: ../src/Unuk/main.cpp ../src/libUnuk/MainMenu.h \
../src/Unuk/Constants.h \
../src/libUnuk/Button.h \
../src/libUnuk/FPS.h \
../src/Unuk/Globals.h \
../src/libUnuk/Timer.h \
../src/libUnuk/Button.h \
../src/libUnuk/Input.h \
../src/libUnuk/Text.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/Character.h \
../src/libUnuk/Collision.h \
../src/libUnuk/Timer.h \
../src/Unuk/Game.h \
../src/Unuk/Player.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 \
../src/Unuk/Constants.h \
../src/libUnuk/Button.h \
../src/libUnuk/FPS.h \
../src/Unuk/Globals.h \
../src/libUnuk/Timer.h \
../src/libUnuk/Button.h \
../src/libUnuk/Input.h \
../src/libUnuk/Text.h \
../src/libUnuk/ApplySurface.h \
@ -488,6 +493,9 @@ FPS.o: ../src/libUnuk/FPS.cpp ../src/libUnuk/FPS.h \
../src/libUnuk/Timer.h
$(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: FORCE

View File

@ -37,7 +37,8 @@ HEADERS += ../src/libUnuk/Debug.h \
../src/Unuk/Game.h \
../src/libUnuk/MapElement.h \
../src/libUnuk/MapEntities.h \
../src/libUnuk/FPS.h
../src/libUnuk/FPS.h \
../src/libUnuk/DialogueBox.h
SOURCES += ../src/libUnuk/Debug.cpp \
../src/Unuk/main.cpp \
../src/libUnuk/Input.cpp \
@ -63,4 +64,5 @@ SOURCES += ../src/libUnuk/Debug.cpp \
../src/Unuk/Game.cpp \
../src/libUnuk/MapElement.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;
MainMenu* menu = new MainMenu;
int fps;
int frame;
const int MAX_FPS = 20;
Timer frameTimer;
frameTimer.Start();
Timer fpsCalc;
fpsCalc.Start();
bool menuRunning = true;
while(menuRunning) {
menu->Render();
SDL_Flip(screen);
switch(menu->HandleInput()) {
case mainMenuNothing:
break;
switch(menu->Run()) {
case mainMenuNewGame:
delete menu;
game = new Game;
@ -82,28 +67,12 @@ int main() {
delete menu;
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.
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"
FPS::FPS(void) {
FPS::FPS(int maxFPSArg) {
_maxFPS = maxFPSArg;
_fps = 0;
_frame = 0;
_frameTimer.Start();
_fpsCalc.Start();
}
FPS::~FPS(void) {

View File

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

View File

@ -59,42 +59,50 @@ MainMenu::~MainMenu(void) {
}
mainMenuNavVal_t MainMenu::HandleInput(void) {
while(SDL_PollEvent(&event)) {
btnNewGame.CheckMouseOver();
if(btnNewGameActive) {
btnNewGameYes.CheckMouseOver();
btnNewGameNo.CheckMouseOver();
}
mainMenuNavVal_t MainMenu::Run(void) {
FPS fpsLimiter(20);
btnLoadGame.CheckMouseOver();
btnOptions.CheckMouseOver();
btnExit.CheckMouseOver();
while(1) {
Render();
SDL_Flip(screen);
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 mainMenuOptions;
while(SDL_PollEvent(&event)) {
btnNewGame.CheckMouseOver();
if(btnNewGameActive) {
btnNewGameYes.CheckMouseOver();
btnNewGameNo.CheckMouseOver();
}
if(btnNewGameActive) {
if(btnNewGameYes.CheckMouseOver())
return mainMenuNewGame;
else if(btnNewGameNo.CheckMouseOver())
btnNewGameActive = false;
btnLoadGame.CheckMouseOver();
btnOptions.CheckMouseOver();
btnExit.CheckMouseOver();
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) {

View File

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

View File

@ -2,7 +2,7 @@ CC = g++
CFLAGS = -ansi -Wall -g
LDADD = -lGL -lGLU -lSDL -lSDL_ttf -lSDL_gfx -lSDL_image -ltinyxml
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 \
Rect.o Text.o Texture.o TextureManager.o Timer.o \