Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
1
142GameCenter
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nelson Phillips
142GameCenter
Commits
91e3b5f0
Commit
91e3b5f0
authored
Mar 11, 2019
by
Konrad McClure
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added menus for each game
parent
34ac98cf
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
540 additions
and
166 deletions
+540
-166
GameEngine/2048MenuState.cpp
GameEngine/2048MenuState.cpp
+133
-0
GameEngine/2048MenuState.h
GameEngine/2048MenuState.h
+35
-0
GameEngine/2048menu.txt
GameEngine/2048menu.txt
+12
-0
GameEngine/BaseMenuState.cpp
GameEngine/BaseMenuState.cpp
+126
-0
GameEngine/BaseMenuState.h
GameEngine/BaseMenuState.h
+34
-0
GameEngine/MainMenuState.cpp
GameEngine/MainMenuState.cpp
+4
-4
GameEngine/RunGame.sh
GameEngine/RunGame.sh
+1
-2
GameEngine/SnakeGameState.cpp
GameEngine/SnakeGameState.cpp
+9
-11
GameEngine/SnakeGameState.h
GameEngine/SnakeGameState.h
+6
-7
GameEngine/SnakeMenuState.cpp
GameEngine/SnakeMenuState.cpp
+133
-0
GameEngine/SnakeMenuState.h
GameEngine/SnakeMenuState.h
+35
-0
GameEngine/TestState1.cpp
GameEngine/TestState1.cpp
+0
-47
GameEngine/TestState2.cpp
GameEngine/TestState2.cpp
+0
-47
GameEngine/TestState3.cpp
GameEngine/TestState3.cpp
+0
-48
GameEngine/snakemenu.txt
GameEngine/snakemenu.txt
+12
-0
No files found.
GameEngine/2048MenuState.cpp
0 → 100644
View file @
91e3b5f0
#include <iostream>
#include "2048MenuState.h"
#include "2048GameState.h"
#include <string>
#include <fstream>
#include <streambuf>
using
namespace
std
;
C2048MenuState
C2048MenuState
::
m_2048MenuState
;
void
C2048MenuState
::
Init
()
{
if
(
!
isInit
)
{
// Load in main menu title
ifstream
fs
(
"2048menu.txt"
);
fs
.
seekg
(
0
,
ios
::
end
);
menuTitle
.
reserve
(
fs
.
tellg
());
fs
.
seekg
(
0
,
ios
::
beg
);
menuTitle
.
assign
((
istreambuf_iterator
<
char
>
(
fs
)),
istreambuf_iterator
<
char
>
());
// Add menu options
menuOptions
.
push_back
(
"Play Game"
);
menuOptions
.
push_back
(
"High Scores"
);
menuOptions
.
push_back
(
"Return to Main Menu"
);
// Set name for debugging
stateName
=
"2048menu"
;
// Set that is has been initialized
isInit
=
true
;
}
// Set first input and draw the menu
input
=
' '
;
Draw
(
nullptr
);
}
void
C2048MenuState
::
Pause
()
{
}
void
C2048MenuState
::
Resume
()
{
input
=
0
;
menuPos
=
0
;
}
void
C2048MenuState
::
Cleanup
()
{
}
void
C2048MenuState
::
HandleEvents
(
CGameEngine
*
game
)
{
while
(
game
->
newInput
==
false
)
{
input
=
' '
;
}
input
=
game
->
input
;
game
->
newInput
=
false
;
}
void
C2048MenuState
::
Update
(
CGameEngine
*
game
)
{
switch
(
input
)
{
case
'w'
:
menuPos
--
;
break
;
case
's'
:
menuPos
++
;
break
;
case
'd'
:
{
switch
(
menuPos
)
{
case
0
:
//Play Game
game
->
PushState
(
C2048GameState
::
Instance
());
break
;
case
1
:
//Snake
//game->PushState(CHighScore::Instance());
break
;
case
2
:
//Quit
game
->
PopState
();
break
;
}
break
;
}
default:
break
;
}
if
(
menuPos
<
0
)
{
menuPos
=
0
;
}
if
(
menuPos
>=
menuOptions
.
size
())
{
menuPos
=
menuOptions
.
size
()
-
1
;
}
}
void
C2048MenuState
::
Draw
(
CGameEngine
*
game
)
{
system
(
"stty cooked"
);
cout
<<
menuTitle
<<
endl
;
for
(
int
i
=
0
;
i
<
menuOptions
.
size
();
i
++
)
{
if
(
i
==
menuPos
)
{
cout
<<
" * "
<<
menuOptions
.
at
(
i
)
<<
endl
;
}
else
{
cout
<<
" "
<<
menuOptions
.
at
(
i
)
<<
endl
;
}
}
cout
<<
"
\n\n\n
"
<<
"Press w and s to move up and down, d to select"
<<
endl
;
system
(
"stty raw"
);
}
GameEngine/
TestState2
.h
→
GameEngine/
2048MenuState
.h
View file @
91e3b5f0
#ifndef
TESTSTATE2
_H
#define
TESTSTATE2
_H
#ifndef
C2048MENUSTATE
_H
#define
C2048MENUSTATE
_H
#include "GameState.h"
#include <iostream>
#include <string>
class
C
TestState2
:
public
CGameState
class
C
2048MenuState
:
public
CGameState
{
public:
void
Init
();
...
...
@@ -17,14 +18,18 @@ class CTestState2 : public CGameState
void
Update
(
CGameEngine
*
game
);
void
Draw
(
CGameEngine
*
game
);
static
C
TestState2
*
Instance
()
{
return
&
m_TestState2
;
}
static
C
2048MenuState
*
Instance
()
{
return
&
m_2048MenuState
;
}
protected:
C
TestState2
()
{}
C
2048MenuState
()
{}
private:
static
CTestState2
m_TestState2
;
int
runtimes
=
0
;
static
C2048MenuState
m_2048MenuState
;
char
input
;
int
menuPos
;
string
menuTitle
;
vector
<
string
>
menuOptions
;
bool
isInit
=
false
;
};
#endif
\ No newline at end of file
GameEngine/2048menu.txt
0 → 100644
View file @
91e3b5f0
==========================
|| ___ ___ _ _ ___ ||
|| |__ \ / _ \| || | / _ \ ||
|| ) | | | | || || (_) | ||
|| / /| | | |__ _> _ < ||
|| / /_| |_| | | || (_) | ||
|| |____|\___/ |_| \___/ ||
|| ||
==========================
\ No newline at end of file
GameEngine/BaseMenuState.cpp
0 → 100644
View file @
91e3b5f0
#include <iostream>
#include "BaseMenuState.h"
#include <string>
#include <fstream>
#include <streambuf>
using
namespace
std
;
CBaseMenuState
CBaseMenuState
::
m_BaseMenuState
;
void
CBaseMenuState
::
Init
()
{
// Load in main menu title
// ifstream fs();
// fs.seekg(0, ios::end);
// menuTitle.reserve(fs.tellg());
// fs.seekg(0, ios::beg);
// menuTitle.assign((istreambuf_iterator<char>(fs)),
// istreambuf_iterator<char>());
// Add menu options
menuOptions
.
push_back
(
"Play Game"
);
menuOptions
.
push_back
(
"High Scores"
);
menuOptions
.
push_back
(
"Return to Main Menu"
);
// Set name for debugging
stateName
=
"basemenu"
;
// Set first input and draw the menu
input
=
' '
;
Draw
(
nullptr
);
}
void
CBaseMenuState
::
Pause
()
{
}
void
CBaseMenuState
::
Resume
()
{
input
=
0
;
menuPos
=
0
;
}
void
CBaseMenuState
::
Cleanup
()
{
}
void
CBaseMenuState
::
HandleEvents
(
CGameEngine
*
game
)
{
while
(
game
->
newInput
==
false
)
{
input
=
' '
;
}
input
=
game
->
input
;
game
->
newInput
=
false
;
}
void
CBaseMenuState
::
Update
(
CGameEngine
*
game
)
{
switch
(
input
)
{
case
'w'
:
menuPos
--
;
break
;
case
's'
:
menuPos
++
;
break
;
case
'd'
:
{
switch
(
menuPos
)
{
case
0
:
//Play Game
//game->PushState(CGameState::Instance());
break
;
case
1
:
//Snake
//game->PushState(CHighScore::Instance());
break
;
case
2
:
//Quit
game
->
PopState
();
break
;
}
break
;
}
default:
break
;
}
if
(
menuPos
<
0
)
{
menuPos
=
0
;
}
if
(
menuPos
>=
menuOptions
.
size
())
{
menuPos
=
menuOptions
.
size
()
-
1
;
}
}
void
CBaseMenuState
::
Draw
(
CGameEngine
*
game
)
{
system
(
"stty cooked"
);
cout
<<
menuTitle
<<
endl
;
for
(
int
i
=
0
;
i
<
menuOptions
.
size
();
i
++
)
{
if
(
i
==
menuPos
)
{
cout
<<
" * "
<<
menuOptions
.
at
(
i
)
<<
endl
;
}
else
{
cout
<<
" "
<<
menuOptions
.
at
(
i
)
<<
endl
;
}
}
cout
<<
"
\n\n\n
"
<<
"Press w and s to move up and down, d to select"
<<
endl
;
system
(
"stty raw"
);
}
GameEngine/
Snake
State.h
→
GameEngine/
BaseMenu
State.h
View file @
91e3b5f0
#ifndef
SNAKE
STATE_H
#define
SNAKE
STATE_H
#ifndef
BASEMENU
STATE_H
#define
BASEMENU
STATE_H
#include "GameState.h"
#include <iostream>
#include <string>
class
C
Snake
State
:
public
CGameState
class
C
BaseMenu
State
:
public
CGameState
{
public:
void
Init
();
...
...
@@ -17,13 +18,17 @@ class CSnakeState : public CGameState
void
Update
(
CGameEngine
*
game
);
void
Draw
(
CGameEngine
*
game
);
static
C
SnakeState
*
Instance
()
{
return
&
m_Snake
State
;
}
static
C
BaseMenuState
*
Instance
()
{
return
&
m_BaseMenu
State
;
}
protected:
C
Snake
State
()
{}
C
BaseMenu
State
()
{}
private:
static
CSnakeState
m_SnakeState
;
static
CBaseMenuState
m_BaseMenuState
;
char
input
;
int
menuPos
;
string
menuTitle
;
vector
<
string
>
menuOptions
;
};
#endif
\ No newline at end of file
GameEngine/MainMenuState.cpp
View file @
91e3b5f0
#include <iostream>
#include "MainMenuState.h"
#include "2048
Game
State.h"
#include "SnakeState.h"
#include "2048
Menu
State.h"
#include "Snake
Menu
State.h"
#include <string>
#include <fstream>
...
...
@@ -76,11 +76,11 @@ void CMainMenuState::Update(CGameEngine* game)
switch
(
menuPos
)
{
case
0
:
//2048
game
->
PushState
(
C2048
Game
State
::
Instance
());
game
->
PushState
(
C2048
Menu
State
::
Instance
());
break
;
case
1
:
//Snake
game
->
PushState
(
CSnakeState
::
Instance
());
game
->
PushState
(
CSnake
Menu
State
::
Instance
());
break
;
case
2
:
//Quit
...
...
GameEngine/RunGame.sh
View file @
91e3b5f0
g++
-std
=
c++11
-pthread
*
.cpp ../2048/
*
.cpp ../Testings/Snake/ReadInput.cpp
./a.out
\ No newline at end of file
g++
-std
=
c++11
-pthread
*
.cpp ../2048/
*
.cpp ../Testings/Snake/ReadInput.cpp
&&
./a.out
\ No newline at end of file
GameEngine/SnakeState.cpp
→
GameEngine/Snake
Game
State.cpp
View file @
91e3b5f0
#include <iostream>
#include "SnakeState.h"
// #include "TestState2.h"
// #include "TestState3.h"
#include "SnakeGameState.h"
#include "2048GameState.h"
CSnake
State
CSnakeState
::
m_Snak
eState
;
CSnake
GameState
CSnakeGameState
::
m_SnakeGam
eState
;
void
CSnakeState
::
Init
()
void
CSnake
Game
State
::
Init
()
{
// cout << " SnakeState Init" << endl;
// stateName = "SnakeState";
}
void
CSnakeState
::
Pause
()
void
CSnake
Game
State
::
Pause
()
{
// cout << " SnakeState Pause" << endl;
}
void
CSnakeState
::
Resume
()
void
CSnake
Game
State
::
Resume
()
{
// cout << " SnakeState Resume" << endl;
}
void
CSnakeState
::
Cleanup
()
void
CSnake
Game
State
::
Cleanup
()
{
// cout << " SnakeState Cleanup" << endl;
}
void
CSnakeState
::
HandleEvents
(
CGameEngine
*
game
)
void
CSnake
Game
State
::
HandleEvents
(
CGameEngine
*
game
)
{
// cout << " SnakeState Handle Events" << endl;
}
void
CSnakeState
::
Update
(
CGameEngine
*
game
)
void
CSnake
Game
State
::
Update
(
CGameEngine
*
game
)
{
// cout << " SnakeState Update" << endl;
while
(
game
->
input
!=
'd'
)
{}
game
->
PopState
();
}
void
CSnakeState
::
Draw
(
CGameEngine
*
game
)
void
CSnake
Game
State
::
Draw
(
CGameEngine
*
game
)
{
// cout << " SnakeState Draw" << endl;
}
...
...
GameEngine/
TestState3
.h
→
GameEngine/
SnakeGameState
.h
View file @
91e3b5f0
#ifndef
TESTSTATE3
_H
#define
TESTSTATE3
_H
#ifndef
SNAKEGAMESTATE
_H
#define
SNAKEGAMESTATE
_H
#include "GameState.h"
#include <iostream>
class
C
TestState3
:
public
CGameState
class
C
SnakeGameState
:
public
CGameState
{
public:
void
Init
();
...
...
@@ -17,14 +17,13 @@ class CTestState3 : public CGameState
void
Update
(
CGameEngine
*
game
);
void
Draw
(
CGameEngine
*
game
);
static
C
TestState3
*
Instance
()
{
return
&
m_TestState3
;
}
static
C
SnakeGameState
*
Instance
()
{
return
&
m_SnakeGameState
;
}
protected:
C
TestState3
()
{}
C
SnakeGameState
()
{}
private:
static
CTestState3
m_TestState3
;
int
runtimes
=
0
;
static
CSnakeGameState
m_SnakeGameState
;
};
#endif
\ No newline at end of file
GameEngine/SnakeMenuState.cpp
0 → 100644
View file @
91e3b5f0
#include <iostream>
#include "SnakeMenuState.h"
#include "SnakeGameState.h"
#include <string>
#include <fstream>
#include <streambuf>
using
namespace
std
;
CSnakeMenuState
CSnakeMenuState
::
m_SnakeMenuState
;
void
CSnakeMenuState
::
Init
()
{
if
(
!
isInit
)
{
// Load in main menu title
ifstream
fs
(
"snakemenu.txt"
);
fs
.
seekg
(
0
,
ios
::
end
);
menuTitle
.
reserve
(
fs
.
tellg
());
fs
.
seekg
(
0
,
ios
::
beg
);
menuTitle
.
assign
((
istreambuf_iterator
<
char
>
(
fs
)),
istreambuf_iterator
<
char
>
());
// Add menu options
menuOptions
.
push_back
(
"Play Game"
);
menuOptions
.
push_back
(
"High Scores"
);
menuOptions
.
push_back
(
"Return to Main Menu"
);
// Set name for debugging
stateName
=
"snakemenu"
;
// Set that it has been initialized
isInit
=
true
;
}
// Set first input and draw the menu
input
=
' '
;
Draw
(
nullptr
);
}
void
CSnakeMenuState
::
Pause
()
{
}
void
CSnakeMenuState
::
Resume
()
{
input
=
0
;
menuPos
=
0
;
}
void
CSnakeMenuState
::
Cleanup
()
{
}
void
CSnakeMenuState
::
HandleEvents
(
CGameEngine
*
game
)
{
while
(
game
->
newInput
==
false
)
{
input
=
' '
;
}
input
=
game
->
input
;
game
->
newInput
=
false
;
}
void
CSnakeMenuState
::
Update
(
CGameEngine
*
game
)
{
switch
(
input
)
{
case
'w'
:
menuPos
--
;
break
;
case
's'
:
menuPos
++
;
break
;
case
'd'
:
{
switch
(
menuPos
)
{
case
0
:
//Play Game
//game->PushState(CSnakeGameState::Instance());
break
;
case
1
:
//Snake
//game->PushState(CHighScore::Instance());
break
;
case
2
:
//Quit
game
->
PopState
();
break
;
}
break
;
}
default:
break
;
}
if
(
menuPos
<
0
)
{
menuPos
=
0
;
}
if
(
menuPos
>=
menuOptions
.
size
())
{
menuPos
=
menuOptions
.
size
()
-
1
;
}
}
void
CSnakeMenuState
::
Draw
(
CGameEngine
*
game
)
{
system
(
"stty cooked"
);
cout
<<
menuTitle
<<
endl
;
for
(
int
i
=
0
;
i
<
menuOptions
.
size
();
i
++
)
{
if
(
i
==
menuPos
)
{
cout
<<
" * "
<<
menuOptions
.
at
(
i
)
<<
endl
;
}
else
{
cout
<<
" "
<<
menuOptions
.
at
(
i
)
<<
endl
;
}
}
cout
<<
"
\n\n\n
"
<<
"Press w and s to move up and down, d to select"
<<
endl
;
system
(
"stty raw"
);
}
GameEngine/
TestState1
.h
→
GameEngine/
SnakeMenuState
.h
View file @
91e3b5f0
#ifndef
TESTSTATE1
_H
#define
TESTSTATE1
_H
#ifndef
SNAKEMENUSTATE
_H
#define
SNAKEMENUSTATE
_H
#include "GameState.h"
#include <iostream>
#include <string>
class
C
TestState1
:
public
CGameState
class
C
SnakeMenuState
:
public
CGameState
{
public:
void
Init
();
...
...
@@ -17,14 +18,18 @@ class CTestState1 : public CGameState
void
Update
(
CGameEngine
*
game
);
void
Draw
(
CGameEngine
*
game
);
static
C
TestState1
*
Instance
()
{
return
&
m_TestState1
;
}
static
C
SnakeMenuState
*
Instance
()
{
return
&
m_SnakeMenuState
;
}
protected:
C
TestState1
()
{}
C
SnakeMenuState
()
{}
private:
static
CTestState1
m_TestState1
;
int
runtimes
=
0
;
static
CSnakeMenuState
m_SnakeMenuState
;
char
input
;