見出し画像

スプライト取得の関数化/ナナツキ戦記 進捗(3)

こんにちは「つけらっとゲームス」プログラム担当のとちです。
以前からお知らせしている「ナナツキ戦記」の開発について、2023年6月7日現在の進捗報告です。

前回の5月31日の進捗報告は以下の記事をご覧ください。

6月7日までの進捗

  • 移動範囲を地形侵入コストを加味して算出

  • 移動先をプレイヤーに選択して貰う

  • 移動力の範囲内で侵入コストの矛盾なくユニットを移動させる

を実装しました。

引き続き、移動先で様々な行動を指示できるのですが、今後はそのあたりを作っていく段階になります。まずは味方勢力の収入を安定させるために施設を建設する仕様を実装したいところです。

動画をつけてツイートしたのでそちらをご覧ください。

仕様漏れ

ただ、こういったゲームはどうしてもデータとの紐づけが大事になってきますのでDB周りの整備や仕様漏れを確認しながら開発を進めていく必要があります。

実際「食料」の仕様を完全に忘れていました。
戦国モノだと兵糧がなければ戦えない、大戦略やファミコンウォーズだったらガソリンが無ければ動けないといった基本的な仕様だったんですけどね、なぜか生産については覚えていたんですが、キャラのステータスにはそんなデータ項目が無いというミスがあったので……気をつけないと!!


ここからは技術的なお話


スプライト取得の関数化

その他の作業内容としてはマップチップの「スプライト取得」を関数化したことでしょうか、プログラムを書かない方にちょっとだけ説明しましょう。
ちなみにわたし(とち)はUnityでc#を使ってコードを書いていますが、一般的なプログラム言語ならほぼ同じコトができます。

マップを生成するために各地形、各施設のスプライトを呼び出し、座標のデータ照合をして貼り付けるプログラムは以前からありました。

ナナツキ戦記では施設を建設する際には何の施設を建てるかプレイヤーが選択するタイミングが発生します。

マップ生成時の「スプライト取得」と建設したい施設一覧の「スプライト取得」は処理するタイミングこそ異なりますが参照するデータは同じモノです。同じようなプログラムになるのは予想できますよね?
プログラムの内容を箇条書きしましょう。

マップ生成時

  • (A)マップデータを読み込む

  • (B)座標xyには「お城」の画像が欲しい

  • (C)「お城」の画像を読み込む

  • (D)座標xyに「お城」の画像を反映させる

施設一覧表示時

  • (a)建設一覧データを読み込む

  • (b)一覧表示するために「お城」の画像が欲しい

  • (c)「お城」の画像を読み込む

  • (d)一覧表に「お城」の画像を反映させる

関数にしてみた

この例だと(C)と(c)の処理は同じです。
2回とも同じプログラムを書くのは面倒くさいし、この処理に不具合があった場合、2か所の修正が必要になっちゃいます。片方だけ修正して満足しちゃうと思っている以上にデカい不具合を誘発する可能性もあります。

怖い。
それを解決するのが(C)と(c)の関数化です。

図で示すとこんな感じ

もうちょっと便利な関数に

「でもマップを作るとなったら必要な画像は『城』だけじゃないよね?」
と思っている方、待ってました!
では関数をもう少しだけ便利にしてみましょう。

関数は必要な情報「引数」を与え、欲しい情報「戻り値」を得ることができるんですね。この例ですと引数は「施設名」とか「施設コード」で、戻り値は「施設の画像」となります。

「施設p」の画像が欲しい! すると「施設p」の画像が戻ってくる!
※pは「城」「砦」「村」「市」等々

施設の名前を入れると、施設の画像が返ってくる

これが関数、すばらしい!
……なんですが、自分で作った関数を忘れることもあるあるなんですよね。

というわけで、今回はここまで、
これからも頑張って開発進めます。応援よろしくおねがいします。


この記事が参加している募集

ゲームの作り方

この記事が気に入ったらサポートをしてみませんか?