“RUN” それは魔法の言葉

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

274.HSPでゲームを作ろう:たまねとりっぷ! その32

ゲーム本編の挙動はうまく作れたので、表示系の微調整や、BGMなどを組み込んでいく。

まずはBGM。なんといってもここまで無音。
本当は天候にあわせてBGMも変えようと思っていたんだけど、コンテストの締切に間に合いそうになかったので、とりあえず1曲だけ選曲。
こちらで探した。
bgmer.net

ゲームオーバーやクリア時のBGMはこちらから。
musmus.main.jp

これらを組み込むだけで、ぐっとゲームっぽくなった。

背景画像は、いままで自分が撮った風景写真を使っていたのだが、こちらは天候と、現地の時間に合わせて写真を探すつもりだった。
でも、統一感がでないし、そんなに都合の良い写真はない。そこで今回はchatGPTさんに作ってもらうことにした。

一回のプロンプトで、数パターン作ってもらおうと画策したが、1個ずつしか作ってくれなかったw
課金すれば、一気に作ってくれるかな?
無料ユーザーなので、1日に生成できる画像の個数が決まっている。試行錯誤しながら、3、4日かけて背景画像を生成してもらった。
うん。昼と夜があるだけで違う。

次は、風向きを表す画像。「北東」とか「南南西」とか書いても、わからないから、羅針盤みたいなものが画面に欲しかった。
風向きはゲーム中に変えないから、16方位分の画像を作って、方位に合わせて表示することにした。
これも画像をchatGPTさんに作ってもらい、それを回転して作った。

こうしてできたプレイ画面がこちら。ぐっとゲームっぽくなった。

HSPプログラムコンテスト2025に応募しました♪

今年も何とかHSPプログラムコンテストに、2作品応募できました。
ぜひダウンロードして遊んでみてください。

1つ目:GW風ゲーム「月面鮫」

dev.onionsoft.net


見る人が見ればすぐわかりますが、偉大なる名作「ファイア」をモチーフにしているゲームです。

そのまま作るわけには行かないので、アレンジとして、助けてはならないサメ人間を登場させ、これをスペースシャトルに運びすぎるとミスになるように、そしてキャッチせず、落として倒すということにしたことで、こっちはキャッチ、こっちは落とすと、頭がこんがらがってくるようなルールを考えてみました。

ボーナスポイントもあるので、慣れたらカンストの999点はすぐに達成できるかと。

こちらはAndroidアプリの方がメインで、Windows版はオマケですw
ぜひ、Androidをお持ちの方は、GooglePlayで公開中ですので、ダウンロードをお願いします。
play.google.com

調子に乗ってPV動画を作りましたw
youtu.be

2つ目:昨年完成できなかった「たまねとりっぷ!」

dev.onionsoft.net

世界の天気情報をもとに、塔を登るゲームです。
ターゲットは、小学生。自分が遊んで訪問した国を、あとから世界地図上で見ることができ、地理に興味を持ってもらったら嬉しいと考えて作っています。



これを作ろうと思ったのは、ネットで世界中の天気情報を取得できるwttr.inを知ったことから。
coro3.hatenablog.jp
もう3年前なんですね…
このときは、タグを取り除いて情報を取ろうと四苦八苦し、断念しました。

そして、昨年。JSONのパースもできるようになったので、再チャレンジ!
めでたく天気情報を取れるようになったのです。
coro3.hatenablog.jp
coro3.hatenablog.jp

ここからはぼんやりと世界地図にピンを立ててやれば、どこの国に行ったかな?など、子供と楽しめそうだなと。
なので、ゲーム内容はゆるーい、いや、なんもないに等しいです。ただ登るだけ。シンプルイズベストなのですよww

何とか締切2日前に、一通りゲームの体裁を整えられて、応募できました。
完成度は80%というところ。大きなバグがないことを祈るばかりですw

「たまねとりっぷ!」の制作過程のエントリーは、もう少しだけ続きます。

さて、次は放置しているリアル竜巻鮫の方に戻りますかね。

273.HSPでゲームを作ろう:たまねとりっぷ! その31

次は氷の床の処理を考える。
氷は滑る。あたりまえーww
これをどう表現すればよいのか。

いろんなサンプルプログラムを見てみると、滑る=「移動入力を受け付けず、そのまま一方向に移動させ続ける」が一番シンプルに思えた。
早速、このゲームで実現するにはどうすればよいか考えた。

カーソルキーの入力を考える。
一方向に押し続ければ、滑る時間を長くしてみようと考えた。

滑る時間を決める材料として、左右キーを押したときの移動量を累積する処理を入れる。
たまねの移動量は、常にes_getpos命令で取得するようにしていたので、これを利用できそう。

まずは、Stick命令で取得したキー入力が1か4(左右のカーソルキー)のときに、X方向の移動量を足す。
そして、Stickの値が0で、かつ直前のStickの値が0以外のとき=カーソルキーの入力が無くなったら、累積した移動量から、滑るフレーム数を算出して設定する。滑るフレームが0以上なら、その間は左右のカーソルだけ入力を受け付けない。
そして、滑るフレームが0以上の間は、一定量の水平移動を強制的に行う。

ここでジャンプもできなくすると、かなり難しくなるのでジャンプはそのまま受け付ける。
そして、ジャンプした時点で滑るフレームは強制的に0にする。
と、一気に書いてみたが、挙動はこんな感じになる。

って、アニメGIFじゃ伝わらないなww
かなりツルツルとした挙動になったが、氷の床っぽくていい。とりあえず、これで確定にする。

272.HSPでゲームを作ろう:たまねとりっぷ! その30

次は天気情報をマップ(床)に反映させる。
大きく分けて3つのパターンを考えた。

  • 「通常」
  • 「ぬかるみ」…雨系の天気の場合。
  • 「氷」…雪、吹雪系の天気の場合。

まず、移動量調整で済みそうな「ぬかるみ」から始めた。

画像は、すでに床の色違いで準備していた。

BGマップへの反映は、とりあえず通常床とチップNoを直接書き換えて対応。
取得した天気に合わせる処理は後回し。

通常床のときよりも、左右キーで進む移動量を少なくしてみた。

お、イイ感じにイライラするね。そしてジャーンプ。ジャーンプ。ジャーンプ…
ほぼ上のフロアに上がれない… 風が吹いてたら、ジャンプ地点よりも後ろに戻される…

これはいかん。ということで、移動量を減らすのは、地面を移動しているときのみで、ジャンプ中は、通常床と同じだけ動けるように変更した。

どうせ、攻略する人なんていないwので書いておくと、このロジックだと、常に小ジャンプしつつ移動すると効率よく移動できて、ぬかるみ意味ねーな!ってなる。
ま、違いが出ればよいので、これで決定ww