ループを使おう - 現代(ループ)
サブタイトル -- アルバム画面を作ろう
「あー、面倒くさい」
部室に苛立った声が響いた。
ここは、ゲーム同好会。ただし、ゲームをするのではなく、ゲームを作るのが活動内容だ。
声の主は、ノベルゲームのアルバム画面の組み込みをしていたはずだ。
ゲーム内で見た画像はサムネイルで表示され、選択すれば画面いっぱいに表示される。未見の画像は、共通のまだ見ていないことを示す画像が表示され、選択することはできない。
各画像に対し、見たかどうかの判断をし、対応する画像を選択できるかどうかの別とともに配置していく。そういう作業をさせるためのスクリプトを組む。
今回の画像は、一画面に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ページ分をどうするのかは考えること。それと、次からは仕込みからきっちりやって、もっと楽できるよう考えな」
「はい。ありがとうございました」
威勢のいいお礼の言葉をもらい、つまずいたら聞きに来るよう言って、自分の席へと戻る。さて、自分はどこまでやったんだったか。
「お疲れ様」
「いや、別に」
隣からそっと掛けられたねぎらいの言葉には、笑いが含まれていた。
「一年前と立場が逆転したね」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます