ループを使おう - 現代(ループ)

 サブタイトル -- アルバム画面を作ろう


「あー、面倒くさい」

 部室に苛立った声が響いた。


 ここは、ゲーム同好会。ただし、ゲームをするのではなく、ゲームを作るのが活動内容だ。

 声の主は、ノベルゲームのアルバム画面の組み込みをしていたはずだ。

 ゲーム内で見た画像はサムネイルで表示され、選択すれば画面いっぱいに表示される。未見の画像は、共通のまだ見ていないことを示す画像が表示され、選択することはできない。

 各画像に対し、見たかどうかの判断をし、対応する画像を選択できるかどうかの別とともに配置していく。そういう作業をさせるためのスクリプトを組む。

 今回の画像は、一画面に4×4の16個が2ページ分だったはずだ。


「何が面倒くさいって」

 声を掛けつつ、作業中の画面をのぞき込む。ああ、これは。こんな事をしていたら、そりゃあ面倒くさいだろう。

「ファイル名を変えて、表示位置を変えるだけなんですけど、これを後いくつもやるのかと思うと、つい」

 判断して、見た場合とまだの場合の処理を一つの画像毎に書き込んでいる。画像のファイル名はバラバラ、大きな画像のファイル名の後ろに「_m」をつけている。判断する変数名も画像のファイル名に合わせている。だから余計に一つずつ指定しようとしたか。


「そのやり方は、俺でも面倒。そういうのは、ループを上手く使うんだよ」

 ちょっといいかと、既に書き込まれた分をコメントアウトし、上に書き加える。

「まず、ファイル名を配列に入れてしまう」

 <item(0) = ***>と一つ例を見せる。

「で、i = 0から16回、1ページ分ループさせるだろ。ループの中身はまず判断、この時の変数名はさっきの配列の中身を利用する」

 条件式を書き込む。


「まだの場合は、配置する画像は共通だから、位置の指定を計算させる。上は最初の隙間 + (画像の高さ + 隙間) × (配置する行 - 1)だろ。(配置する行 - 1)は横に並べていくから、iを4で割った商の部分でいいわけだ」

 0から3の場合は0に、4から7の場合は1という風になる。

 縦位置の指定の計算式を実際に入れて見せる。

「左も同じように考える。どうする?」

「えっと、最初の隙間 + (画像幅 + 隙間) × 列で。列は余りですか?」

「そう、入れてみ」


 既に見た場合の処理は、ここまでのことを組み合わせて考えるよう促す。

 画像の位置指定は未見の場合と同じ。画像ファイルは、判定用に変数名の指定からの発想で。クリックした場合の処理も、個別に書いていたものからどこを変えればいいのかさえ分かれば、どうと言うことはない。

 一つずつ書いていれば1ページ分で16回書かなければいけなかったところが、多少伸びたとは言え1回分とループ指示ですむ。


「そう。それで後は配列のファイル名を全部入れれば、勝手にループして配置してくれる。ただ、これは1ページ分だから、2ページ分をどうするのかは考えること。それと、次からは仕込みからきっちりやって、もっと楽できるよう考えな」

「はい。ありがとうございました」

 威勢のいいお礼の言葉をもらい、つまずいたら聞きに来るよう言って、自分の席へと戻る。さて、自分はどこまでやったんだったか。


「お疲れ様」

「いや、別に」

 隣からそっと掛けられたねぎらいの言葉には、笑いが含まれていた。

「一年前と立場が逆転したね」

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る