D'angband  0.0.0
Deeangband
 全て クラス 名前空間 ファイル 関数 変数 型定義 列挙型 列挙値 フレンド マクロ定義 ページ
GameEngine.cpp
[詳解]
1 
9 #pragma once
10 
11 #include "stdafx.h"
12 #include "GameEngine.h"
13 
14 
15 namespace Deeangband
16 {
17  GameEngine::GameEngine()
18  {
19  gameWorld = new GameWorld();
20  gameSurface = new GameSurfaceSDL(gameWorld);
21 
22  gameSurface->SetField(gameWorld->GetField(0));
23  gameSurface->SetSideStatusCreature(gameWorld->GetCreature(0));
24 
25  Direction::Initialize();
26  }
27 
28  PLAY_EXIT_CODE GameEngine::PlayLoop(void)
29  {
30  GAME_COMMAND commandID;
32  gameSurface->Redraw();
33 
34  while(code == PLAY_EXIT_NONE)
35  {
36  commandID = gameSurface->GetCommand();
37  code = DoGameCommand(commandID);
38  }
39 
40  return PLAY_EXIT_QUIT;
41  }
42 
43  PLAY_EXIT_CODE GameEngine::DoGameCommand(GAME_COMMAND command)
44  {
45  Creature *playerPtr = gameWorld->GetPlayerCreature();
46 
47  switch(command)
48  {
50  gameSurface->ViewCreatureStatus(gameWorld->GetCreature(0));
51  break;
53  gameSurface->Redraw();
54  break;
56  gameWorld->XMLSave();
57  gameSurface->Message("XMLに保存しました。");
58  break;
60  gameSurface->Redraw();
61  gameWorld->XMLLoad();
62  gameSurface->Message("XMLから呼び出しました。");
63  break;
64  case GAME_COMMAND_EXIT:
65  return PLAY_EXIT_QUIT;
66  break;
67  case GAME_COMMAND_NORTH:
68  playerPtr->Walk(DIRECTION_NORTH);
69  break;
71  playerPtr->Walk(DIRECTION_NORTH_EAST);
72  break;
73  case GAME_COMMAND_EAST:
74  playerPtr->Walk(DIRECTION_EAST);
75  break;
77  playerPtr->Walk(DIRECTION_SOUTH_EAST);
78  break;
79  case GAME_COMMAND_SOUTH:
80  playerPtr->Walk(DIRECTION_SOUTH);
81  break;
83  playerPtr->Walk(DIRECTION_SOUTH_WEST);
84  break;
85  case GAME_COMMAND_WEST:
86  playerPtr->Walk(DIRECTION_WEST);
87  break;
89  playerPtr->Walk(DIRECTION_NORTH_WEST);
90  break;
91  }
92  return PLAY_EXIT_NONE;
93  }
94 
95 }
プレイ終了コード:通常終了
Definition: Deeangband.h:48
GAME_COMMAND
Definition: Deeangband.h:23
ゲームエンジンのプロトタイプ宣言
標準のシステム インクルード ファイルのインクルード ファイル、または 参照回数が多く、かつあまり変更さ...
GameSurface * gameSurface
GameSurfaceの参照ポインタ
Definition: GameEngine.h:28
PLAY_EXIT_CODE
Definition: Deeangband.h:44
GameWorld * gameWorld
GameWorldの参照ポインタ
Definition: GameEngine.h:27
プレイ終了コード:なし(プレイ継続)
Definition: Deeangband.h:46
virtual GAME_COMMAND GetCommand(void)
ゲームコマンドを受け取る
Definition: GameSurface.h:38