“RUN” それは魔法の言葉

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

サンデープログラムしよう

175.HSPでゲームを作ろう:培養臼Ex その16

いよいよ、キーコンフィグに取り掛かる。 作りかけのソースに、押したボタンのIDを表示する部分を追加したり、デフォルトに戻したときのボタンIDを確認したけど、てんで解決しない…それ以前に、複雑怪奇なif文のネストで、ツギハギだらけになっていて、まず…

174.HSPでゲームを作ろう:培養臼Ex その15

残るは、キーコンフィグだけなのだが、まだ取り掛かる気にならずww 先に、ウィンドウサイズの調整に挑戦してみた。フルスクリーンにする方法はすでに実装済み。 今回挑戦したのは、ウィンドウサイズ倍率変更。フルスクリーンにしなくても、1.5倍、2倍、2.5倍…

173.HSPでゲームを作ろう:培養臼Ex その14

ゲーム内容に関する変更は、一通り終わったので、チュートリアルを作る。いわゆるデモ画面。 培養臼は、ルール説明を一切しなかったので、友人やコンテストのコメントで、ルールが分からないという指摘を受けていた。 といっても、どうやるか。キャラクター…

172.HSPでゲームを作ろう:培養臼Ex その13

ここまで2周目に関連する処理を追加、変更してきたのだが、一度でも1周目をクリアしないと、2周目(ハードモード)に難易度の変更ができない。 ハチャメチャな感じに仕上げる予定の2周目を遊んでもらえないのはさみしいので、隠しコマンドを仕込むことにした…

171.HSPでゲームを作ろう:培養臼Ex その12

今回は文章ばかりのエントリーですw2周目のプレイもできるようになったので、2周目ならではのギミックを追加する。 まずは、細胞をもっと巨大にできるようにする。もしくは、もっと小さな状態で破壊できるようにする。細胞の拡大率は、段階ごとに固定値を配…

170.HSPでゲームを作ろう:培養臼Ex その11

ハイスコアランキングは1周目と2周目で別々に記録したい。 こっちはもともと複数のレコードから、上位10件をselectしてただけなので、loopnumのカラムを追加して、WHERE句に条件を追加すればいいね。 sql_q "SELECT *,substr(strftime('%Y/%m/%d',rec_date),…

169.HSPでゲームを作ろう:培養臼Ex その10

難易度を調整して、若干ではあるが1周目はクリアしやすくなった。と思うので、ハードモードの実装に取り掛かる。テキストファイルは1周分しか書けないようにプログラムを書いてしまったし、なにより、このゲームを2周、3周と周回する人がどれぐらいいるのか…

168.HSPでゲームを作ろう:培養臼Ex その9

前回は自前のキーコンフィグ設定画面を作っているところで中断していた。coro3.hatenablog.jpキーコンフィグの作成を再開しても良いのだが、まとまった時間が取れるまではいったん放置して、残りのやりたいことから作っていくことにする。残っているやりたい…

167.HSPプログラムコンテスト2023が開催。

さて、この記事を書いている時点で、2023年のHSPプログラムコンテストが始まってしまった… HSPプログラムコンテスト2023新作を作って応募したいと思っていたが、現時点での進捗は、限りなくゼロ。 ゲームのルールとか、骨組みのアイデアは固まっており、プロ…

166.HSPでゲームを作ろう:技術研究 標準スプライトのマップ表示を使ってみる 3.7β5編 その2

次は、プレイヤーの移動。ここで下準備していたマップの属性が活きる!…はずだったが、一筋縄では行かなかった。まずプレイヤーはXY座標で位置を管理して、es_pos命令で直接座標指定して表示していた。 しかし、これでは、マップとの自動判定が行われないの…

165.HSPでゲームを作ろう:技術研究 標準スプライトのマップ表示を使ってみる 3.7 β5編 その1

マップ表示を作り始めてみたところで、HSP3.7 β5が公開された。 マップ表示機能とスプライト機能が強化されており、今回作ろうとしている新しいゲームでも、使えそう。 ということで、今年のコンテスト作品は、HSP3.7 β5ベースで作ることにした。3.6での学習…

164.HSPでゲームを作ろう:技術研究 標準スプライトのマップ表示を使ってみる その3

スクロールするマップ表示ができたので、マップ上にキャラクターを表示してみた。 キャラクタもスプライトで定義しておき、es_putで、表示位置を決めたら、es_drawで描画。マップのスクロールは、カーソルキーで行っているので、キャラクターは画面中央に固…

163.HSPでゲームを作ろう:技術研究 標準スプライトのマップ表示を使ってみる その2

標準スプライトのマップ表示機能の続き。 マップの表示ができたら、スクロールさせてみる。 といっても、ほぼ自動でやってくれる。前回のエントリーで書いたes_putbg命令で、指定するX,Y座標が、es_bgmap命令で定義したマップの表示範囲を超えると、自動的に…

162.HSPでゲームを作ろう:技術研究 標準スプライトのマップ表示を使ってみる その1

培養臼Exの作成は、いったん横に置いて、新作のための技術研究に戻ることにした。 標準スプライトのマップ表示機能を使ってみる。 RPGのフィールド画面のようにマップを構成するチップを敷き詰めて、それを表示できるようにするための機能(と解釈)。地面や…

161.HSPでゲームを作ろう:培養臼Ex その8

キーコンフィグ機能の作成に取り掛かったのだが、これが難儀している(現在進行形…)PAD設定さんには、設定を変更するためのサンプルアプリが付属している。 2022年のコンテスト時点では、オプション機能の実装が間に合わなかったので、このアプリを同梱して…

160.HSPでゲームを作ろう:培養臼Ex その7

次はオプション機能で設定した、BGMとSEの音量を、適用できるように修正した。通常のHSP3では、mmplay命令で音量は調整できないのだが、Dishであれば、mmvol命令で音量を調節できる。 ただし、ボリュームは、-1000が最小で、0が最大となる相対値での指定にな…

159.HSPでゲームを作ろう:培養臼Ex その6

次はオプション機能を作る。やりたいのはこれ。 ・キーコンフィグ(ジョイスティックのみ) ・BGM/SEの音量調整 ・フルスクリーンモードの切り替えまずは簡単なところから、音量調整とフルスクリーンモードの切り替えを作った。タイトル画面は、KEY ASSIGN …

158.HSPでゲームを作ろう:培養臼Ex その5

次はゲームシステムの微調整を行う。 コンテストのコメントにあったのが、現在の占有率の表示と、残りの細胞の個数の表示が欲しいというもの。個人的には、そういう表示がない方がスリリングだ!と思っていたのだけど、なんでゲームオーバーになったのか分か…

157.HSPでゲームを作ろう:培養臼Ex その4

ランキング表示を作るときに、ちょっと困ったのが、文字の桁数揃え。 数字の桁なら、strf命令を使えばよいのだけど、文字列には使えない。そこで考えるのは、昔々のBASIC世代の命令である、LEFT$、RIGHT$、MID$の御三家w HSP3はBASIC風なので、同じ命令があ…

156.HSPでゲームを作ろう:培養臼Ex その3

次は、プレイ後にランクインしたときの、ネームエントリー処理を作る。 すでに配列変数にトップ10のスコアは格納済みなので、10位以内に入る、イコール配列の一番末尾のスコアを超えていればランクインとなる。 ゲームオーバー時に、こんな判定処理を追加し…

155.HSPでゲームを作ろう:培養臼Ex その2

データベースの準備が出来たので、ランキングの表示処理から作成に取り掛かった。 トップ10のランキングの取得は、データベースの有無確認と一緒の処理で行った。 これも、ほぼテストしたときと同じ処理。 ;ハイスコア上位10位までを取得して配列に保存 sql_…

154.HSPでゲームを作ろう:培養臼Ex その1

データベースを使用する目途も付いたので、培養臼 エクストラバージョン(培養臼Ex)の作成に取り掛かることにした。 まずは、ハイスコアランキングの作成からスタート。データベース周りは、SQLiteのテストのエントリーで書いた通り。 coro3.hatenablog.jp …

153.HSPでゲームを作ろう:技術研究 データベースを使ってみる その4

もう一つやらなきゃいけないことがあった。 ハイスコアリストは、新規登録のみで済むように出来たけど、コンフィグ設定を記憶させたいなら、更新が必要。更新するにはUPDATE文を使う。 UPDATE config SET clearstage=1 WHERE ID=1" コンフィグ設定は1レコー…

152.HSPでゲームを作ろう:技術研究 データベースを使ってみる その3

テーブルを作成したら、次はレコードを登録する。 これもsql_q命令でSQL文を実行するだけ。SQLでレコードを追加するには、INSERT文を使う。文法はSQLiteでも一般的な構文でよさそう。 INSERT INTO scorelist (score,score_name,stage,rec_date) VALUES (100,…

151.HSPでゲームを作ろう:技術研究 データベースを使ってみる その2

さて、サンプルプログラムの動きは分かったので、次は培養臼のハイスコア記録処理を考える。とりあえずハイスコア記録用のテーブル構成をこんな感じにした。 テーブル:scorelist カラム インデックス:ID(プライマリーキー、自動でカウントアップ) スコア…

150.HSPでゲームを作ろう:技術研究 データベースを使ってみる その1

培養臼のエクストラバージョンでは、ハイスコアをランキング形式で記録できる機能を作ろうと思っている。 テキストで管理すると、並べ替えが面倒なので、データベースを使いたい。「SQLite」というデータベースなら、HSP3から操作するための拡張モジュールsq…

149.HSPでゲームを作ろう:培養臼(BAIOUS) その26

ラストはおまけ。 ↓のエントリーで書いた、ポーズ機能を作り直した話を少々。 coro3.hatenablog.jpこの時の実現方法は、ポーズキーを押したら、gosubでポーズルーチンに飛ばし、無限ループにして、次にポーズキーが押されるまで、元の処理にreturnしないとい…

148.HSPでゲームを作ろう:培養臼(BAIOUS) その25

前回の続き。 ということで、自ウィンドウがアクティブじゃないときにキースキャンをしないフラグ設定すれば終わりじゃん!と思ったら、getkeyにそんなフラグはないのね…(できるなら誰か教えて偉い人w)幸い、アクティブなウィンドウIDを取得することができ…

147.HSPでゲームを作ろう:培養臼(BAIOUS) その24

コンティニューとステージ練習機能を追加したところで、コンテストは締切になった。 今年は複数の方からの評価とコメントをいただけた。ありがたい。基本的に遊んだ感想や、改善点についてだったのだが、気になったのが、非アクティブウィンドウ時にもキー操…

146.HSPでゲームを作ろう:培養臼(BAIOUS) その23

思いのほか早くコンティニュー機能を作れたので、ステージ練習機能の作成に取り掛かった。 とりあえず思いついた仕様はこれ。 選択したステージが終わったらゲームオーバー 本編で進んだステージまでしか選べない ボーナスステージは対象外(ボーナスステー…