“RUN” それは魔法の言葉

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

114.HSPでゲーム&ウォッチのマンホールを作り直そう その3

ミスターマンホールの移動から、作成開始。

といってもやることは、今まで作ったヘルメットなどのソースから、タッチパネル処理をコピペしてきて、if文はBASIC!のソースから座標のコピー、調整するぐらい。
あとは、Windowsでもプレイがしやすいように、移動をカーソルキーではなく、アルファベットキーのA、Z、F、Cのキーを使えるようにした。

何も目新しいところは無いけど、こんなプログラムになった。

*playermove
 ;ミス表示中は、入力を受け付けない
 if missflg=1 : goto *showplayer

 ;キーボード操作の判定
 getkey key,'A' : if key : ppos=0
 getkey key,'F' : if key : ppos=1
 getkey key,'Z' : if key : ppos=3
 getkey key,'C' : if key : ppos=2
 getkey key,27  : if key : end

 ;タッチパネル操作の判定
 mtlist touchid
 num=stat
 if num>0 & touched=0 { ;一本以上指がタッチしていて、かつタッチした直後なら
  id = touchid(0) ;一本目のタッチは0番目
  mtinfo touch,id
  if touch(0)=1 { ;タッチがオンならば
   ;タッチされた座標を変数に代入、タッチしたフラグを付ける
   tx=touch(1):ty=touch(2):touched=1

   ;ボタンを押したか座標で判定
   if tx>=13 & tx<=199 {
    if ty>=379 & ty<=502 {
     ppos=0
    } else : if ty>=503 & ty<=626 {
     ppos=3
    }
   }
   if tx>=808 & tx<=987 {
    if ty>=379 & ty<=502 {
     ppos=1
    } else : if ty>=503 & ty<=626 {
     ppos=2
    }
   }
  }
 } else : if num=0 : touched=0 ;タッチ情報が無くなったら、フラグを戻す

113.HSPでゲーム&ウォッチのマンホールを作り直そう その2

「マンホール」の再作成は、恒例の画像の準備から。
すでに切り出ししている画像があるが、celloadcelldivで使うために、筐体およびセロファン部以外は切り出し直す。

画像として必要なのはこれだけ。

  • Mr.マンホール(4パターン)
  • 通行人(上下10パターン)
  • 通行人落下時のミスパターン(4パターン)
  • ミスマーク(3パターン)
  • アラームおばさん(2パターン)
  • ゲームモード(2パターン)
  • 数字フォント(10パターン)

これだけと書いたものの、地味に作業量が多かったw

数字フォント以外を調整した画像がこれ。
f:id:CORO3:20220103093910j:plain
あとは、それぞれを切り出して、pngファイルにして準備完了♪

112.HSPでゲーム&ウォッチのマンホールを作り直そう その1

BASIC! で再現した「マンホール」。
それなりに楽しみながらプログラムして、自己満足度は高かった。

coro3.hatenablog.jp

ただ、適当に作り始めたので、やっていなかったことが多い。

前回やってなかったこと

  • 通行人のグラフィック、落下時のグラフィックを全部使う(間引いて使いまわしていた)
  • 音のオンオフ(アラームおばさん)
  • GAME AとGAME Bの難易度の違い
  • ハイスコアを記録できるようにする

そして、何より通行人の出現パターンが心残りだった。
ロジックを考えるのが面倒になり、出現するフレーム数をデータで準備して再現した。
今回は、フレーム数データを準備せず、ロジックで何とかする。
これを最大の目標としてスタートしよう。

111.HSPでゲームを作ろう:技術研究 HTTPアクセス その2

前回の続き。
天気予報をテキストで提供してくれるwttr.inから、JSONフォーマットで天気情報を取得して、天気予報の情報を抜き出すことを目標に、試行錯誤を開始。

ちなみに、JSONフォーマットってなに?っていうのは、こちらで。
インターネット用語1分解説~JSONとは~ - JPNIC

JSONフォーマットのテキストは、すぐにhttpinfo命令で取得できた。
ただし、取得したのは単なる文字列。ここからJSONフォーマットの構造データに変換(パース)しなくてはならない。

Windows専用のHTTPアクセスに関する拡張モジュール hspinet.as なら、JSONデータのパースができ、各項目にアクセスできる命令が用意されている。
試しにやってみたのだが、うまくいかない…
代わりにnoteオブジェクトにすべく、notesel命令で、メモリノートにぶち込んでみた。
結果…
改行を表す文字列 \n が、改行として認識されず、そのまま1行になっていた。
notemax命令で行数を確認すると、むなしく表示される 1 …

この改行さえ正常に処理できれば、JSONオブジェクトとしてアクセスできそうなのだが。
httpinfoで取ってきたのがまずいのかなぁ。
いったん、ここまでで止めておいて、先に「マンホール」のHSP移植を進めることにした。