ふるつき

私は素直に思ったことを書いてるけど、上から目線だって言われる

hsp初心者なのでゲーム作った

これは、

Hot Soup Processor Advent Calendar 2016 - Qiita

の4日目の記事です。思ってたのの9倍くらい登録してる人がいてびっくりしました。

hspを使ってゲームを作りました

 私は現代視覚文化研究会、「げんしけん」に所属していて(漫画のげんしけんとは似て非なる現視研です)。毎年の高専祭(弊高専の学祭)では、仲間たちと作った自作のゲームを展示しています(今年で三年目)。

 一年生のときはDXライブラリで頑張っていたのですが、去年は突貫で作らざるを得なくなってしまい(他の現視研の人が作るゲームを応援してたけどそれが頓挫した)、HSPを使ったところ短期間でそれなりのものが出来て、味をしめました。それで今年は「HSPで突貫で作るぞ」という予定をたてて、2週間くらいで作りました。

 それで出来たのがこんなゲームです。

 これを書いていて感じたこと、嵌ったポイントを書いて、お茶を濁そうと思います。hspはお手軽なのでちょっとゲーム作りたいとかツール作りたいとかいうときにおぼえておきたいこととかね。

HSPスクリプトエディタを使おう

このアドベントカレンダーではHSPスクリプトエディタでは不満足という方がVimHSPする記事を書いてくれていたり、Nodepad++でHSPする記事を書いてくれそうな気がしますが、お手軽さを求めてHSPを使うなら、HSPスクリプトエディタが多分最善の選択肢です。 なんの設定もしなくても結構使い物になります。軽いし。

F5で実行するのとF1でヘルプ見るのだけ憶えておけば行けそうということがわかりました。

F1ヘルプを使おう

これがHSPスクリプトエディタを使う理由みたいなものです。適当なキーワードにカーソルを合わせるとヘルプというかドキュメントが出ます。これが軽いしそこそこわかりやすいし便利なのでいろいろ検索しましょう。

#cmpopt varinit 1しよう

 というかしないと死にます。これは「未初期化の変数があると警告してくれる」機能をオンにするやつで、"use strict"みたいなものです。hspスクリプトエディタはソースコードの解析してくれないし、hspはいきなりtypoで変な変数作っても普段は(HSP的には)いい感じにしてくれちゃうのでバグに気が付きにくいので、必ずソースコードの戦闘で #cmpopt varinit 1 しておきましょう。

 ただしこれ、ソースコードを上から下にみるだけなので、gotoとかgosubをうまく解釈してくれないのが玉に瑕です。

ループの中でreturnしてはいけない

 HSPはちょっと阿呆なところがあって、repeatwhile のなかで return してしまうと、スタックがごにょごにょして挙動がほげります。しっかりbreakしましょう。

 これは師匠に言われないと絶対に分からなかったしはまりどころですね。

gosubしたらreturnで値を返せる

 これは常識かもしれませんが、しらなかったので。gosubで飛んだ先では return hoge として値を返すことができます。返した値は、整数は stat に、文字列ならば refstr に格納されます。


とりあえずこんなところですか。hspは初心に帰って書いてるとそれなりにイケてると感じられるので、来年も書こうかな~と思います。