Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。4コーディング開始ファイル生成後、以下の4つのクラスからサブクラスを作成する必要があります。「TictactoeGame」-これはゲームコードが開始されるメインクラスです。このクラスは、どのクラスをオーバーライドするかをPulseUIに指示する場所でもあります(今回のサンプルでは、次の3つのクラスをオーバーライドします)。「TictactoeSkinner」-すべての画面UIを描画するために使われるイメージ(スキン)ファイルを読み込むSkinnerサブクラスです。「TictactoeNewGameScreen」-このサブクラスはオプションですが、今回のゲームでは、Pulseサーバにゲームルームの詳細な特性(ターン制、ルームごとの最大プレイヤー数が2人であることなど)を伝えるために必要とされます。「TictactoeGameScreen」-ゲーム開始後にゲームルーム内で行われるすべてのアクションに関するクラスです。サブクラスの詳細TictactoeGameこれはゲームコードが開始されるメインクラスです。TictactoeSkinner();}コンストラクタはゲーム固有のSkinnerクラスをインスタンス化するのに適した場所です。Skinnerクラスの実装については、後ほど詳しく説明します。"Tictactoe";}Pulseランタイムでは、ゲームごとに一意のゲームIDを割り当てる必要があります。これにより1台のサーバ上で複数のゲームをホストできるわけです。このIDは同じゲームに参加している対戦相手を照合するためにも用いられます。ジグソーパズルをしているプレイヤーは三目並べをしているルームに入ることはできません。this;super.start();}startメソッドからすべてが開始されます。上のようにして、factoryオブジェクトを生成しなければなりません。このfactoryクラスは、コードの生成過程で生成されるクラスの1つです。GameClientも、引数として渡されたfactoryのインスタンスで生成されます。生成されたGameClientを、PulseGameクラスで定義されているm_netClientフィールドに代入する必要があります。必要なGameClientインスタンスは1つだけです。最後にsuper.start()を呼び出します。これでスプラッシュ画面が表示され、それが徐々に消えてプレイヤーをログイン画面に導きます。この段階で、プレイヤーにログイン画面が表示されます。プレイヤーは登録されたユーザー名とパスワードを入力するか、ゲストとしてログインできます。TictactoeGameScreen(this);m_gameScreen.init();}上記の2つのオーバーライドは、ゲーム固有の画面を生成するために必要です。1つは新規ルーム作成中の画面で、もう1つはゲームプレイ中の画面です。三目並べはターン制のゲームとして定義されます(TictactoeNewGameScreenのサブクラスの詳細を参照)。そのため、Pulseサーバは、自分のターン(番)になったことをクライアントに知らせるコールバックを送出します。ターン中は、プレイヤーに対して視覚的なサインを表示する必要があります。TictactoeGameScreen).onPlayerTurn();}このロジックは単純で、サインを表示するゲーム画面を呼び出しているだけです。PutClient();putMsg.setStateType(GameConstants.GS_IS_UNIQUE);putMsg.setPutRow(xPos);putMsg.setPutColumn(yPos);putMsg.setPutValue(value);m_netClient.sendGameStateAction(putMsg);m_netClient.nextTurn();}2つのメソッドを実装する必要があります。1つは対戦相手のアクションを受け取るメソッドで、もう1つは対戦相手にアクションを送るメソッドです。対戦相手のアクションを受け取るために、onGameStateActionをそのままオーバーライドして、ゲーム画面に渡します。対戦相手にアクションを送るため、ゲーム画面オブジェクトから呼び出される補助メソッドsendGameStateを作成します。ここでは、サーバに「プレイヤーのターンが完了し、次のプレイヤーのターンを通知してよい」ことも知らせます。PutClientはスキーマファイル内で定義されており、コード生成段階で生成されることに注意してください。使用可能なゲーム状態の種類の詳細については、Pulse開発者ガイドを参照ください。2つのメソッドを実装する必要があります。1つは対戦相手のアクションを受け取るメソッドで、もう1つは対戦相手にアクションを送るメソッドです。対戦相手のアクションを受け取るために、onGameStateActionをそのままオーバーライドして、ゲーム画面に渡します。対戦相手にアクションを送るため、ゲーム画面オブジェクトから呼び出される補助メソッドsendGameStateを作成します。ここでは、サーバに「プレイヤーのターンが完了し、次のプレイヤーのターンを通知してよい」ことも知らせます。PutClientはスキーマファイル内で定義されており、コード生成段階で生成されることに注意してください。使用可能なゲーム状態の種類の詳細については、Pulse開発者ガイドを参照ください。1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。Hirematada)ゲーム開発会社Gamantraの創設者でありチーフアーキテクト。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。