イオ太のブログ

ゲームのこと(レトロ多め)とか、コンピュータのこととか

オモシロかわくだりゲームが作りたい(2)

* この記事は IchigoJa m Advent Calendar 2024 に参加しています。

 

2024年、私がIchigoJamで作ったもの、作りかけたものについて振り返ります。前回の続きです。

オモシロゲームが思いつかない!

「かわくだりさっちゃん」を作ってから、それ以上におもしろいゲームが思いつきませんでした。どうしても「かわくだりさっちゃん」の内容に引っ張られてしまいます。特に、

 

  ・人(生物)が舟に乗っていて何かする。

  ・人(あるいは舟)がジャンプする。

 

という内容で考えようとしていました。

 

舟のデザインに凝ってみる

ゲームの内容が思いつかないので、舟に人が乗る絵を凝ってみることにしました。

画面のようにいろいろな形や大きさで描いてみました。サイズが大きくなると障害物に当たりやすくなるというデメリットがあります。それを回避するには、以下のようなことを考えました。

 

 ・障害物を減らす。

 ・障害物を破壊できるようにする(シューティングとか)

 ・障害物を無効にする何か(ジャンプとか無敵とか)

 

しかし特にこれという良いものは思いつきませんでした。ただ、見た目だけで考えれば、人がいっぱい乗っているのは人生ゲームのコマのようで楽しそうだなと思いました。

調べてみたら最近の人生ゲームのコマって人がカラフルになっててビックリしました 笑
人生ゲームはゲームが進むにつれて、だんだん車に人が増えていくのが楽しいです。あんな感じでだんだん人が増えるといいなと思いました。そこで人を救出しながらだんだん舟に乗せていくことを考えました。
 
昔、「リバーパトロール」というゲームがありました。川を進みながら人を救助するゲームです。ああいうのはどうかなと考えました。

 
とりあえず、おぼれる人を描いてみることにしました。

IchigoJamに用意されている既存のキャラクターをなるべくそのまま使ってみました。上半身だけをコピーして水に浸かっているようにして2パターンで動かしました。以下のプログラムでは、2種類のバージョンをためしに作っています。
 

<プログラム>

10 CLS
20 COPY#700,#000,3:COPY#703,#7D0,5
30 COPY#708,#000,3:COPY#70B,#7C8,5
40 COPY#710,#000,4:COPY#714,#7D0,4
50 COPY#718,#000,3:COPY#71B,#7C8,5
100 LOCATE0,0:?CHR$(224);" ";CHR$(226)
110 WAIT20
120 LOCATE0,0:?CHR$(225);" ";CHR$(227)
130 WAIT20
140 GOTO100

IchigoJam web版はこちら

 

また、おぼれる人を救出する時に「UFOキャッチャー」のように引っ張り上げるとおもしろいなと思いました。

 

というようなことを考えていたものの、プログラムが長くなりそうなことと、ちゃんとおもしろいゲームにする自信がなかったのでそれ以上は作っていませんでした。

 

でも、ためしに作ってみた

せっかくなので今回、やりたかった要素だけで作ってみました。ゲームにはなっていません。不具合もあります。


www.youtube.com

動画は、IchigoJam web で実行しているためスピードが遅くなっています。

 

<内容>

・舟をカーソルキーで上下左右に移動します。

・川でおぼれている人たちが画面下から現れます。

・スペースキーを押すとクレーンが伸びます。

・クレーンで人をキャッチして救助します。

・救助した人は舟に乗ります(6人まで)。

・クレーンの正面以外が人にぶつかると人は消えます。

・舟にぶつかった人も消えます。

 

<プログラム>

10 VIDEO1:CLS:CLV:X=14:Y=3:V=X:W=Y
20 POKE#800,#8E,#83,#83,#83,#8D,#85,#00,#92,#00,#8A,#85,#00,#92,#00,#8A
30 POKE#80F,#85,#00,#92,#00,#8A,#8B,#8C,#00,#8C,#87,#00,#8B,#8F,#87,#00
40 POKE#81E,#00,#00,#83,#00,#00
60 COPY#700,#000,4:COPY#704,#7D0,4:COPY#708,#000,3:COPY#70B,#7C8,5
100 FORI=0TO6:COPY#900+I*32+X+Y*32,#800+I*5,5:NEXT
110 V=X:W=Y:WAIT0
120 IF(P=0)&BTN(32) P=1:Q=0
130 IFP>0 GOSUB500:GOTO200
140 X=X-BTN(28)&(X>0)+BTN(29)&(X<26)
150 Y=Y-BTN(30)&(Y>0)+BTN(31)&(Y<16)
160 IF(X!=V)|(Y!=W) FORI=0TO5:LCV,W+I:?" ";:NEXT
200 C=(C+1)%8:A=C%2:COPY#710,#700+A*8,8
210 IFC=0 LCRND(31),23:?"↑":IFY>0 Y=Y-1:W=W-1
300 GOTO100
500 IFP=2 LCX+1,Y+8+Q:?" ":IFQ<0 P=0:RETURN
510 IFP=3 LCX+2,Y+9+Q:?" ":LCX+1,Y+8+Q:IFQ>=0 ?" 🕺 " ELSE P=0:?" ":IFN<6 N=N+1:POKE#812-(((N-1)%2)*2+(N-1)/2*5),#F9:RETURN
520 LCX+1,Y+7+Q:IFP=1 ?"▟▀▙" ELSE ?"▐▀▌"
530 IF(P=1)&(Q>0) LCX+1,Y+6+Q:?" ┃ ":IF(Q=8)|(Y+7+Q=23) P=2
540 IFSCR(X+2,Y+8+Q)=226 BEEP:LCX+2,Y+8+Q:?"🕺":P=3
550 IFP=1 Q=Q+1 ELSE Q=Q-1
560 RETURN

*プログラムの110行目は、IchigoJam web用にWAIT0としています。

IchigoJam web版はこちら

 

まあこんな感じです。ここまで作ってみたところで、982byteになったのでこれ以上作るにはプログラム1つ(1KB)では難しいですね。ということで、このゲームはここまでです。

 

次回、DRAWで自機を表現する

(つづく)