「プチコン」カテゴリ内の記事 このカテゴリをはてなブックマークに追加 このカテゴリを含むはてなブックマーク (初公開日順)

2013年2月23日 (土)

HLPVIEW: プチコンmkII用の簡易アドヴェンチャーゲーム用ルーチン

ハイパーテキストという概念があり、現在の Web が(一部)実現したハイパーリンクのもとになった考え方という見方もある。NCSA Mosaic という最初のネットブラウザーがでてくる以前にも、Mac には HyperCard があったし、90年代のエロゲーの中には、システムを一般化して内部でリンクを辿っていくような処理をしているものもあった。

なんでエロゲーの話が出てくるかというと、私が最初にこの概念に触れたのがそのエロゲーの解析をしていたときだからであるというのは、内緒だ!と宣言しておく。(^^)

ゲーム作りに関心のあるようなゲーマーにとってみれば、そういうストーリーを選択して追うだけの「アドヴェンチャーゲーム」ならば、「プログラム」をしなくても良いという点に売りがある。この点、Web が広まるにつれて、そこかしこでそういうゲームにもっと出くわすようにも私は考えたんだが、そうならなかった。

そういったハイパーテキスト風のリンクを辿って文書を読むしくみを、簡単なものだが、プチコンmkII 用にも実装した。それが STACKLIB に含まれる hlpview.prg である。実際の文書例としては『易双六 PTC』の YSCHELP プログラムがそれになる。

続きを読む "HLPVIEW: プチコンmkII用の簡易アドヴェンチャーゲーム用ルーチン"

2013-02-23 09:53:30 (JST) in JRF 作成ソフトウェア, プチコン | | コメント (2) | トラックバック (0)

2013年2月22日 (金)

POPUP_MNU_RA: プチコンmkII用のポップアップメニュー

STACKLIB に付いてくる ctrllib.prg は、今風の「ジェスチャ入力」「モーションコントローラ」には対応していない。わざわざライブラリにするぐらいだから、そういうのを期待されるのかもしれないが、『易双六 PTC』で使うのに必要とした部分のみしか作っていないというべきで、ウリと言えば、自分で使っていて便利だなと思ったポップアップメニューのルーチン @POPUP_MNU_RA になる。

続きを読む "POPUP_MNU_RA: プチコンmkII用のポップアップメニュー"

2013-02-22 18:17:29 (JST) in プチコン | | コメント (0) | トラックバック (0)

CON_PRINT: プチコンmkII用コンソールPRINT

プチコンの PRINT の実装は何かと「不完全」である。下画面は PRINT ではなく PNLSTR を使わねばならないし、上画面のコンソールの文字の読み出しはできるが、色までは読み出せない。そもそも、プチコンは、文字列が "\xXX" といった「エスケープシーケンス」に対応しておらず、文字列として改行やダブルクォート(")を入力する方法はなく、CHR$() でアスキーコードを文字列にしてから連結する必要がある…。等々。

しかし、逆に言えば、エスケープシーケンスみたいなものを実装した「僕の考えた完全な PRINT」ルーチンを実装するには、変に処理がはさまれないので都合が良く、少なくとも表示はできるだけの要素は揃っているとも言える。これはそういうのを作れという暗示なのかもしれない。

作ってみた。

それが STACKLIB のアーカイブに含まれる stdlib.prg の中の @CON_PRINT になる。これは PRINT するときにいちいち何を書いたかを(VIRTUAL_CON$[]に)記録し、私好みのエスケープシーケンスも解釈する。引数に(文字列化された)「配列」を渡すことで、\[0] や \[1] と番号を指定して、それを文字列に取り込みながら、PRINT できる。また、例えばボタンを表す文字など特定の文字に常に色を付けることができる。…といったようなゴテゴテしたものを作ってしまった。

続きを読む "CON_PRINT: プチコンmkII用コンソールPRINT"

2013-02-22 07:58:04 (JST) in プチコン | | コメント (1) | トラックバック (0)

2013年2月21日 (木)

STACKLIB: プチコンmkII用スタックライブラリ

プチコン(mkII)の SMILE BASIC には、いわゆる関数定義の方法はないが、 GOSUB & RETURN はある。GOSUB は、変数に入ったラベル名でも OK な優れものだが、引数を取れないので、引数や戻り値をどうやって返すかは、(自分で) 決めておく必要がある。

普通には、A1="A":A2="B":GOSUB @F1:PRINT R といった感じで、 A1,A2,A3... に引数を入れ、R に返すとでも決めればいいのだが、この方法だと呼び出されたときの引数の値が、デバッグ時に残らない。

そこで、コンパイラが吐くアセンブラでよく使うテクニックとして、スタックを使って、そこに変数を push して引数を渡す方法があるのだが、私はそれを採用することにした。

このテクニックの自然な拡張として、push pop で「ローカル変数」みたいなものも確保できる。実際、それをローカル変数と見なして「文法」チェックする(そしてQRコードを吐く) Perl スクリプトも書いた。

今回は、そのライブラリと Perl スクリプトを紹介する。

続きを読む "STACKLIB: プチコンmkII用スタックライブラリ"

2013-02-21 04:44:53 (JST) in JRF 作成ソフトウェア, Perl, プチコン | | コメント (7) | トラックバック (3)

「易双六 PTC」開発記

2013年正月明けに 3DS と共にプチコンをダウンロード購入。最初から作るものは決めていた。可能ならば、自作の(Web版の)『易双六』を移殖したい…。

しかし、その前には数々の困難が待ち受けるのであった。

続きを読む "「易双六 PTC」開発記"

2013-02-21 04:29:42 (JST) in JRF 作成ソフトウェア, プチコン | | コメント (9) | トラックバック (1)