“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

93.HSPでゲーム&ウォッチのヘルメットを作ろう その11

開発中にHSP3DishでAndroidのアプリに変換して、見栄えや操作感を試していたのだが、途中から起動せずに落ちるようになってしまった。
画像ファイルをassetフォルダに入れてないときに落ちていたので、何度も確認してassetフォルダに置いてみたがダメ。
少し放置していたが、そうもいかなくなったので、原因を特定することにした。
動いていた時点のソースから、付け加えた部分のプログラムを削除して、ビルド。スマホにインストールしては確認を繰り返した。
しかし、一向に改善しない。

どこに問題があるのかわからないので、ざっくりプログラムを全部消して、1行メッセージを表示するだけにした。
これでも動かない…
もしやと思い、変数の初期値を設定しているところを消すと、動いた…
さらに絞り込んでいくと、どうやら2次元配列に値を代入するところがだめだと分かった。

配列に対して初期値をセットするのに、カンマ区切りで書けるのはすごく楽だった。
Windows上で動かす限りは、2次元配列でも大丈夫な書き方だったのだが、うまく動かない。
HSPの公式掲示板で、2015年に全く同じ書き方で困っている人の質問スレッドを見つけ、解決できる!と思ったら…
ファイルに書いておいて読み込むという代替方法が示されていた…
さすがに面倒なので、1つずつ代入すれば動くんじゃね?と思い、試したら大丈夫だった。
今後も、2次元以上の多次元配列の時はこういう風に書くか、ファイルから読み込むか、データ量次第で切り替える必要がある。

;この書き方はAndroidではNG
dim tooly,5,5 ;工具の表示座標の配列
  tooly(0,0)=233,259,279,303,322
  tooly(0,1)=228,258,284,309,334
  tooly(0,2)=235,262,283,303,326
  tooly(0,3)=239,265,285,301,322
  tooly(0,4)=234,255,288,315,336

;Androidで動かないので、配列に一つずつ代入
tooly(0,0)=233: tooly(1,0)=259: tooly(2,0)=279: tooly(3,0)=303: tooly(4,0)=322
tooly(0,1)=228: tooly(1,1)=258: tooly(2,1)=284: tooly(3,1)=309: tooly(4,1)=334
tooly(0,2)=235: tooly(1,2)=262: tooly(2,2)=283: tooly(3,2)=303: tooly(4,2)=326
tooly(0,3)=239: tooly(1,3)=265: tooly(2,3)=285: tooly(3,3)=301: tooly(4,3)=322
tooly(0,4)=234: tooly(1,4)=255: tooly(2,4)=288: tooly(3,4)=315: tooly(4,4)=336