N-BASICでプログラム(1)
昔取った杵柄。
パソコンミニのN-BASICで、当時よくあったタイプのゲームを作ってみました。
このゲームのプログラムには、BASICでのゲーム作りによく使うパーツがいくつも含まれています。
BASICプログラムに興味ある方は参考にしてみてください(いるのか、そんな人?)
【 ARIGACHI CHASE! 】
水色のスペードマークを[WASZ]で操作して、赤いクローバーから逃げながら、黄色いダイヤを集めます。
スペースキーで穴(○)を作って、クローバーを落とすと高得点。
*にぶつかったり、クローバーに捕まったり、TIMEが0になるとゲームオーバーです。
敵が移動した跡にはドットが置かれます。
ダイヤやドットを取ると、得点とTIME加算。
まあ、そんな感じのゲームです。
以下がプログラムです。
textファイルにできないので写真で…そこそこの分量ですが…。
定石的な部分に関して、説明も書いてみます。
10〜200行。
ゲームスタート〜プレイヤーキャラを動かしている部分の途中まで
CONSOLE 0,25,0,1:WIDTH40,25
画面の諸設定。横40キャラ設定です。おまじないのようなもの。
DEFINT A-Z
変数を整数に限定します。これをやると処理速度が少し早くなる。
PRINT CHR$(12)
画面消去の呪文です(笑)。なぜかこれで画面がクリアされる。
IF INP(2)=253 THEN …
INP関数は、キーが押されているか調べるコマンドです。各キーの対応はこちらのページが詳しいです。
本来、テンキーの2468にするのが遊びやすいんですが、うちのキーボードがテンキーなしなので、WASZにしてます。
IF INKEY$=" " THEN …
こちらもキーボード入力のコマンドで、スペースキー" "を押すことで動作させています。
こっちの方がINPよりわかりやすいのですが、押しっぱなしだと変なキーリピートがかかるなどゲーム操作には使いにくいです。(こちらもINPでもよかったのですが、サンプルとして色々使ってみたかったので)
PK=PEEK(&HF302+(Y+AY)*120+(X+AX)*2)
PEEKで画面の進行方向座標にどんなキャラクター(文字)が描かれているか調べて、当たり判定をしています。
&HF302+Y座標*120+X座標*2 …は画面を調べる時のおまじないみたいなものです。横40モードのみの呪文だったかな。
ちなみに私の当時の愛機X-1には、CHARACTER$(X,Y)というコマンドがあって、わかりやすかった。
210〜400行。
冒頭はプレイヤー関連、250〜は、敵キャラを動かしている部分。
プレイヤーキャラ部分と似たようなことをしているだけなので、特に説明なし。
処理速度が遅いので、毎ループで敵キャラ4体中の1体だけをランダムで選んで動かしています。
400〜500行。
ステージ作成〜スコアやTIMEを書いている部分。
PRINTUSING"SCORE ######";SC
は、SC(得点の数値)を右揃えで表示します。
500行〜。
タイトル部分。
冒頭でここに飛んでタイトルを表示しています。
ゲームオーバー時には620に飛んできます。
IF INKEY$=CHR$(13) THEN …
CHR$(13)はリターンキーのコードです。
リターンを押すと、ゲームスタート/リスタートします。
COLOR RND(1)*7
ループでタイトルを七色にチカチカさせています。当時の定番ですね。
-----
Javascriptなど他の言語に比べても、BASICはやりたいことを圧倒的に簡単に書くことができることを、改めて実感しました。
入門としては素晴らしい言語ですよね、BASIC。ビル・ゲイツ、偉大だ!
(まあ、作れるもののクオリティは、それなりのものになりますけどね)
このプログラムを書きながら、結構、昔の記憶が蘇ってきたのですが、
それでも、思ったように動かずに悩んで時間がかかったところも、いくつかありましたね。
当時だったらもっとすんなりできてたろうに…。
時々キャラクターの色が指定と違うものになることがあります。
プログラム的にはありえない(ように思う)ので、なぜ起こるのかわかってません。
パソコンミニのバグなんじゃないかと思ってますが…。
(まあ、私が気づいてないところで何かプログラムミスがあるのかもしれませんが)
(2020.10.26)
| 固定リンク
「ゲーム」カテゴリの記事
- あつ森プレイ1周年(2021.04.20)
- ポケットプレイヤー ディグダグ(2021.03.16)
- アストロシティミニ(2020.12.22)
- N-BASICでプログラム(2)(2020.11.30)
- N-BASICでプログラム(1)(2020.10.27)
「パソコン・インターネット」カテゴリの記事
- Wacom Intuos S(2021.03.24)
- MacBook用 USBハブ(2021.03.02)
- Mac新調(MacBook Air M1)(2021.02.16)
- N-BASICでプログラム(2)(2020.11.30)
- N-BASICでプログラム(1)(2020.10.27)
コメント