▲前のページへ
次のページへ▼

プログラム解説(GUI)


【目次】
ClientScene01で管理しているGUI
ClientScene02で管理しているGUI
ClientScene03で管理しているGUI
ClientScene04で管理しているGUI
ClientScene05で管理しているGUI


ClientScene01で管理しているGUI

 パッケージエクスプローラーにある prefork_battle_matching プロジェクト内の Class フォルダには
 ClientScene○○.cpp および ClientScene○○.h がありますが、それぞれ端末上の操作に伴う画面遷移ごとに用意されています。

 ここは MonobitRealtimeEngine そのものとは関係ありませんが、
 プログラムサンプルとして不鮮明な部分がありますので、解説を加えておきます。

■ ClientScene01.cpp , ClientScene01.h にて管理されている画面構成
  ClientScene01 では、サンプルプログラム起動直後の以下の画面を構成・管理しています。
  
  この画面構成をGUI配置しているのが ClientScene01::initializeLogic() 関数になります。
    ※ ClientScene01::initializeLogic() 関数は ClientScene01::init() (自動初期化)関数から呼び出されます。

■ ClientScene02 へのシーン遷移
  [マッチングサーバ接続] ボタンを押下したときに ClientScene01::menuStartCallback() 関数が呼ばれ、
  入力欄にある IPアドレスやポート番号をもとに接続処理(Classes/sample/core/Client.cpp にある
  Client::SelectServer() 関数)を実行し、ClientScene02 クラスへのシーン移譲を行なっています。


ClientScene02で管理しているGUI

■ ClientScene02.cpp , ClientScene02.h にて管理されている画面構成
  ClientScene02 では、[マッチングサーバ接続] ボタン押下後の以下の画面を構成・管理しています。
  
  この画面構成をGUI配置しているのが ClientScene02::initializeLogic() 関数になります。
    ※ ClientScene02::initializeLogic() 関数は ClientScene02::init() (自動初期化)関数から呼び出されます。

■ ClientScene03 へのシーン遷移
  [マッチングスタート] ボタンを押下したときに ClientScene02::menuStartCallback() 関数が呼ばれ、入力欄にある情報をもとに
  マッチング入室処理(Classes/sample/core/Client.cpp にある Client::EnterMatchingRoom() 関数)を実行し、
  ClientScene03 クラスへのシーン移譲を行なっています。

■ ClientScene05 へのシーン遷移
  [マッチング退室] ボタンを押下したときに ClientScene02::menuExitCallback() 関数が呼ばれ、
  ClientScene05 クラスへのシーン移譲を行なっています。


ClientScene03で管理しているGUI

■ ClientScene03.cpp , ClientScene03.h にて管理されている画面構成
  ClientScene03 では、[マッチングスタート] ボタン押下後の以下の画面を構成・管理しています。
  
  この画面構成をGUI配置しているのが ClientScene03::initializeLogic() 関数になります。
    ※ ClientScene03::initializeLogic() 関数は ClientScene03::init() (自動初期化)関数から呼び出されます。

■ ClientScene04 へのシーン遷移
  [強制バトルスタート] ボタンを押下したときに ClientScene03::menuStartCallback() 関数が呼ばれ、
  強制バトル開始処理(Classes/sample/core/Client.cpp にある Client::ForceBattleStart() 関数)を実行し、
  ClientScene04 クラスへのシーン移譲を行なっています。

  また、「他クライアントから強制バトルスタートが押下された」「マッチング人数が揃ってサーバ命令でバトルが開始された」
  「一定時間が経過してサーバ命令でバトルが強制開始された」場合には、 ClientScene03::updateLogic() 関数内で
  強制的に ClientScene04 クラスへのシーン移譲を行なっています。
    ※ ClientScene03::updateLogic() 関数は、 ClientScene03::update() (自動更新)関数から呼び出されます。

■ ClientScene05 へのシーン遷移
  [バトル退室] ボタンを押下したときに ClientScene02::menuExitCallback() 関数が呼ばれ、
  ClientScene05 クラスへのシーン移譲を行なっています。


ClientScene04で管理しているGUI

■ ClientScene04.cpp , ClientScene04.h にて管理されている画面構成
  ClientScene04 では、バトル開始後の以下の画面を構成・管理しています。
  
  この画面構成をGUI配置しているのが ClientScene04::initializeLogic() 関数になります。
    ※ ClientScene04::initializeLogic() 関数は ClientScene04::init() (自動初期化)関数から呼び出されます。

■ チャットワードの送信
  [発言する] ボタンを押下したときに ClientScene04::menuChatCallback() 関数が呼ばれ、発言内容ボックスの内容に合わせ
  チャット文字列送信処理(Classes/sample/core/Client.cpp にある Client::SendChat() 関数)を実行します。

■ ClientScene05 へのシーン遷移
  [バトルから退室] ボタンを押下したときに ClientScene04::menuExitCallback() 関数が呼ばれ、
  強制バトル退室処理(Classes/sample/core/Client.cpp にある Client::ExitGame() 関数)を実行し、
  ClientScene05 クラスへのシーン移譲を行なっています。


ClientScene05で管理しているGUI

■ ClientScene05.cpp , ClientScene05.h にて管理されている画面構成
  ClientScene05 では、バトル終了後の以下の画面を構成・管理しています。(ログ表示だけです)
  
  この画面構成をGUI配置しているのが ClientScene05::initializeLogic() 関数になります。
    ※ ClientScene05::initializeLogic() 関数は ClientScene05::init() (自動初期化)関数から呼び出されます。

■ ClientScene01 へのシーン遷移
  バトルサーバ接続完了処理がなされた後、ClientScene05::updateLogic() 関数内で
  ClientScene01 クラスへのシーン移譲を行なっています。
    ※ ClientScene05::updateLogic() 関数は ClientScene05::update() (自動更新)関数から呼び出されます。


▲前のページへ
次のページへ▼