-- [Add] Added an ingame Menu.

-- [Add] Added basic collision.
This commit is contained in:
Rtch90 2011-11-20 12:08:49 +00:00
parent 422eeee387
commit 65fe958f43
7 changed files with 188 additions and 18 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 Nov 19 22:57:56 2011 # Generated by qmake (2.01a) (Qt 4.7.3) on: Sun Nov 20 11:37:54 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
@ -59,7 +59,9 @@ SOURCES = ../src/libUnuk/Debug.cpp \
../src/libUnuk/Button.cpp \ ../src/libUnuk/Button.cpp \
../src/libUnuk/ButtonToggle.cpp \ ../src/libUnuk/ButtonToggle.cpp \
../src/libUnuk/ParticleEmitter.cpp \ ../src/libUnuk/ParticleEmitter.cpp \
../src/libUnuk/MainMenu.cpp ../src/libUnuk/MainMenu.cpp \
../src/libUnuk/IngameMenu.cpp \
../src/libUnuk/Collision.cpp
OBJECTS = Debug.o \ OBJECTS = Debug.o \
main.o \ main.o \
Input.o \ Input.o \
@ -76,7 +78,9 @@ OBJECTS = Debug.o \
Button.o \ Button.o \
ButtonToggle.o \ ButtonToggle.o \
ParticleEmitter.o \ ParticleEmitter.o \
MainMenu.o MainMenu.o \
IngameMenu.o \
Collision.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 \
@ -176,7 +180,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 .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 .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 .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 .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
@ -333,6 +337,23 @@ MainMenu.o: ../src/libUnuk/MainMenu.cpp ../src/libUnuk/MainMenu.h \
../src/libUnuk/MapTile.h ../src/libUnuk/MapTile.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o MainMenu.o ../src/libUnuk/MainMenu.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o MainMenu.o ../src/libUnuk/MainMenu.cpp
IngameMenu.o: ../src/libUnuk/IngameMenu.cpp ../src/libUnuk/IngameMenu.h \
../src/libUnuk/Menu.h \
../src/Unuk/Globals.h \
../src/Unuk/Constants.h \
../src/libUnuk/Button.h \
../src/libUnuk/Input.h \
../src/libUnuk/Text.h \
../src/libUnuk/ApplySurface.h \
../src/libUnuk/Debug.h \
../src/libUnuk/Font.h \
../src/libUnuk/Rect.h \
../src/libUnuk/ButtonToggle.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o IngameMenu.o ../src/libUnuk/IngameMenu.cpp
Collision.o: ../src/libUnuk/Collision.cpp ../src/libUnuk/Collision.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Collision.o ../src/libUnuk/Collision.cpp
####### Install ####### Install
install: FORCE install: FORCE

View File

@ -26,7 +26,9 @@ HEADERS += ../src/libUnuk/Debug.h \
../src/libUnuk/ButtonToggle.h \ ../src/libUnuk/ButtonToggle.h \
../src/libUnuk/Menu.h \ ../src/libUnuk/Menu.h \
../src/libUnuk/MainMenu.h \ ../src/libUnuk/MainMenu.h \
../src/libUnuk/ParticleEmitter.h ../src/libUnuk/ParticleEmitter.h \
../src/libUnuk/IngameMenu.h \
../src/libUnuk/Collision.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 \
@ -43,4 +45,6 @@ SOURCES += ../src/libUnuk/Debug.cpp \
../src/libUnuk/Button.cpp \ ../src/libUnuk/Button.cpp \
../src/libUnuk/ButtonToggle.cpp \ ../src/libUnuk/ButtonToggle.cpp \
../src/libUnuk/ParticleEmitter.cpp \ ../src/libUnuk/ParticleEmitter.cpp \
../src/libUnuk/MainMenu.cpp ../src/libUnuk/MainMenu.cpp \
../src/libUnuk/IngameMenu.cpp \
../src/libUnuk/Collision.cpp

View File

@ -76,7 +76,7 @@
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value> <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList"> <valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-PlNAR2DRhi,guid=647dcd2f857df095e9fb55f200000037</value> <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-JFV86sNXp3,guid=10f3cd54b9c84ffcc277c29900000065</value>
<value type="QString">DISPLAY=:0</value> <value type="QString">DISPLAY=:0</value>
<value type="QString">HOME=/home/allanis</value> <value type="QString">HOME=/home/allanis</value>
<value type="QString">HUSHLOGIN=FALSE</value> <value type="QString">HUSHLOGIN=FALSE</value>
@ -89,13 +89,13 @@
<value type="QString">QTDIR=/usr/share/qt4</value> <value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value> <value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=1</value> <value type="QString">SHLVL=1</value>
<value type="QString">SSH_AGENT_PID=3247</value> <value type="QString">SSH_AGENT_PID=3195</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aXmQFZXr3222/agent.3222</value> <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-xWDTLRHH3170/agent.3170</value>
<value type="QString">TERM=linux</value> <value type="QString">TERM=linux</value>
<value type="QString">USER=allanis</value> <value type="QString">USER=allanis</value>
<value type="QString">WINDOWPATH=7</value> <value type="QString">WINDOWPATH=7</value>
<value type="QString">XAUTHORITY=/home/allanis/.Xauthority</value> <value type="QString">XAUTHORITY=/home/allanis/.Xauthority</value>
<value type="QString">XDG_SESSION_COOKIE=6de6dd7b78e791242262c6460000012e-1320507013.488131-497740237</value> <value type="QString">XDG_SESSION_COOKIE=6de6dd7b78e791242262c6460000012e-1321716676.954190-403254936</value>
<value type="QString">_=/usr/bin/startx</value> <value type="QString">_=/usr/bin/startx</value>
</valuelist> </valuelist>
<valuelist key="abstractProcess.arguments" type="QVariantList"> <valuelist key="abstractProcess.arguments" type="QVariantList">
@ -115,7 +115,7 @@
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value> <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList"> <valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-PlNAR2DRhi,guid=647dcd2f857df095e9fb55f200000037</value> <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-JFV86sNXp3,guid=10f3cd54b9c84ffcc277c29900000065</value>
<value type="QString">DISPLAY=:0</value> <value type="QString">DISPLAY=:0</value>
<value type="QString">HOME=/home/allanis</value> <value type="QString">HOME=/home/allanis</value>
<value type="QString">HUSHLOGIN=FALSE</value> <value type="QString">HUSHLOGIN=FALSE</value>
@ -128,13 +128,13 @@
<value type="QString">QTDIR=/usr/share/qt4</value> <value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value> <value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=1</value> <value type="QString">SHLVL=1</value>
<value type="QString">SSH_AGENT_PID=3247</value> <value type="QString">SSH_AGENT_PID=3195</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aXmQFZXr3222/agent.3222</value> <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-xWDTLRHH3170/agent.3170</value>
<value type="QString">TERM=linux</value> <value type="QString">TERM=linux</value>
<value type="QString">USER=allanis</value> <value type="QString">USER=allanis</value>
<value type="QString">WINDOWPATH=7</value> <value type="QString">WINDOWPATH=7</value>
<value type="QString">XAUTHORITY=/home/allanis/.Xauthority</value> <value type="QString">XAUTHORITY=/home/allanis/.Xauthority</value>
<value type="QString">XDG_SESSION_COOKIE=6de6dd7b78e791242262c6460000012e-1320507013.488131-497740237</value> <value type="QString">XDG_SESSION_COOKIE=6de6dd7b78e791242262c6460000012e-1321716676.954190-403254936</value>
<value type="QString">_=/usr/bin/startx</value> <value type="QString">_=/usr/bin/startx</value>
</valuelist> </valuelist>
<value key="abstractProcess.IgnoreReturnValue" type="bool">false</value> <value key="abstractProcess.IgnoreReturnValue" type="bool">false</value>
@ -151,7 +151,7 @@
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value> <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
<valuelist key="abstractProcess.Environment" type="QVariantList"> <valuelist key="abstractProcess.Environment" type="QVariantList">
<value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-PlNAR2DRhi,guid=647dcd2f857df095e9fb55f200000037</value> <value type="QString">DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-JFV86sNXp3,guid=10f3cd54b9c84ffcc277c29900000065</value>
<value type="QString">DISPLAY=:0</value> <value type="QString">DISPLAY=:0</value>
<value type="QString">HOME=/home/allanis</value> <value type="QString">HOME=/home/allanis</value>
<value type="QString">HUSHLOGIN=FALSE</value> <value type="QString">HUSHLOGIN=FALSE</value>
@ -164,13 +164,13 @@
<value type="QString">QTDIR=/usr/share/qt4</value> <value type="QString">QTDIR=/usr/share/qt4</value>
<value type="QString">SHELL=/bin/bash</value> <value type="QString">SHELL=/bin/bash</value>
<value type="QString">SHLVL=1</value> <value type="QString">SHLVL=1</value>
<value type="QString">SSH_AGENT_PID=3247</value> <value type="QString">SSH_AGENT_PID=3195</value>
<value type="QString">SSH_AUTH_SOCK=/tmp/ssh-aXmQFZXr3222/agent.3222</value> <value type="QString">SSH_AUTH_SOCK=/tmp/ssh-xWDTLRHH3170/agent.3170</value>
<value type="QString">TERM=linux</value> <value type="QString">TERM=linux</value>
<value type="QString">USER=allanis</value> <value type="QString">USER=allanis</value>
<value type="QString">WINDOWPATH=7</value> <value type="QString">WINDOWPATH=7</value>
<value type="QString">XAUTHORITY=/home/allanis/.Xauthority</value> <value type="QString">XAUTHORITY=/home/allanis/.Xauthority</value>
<value type="QString">XDG_SESSION_COOKIE=6de6dd7b78e791242262c6460000012e-1320507013.488131-497740237</value> <value type="QString">XDG_SESSION_COOKIE=6de6dd7b78e791242262c6460000012e-1321716676.954190-403254936</value>
<value type="QString">_=/usr/bin/startx</value> <value type="QString">_=/usr/bin/startx</value>
</valuelist> </valuelist>
<value key="abstractProcess.IgnoreReturnValue" type="bool">true</value> <value key="abstractProcess.IgnoreReturnValue" type="bool">true</value>

27
src/libUnuk/Collision.cpp Normal file
View File

@ -0,0 +1,27 @@
#include "Collision.h"
bool CheckCollisionRect(SDL_Rect a, SDL_Rect b) {
if(a.y + a.h <= b.y)
return false;
if(a.y >= b.y + b.h)
return false;
if(a.x + a.w <= b.x)
return false;
if(a.x >= b.x + b.w)
return false;
return true;
}
bool CheckCollisionXY(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2) {
if(y1 + h1 <= y2)
return false;
if(y1 >= y2 + h2)
return false;
if(x1 + w1 <= x2)
return false;
if(x1 >= x2 + w2)
return false;
return true;
}

8
src/libUnuk/Collision.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef _COLLISION_H_
#define _COLLISION_H_
#include <SDL/SDL.h>
bool CheckCollisionRect(SDL_Rect a, SDL_Rect b);
bool CheckCollisionXY(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2);
#endif

View File

@ -0,0 +1,77 @@
#include "IngameMenu.h"
IngameMenu::IngameMenu(void) {
m_isActive = false;
btnResume.SetOutRGB(200, 200, 200);
btnResume.SetOverRGB(255, 255, 255);
btnResume.SetTextRGB(0, 0, 0);
btnResume.SetText("Resume Game");
btnResume.SetXY((SCREEN_WIDTH / 2) - (btnResume.GetWidth() / 2), 50);
btnSaveGame.SetOutRGB(200, 200, 200);
btnSaveGame.SetOverRGB(255, 255, 255);
btnSaveGame.SetTextRGB(0, 0, 0);
btnSaveGame.SetText("SaveGame");
btnSaveGame.SetXY((SCREEN_WIDTH / 2) - (btnSaveGame.GetWidth() / 2), 100);
btnLoadGame.SetOutRGB(200, 200, 200);
btnLoadGame.SetOverRGB(255, 255, 255);
btnLoadGame.SetTextRGB(0, 0, 0);
btnLoadGame.SetText("LoadGame");
btnLoadGame.SetXY((SCREEN_WIDTH / 2) - (btnLoadGame.GetWidth() / 2), 150);
btnOptions.SetOutRGB(200, 200, 200);
btnOptions.SetOverRGB(255, 255, 255);
btnOptions.SetTextRGB(0, 0, 0);
btnOptions.SetText("Options");
btnOptions.SetXY((SCREEN_WIDTH / 2) - (btnOptions.GetWidth() / 2), 200);
btnExitToMenu.SetOutRGB(200, 200, 200);
btnExitToMenu.SetOverRGB(255, 255, 255);
btnExitToMenu.SetTextRGB(0, 0, 0);
btnExitToMenu.SetText("Exit To Main Menu");
btnExitToMenu.SetXY((SCREEN_WIDTH / 2) - (btnExitToMenu.GetWidth() / 2), 250);
}
IngameMenu::~IngameMenu(void) {
}
int IngameMenu::HandleInput(void) {
while(SDL_PollEvent(&event)) {
btnResume.CheckMouseOver();
btnSaveGame.CheckMouseOver();
btnLoadGame.CheckMouseOver();
btnOptions.CheckMouseOver();
btnExitToMenu.CheckMouseOver();
if(event.key.type == SDL_KEYDOWN) {
if(event.key.keysym.sym == SDLK_ESCAPE)
return INGAME_MENU_RESUME;
}
else if(event.type == SDL_MOUSEBUTTONUP) {
if(event.button.button == SDL_BUTTON_LEFT) {
if(btnResume.CheckMouseOver())
return INGAME_MENU_RESUME;
else if(btnSaveGame.CheckMouseOver())
return INGAME_MENU_SAVE_GAME;
else if(btnLoadGame.CheckMouseOver())
return INGAME_MENU_LOAD_GAME;
else if(btnOptions.CheckMouseOver())
return INGAME_MENU_OPTIONS;
else if(btnExitToMenu.CheckMouseOver())
return INGAME_MENU_EXIT_TO_MMENU;
}
}
}
return INGAME_MENU_NOTHING;
}
void IngameMenu::Render(void) {
btnResume.Render();
btnSaveGame.Render();
btnLoadGame.Render();
btnOptions.Render();
btnExitToMenu.Render();
}

33
src/libUnuk/IngameMenu.h Normal file
View File

@ -0,0 +1,33 @@
#ifndef _INGAMEMENU_H_
#define _INGAMEMENU_H_
#include "Menu.h"
const int INGAME_MENU_NOTHING = 0;
const int INGAME_MENU_RESUME = 1;
const int INGAME_MENU_SAVE_GAME = 2;
const int INGAME_MENU_LOAD_GAME = 3;
const int INGAME_MENU_OPTIONS = 4;
const int INGAME_MENU_EXIT_TO_MMENU = 5;
class IngameMenu : public Menu {
public:
IngameMenu(void);
~IngameMenu(void);
int HandleInput(void);
void Render(void);
void SetStatus(bool arg) { m_isActive = arg; }
bool GetStatus(void) { return m_isActive; }
private:
bool m_isActive;
Button btnResume;
Button btnSaveGame;
Button btnLoadGame;
Button btnOptions;
Button btnExitToMenu;
};
#endif