・プログラムは自由。好きなように書けばよくて「正解」というのは無い。
・たくさんのサンプルスクリプトを書くのはたいへんなので使いまわしするのは普通。
なので、サンプルは必ずしも最良の書き方で最適化されていない。
・書く目的によって、対象読者にあわせて、同じ動作のスクリプトでも書き方、レベル難度が変わる。
といったことがわかった上で、それでも
「良いお手本となるサンプル・スクリプトを書きたい」
と思ったときにどうするべきか、を現在思案中、調査中です。
そこで疑問があります。
HSP3Dishのいちばんさいしょのプログラムで習うのが
*main redraw 0 mes "こんにちは" redraw 1 await 1000/30 goto *main
このループ構造で、HSP3Dishのプログラムはこれを基本にして開発していきましょう、
という話になっている(公式書籍など)のですが、
【疑問】
「画面内容が常に変化しないゲーム(アクションゲームや3D以外)でも
必ずループをまわしつづけるプログラム構成にしないといけないのかどうか?」
「画面が変化する必要があるときだけ、
redraw 0 と 描画と redraw 1 を含むサブルーチンを一度よべばよいのではないか?」
のみ実行。
redraw 0 mes "こんにちは" redraw 1
タッチ検知などを取得するメインループはまわしつづける必要があっても、
描画は変化しないなら処理に含めなくてよい気がしますがどうなのか。
なぜ疑問に思うかというと、ほとんどの公式サンプルでも、公式な解説でも、
ループ構造を前提としているため。
(実際にループ構造なし、のスクリプトを書いても問題なく動作しているように見える。
自分の知らない理由がなにかあるのかなと思ってしまう。)
私は現在、HSP3Dish.js(Webアプリ)のサンプルスクリプトを作成しています。
これまではとりあえず雑なモノを書いていましたが、
すこし最新の状況を勉強して、お手本として良質なより丁寧なスクリプトを書きたいと考えています。
現状のHSP公式のやりかたに異論があるわけでなく、
じぶんの理解が正しいのか(ひとに教える記事を書くまえに確認したい)、
じぶんがなにか大きな勘違いをしていないか確かめたいので、
掲示板でご意見を募りたいと思いました。
できたら「はっきりとこうだ」「こういう理由があってメインループ回しつづける構成が基本になっている」
と言える詳しい方やHSP上級者のアドバイスをいただけたらうれしいです。
よろしくお願いいたします。