プチコンのプ その4 スプライトでシューティングを!

プチコンのプシリーズ第4弾。 今回はいよいよスプライトを使います。 プチコンmkⅡのスプライト移動補間と衝突判定であっという間にシューティングゲームが! - バックナンバー - 続きを読む
0

スプライトで遊ぼう

ダイレクトモードでも使えるんです、スプライト。

ASA @fusuian

いよいよスプライトを使います。プログラムに入る前に、直接スプライトを表示してみましょう。SPSET命令で、0番のスプライトにパターン64(勇者)を割り当てます。 #p4petitcom http://t.co/zBSruvXN

2012-11-19 20:44:46
拡大
ASA @fusuian

SPANIM命令で、アニメーションのコマ数を指定します。#p4petitcom http://t.co/zqIEfqgq

2012-11-19 20:47:41
拡大
ASA @fusuian

SPOFS命令で画面端へ移動。最後の600は、指定した場所に10秒かけてゆっくり移動させる、移動補間。#p4petitcom http://t.co/C4eBrhlc

2012-11-19 21:03:40
拡大
ASA @fusuian

このあとまた、 SPOFS 0,0,0,300 などとすると、ムーンウォークします(笑)#p4petitcom

2012-11-19 21:03:46

勇者くん登場

ASA @fusuian

というわけで、プログラムにしてみました。十字キーで勇者を左右に動かします。IF文の書き方がちょっと違いますね。 #p4petitcom http://t.co/6nJAPC84

2012-11-19 21:24:11
拡大
ASA @fusuian

さらに上下方向の移動を追加。IF文は0でなければTHENの先へ、0なら次の行へ進むので、先に書いた二文もより短く書いてみました。このANDを使った書き方で、勇者はナナメにも動きます。 #p4petitcom http://t.co/ED4dGiL0

2012-11-19 21:37:15
拡大
ASA @fusuian

キーを入れた向きに応じて勇者を前後左右に向かせるにはSPCHRを使うけど、今回は見送り。1行めの64を76に変えると、勇者くん後ろ向きっぱなしになります。今回はこれで通すことにしましょう^^; #p4petitcom

2012-11-20 00:22:01

ライバル?赤勇者くん

ASA @fusuian

スプライト99番に勇者くん2号を設定。パレット2番なので赤勇者になる。こっちの方が主役ぽかったかな? #p4petitcom http://t.co/QLx7m2oc

2012-11-21 00:02:20
拡大
ASA @fusuian

赤勇者くん左右移動。SPCHKをチェックして、移動が終了していたら新しい座標をセットする。 #p4petitcom http://t.co/qmOo5DOW

2012-11-21 00:06:19
拡大

火の玉発射

ASA @fusuian

次は弾を撃てるようにして行きます。スプライトの1に火の玉を割り当て。 #p4petitcom http://t.co/QgueGmaP

2012-11-21 07:49:24
拡大
ASA @fusuian

スプライト1が移動してない時、何かボタンが押されたらスプライト1を勇者くんの場所から真上に移動。 #p4petitcom http://t.co/BXJJDAaQ

2012-11-21 07:51:30
拡大
ASA @fusuian

赤勇者くんが何かスプライトに当たったら、爆発音と一秒間のやられモーションを出して元に戻す。ちょっとした射的ゲームになりました。 #p4petitcom http://t.co/XnmKkDsU

2012-11-21 07:54:52
拡大

ここまでの全リスト

ASA @fusuian

勇者くんのX,YもSPREADで読めることに気がついた! というわけでRX,RYも全部X,Yに直してみた。ここで一度全リストを掲載。 #p4petitcom http://t.co/ORWCBeA1

2012-11-21 12:59:22
拡大
ASA @fusuian

全リスト 2/3 #p4petitcom 顔が映り込みそう(笑) http://t.co/PW4AIBQq

2012-11-21 12:59:58
拡大

連射!

ASA @fusuian

今度は火の玉を連射しますよ。先に8つのスプライトを火の玉で初期化します。 #p4petitcom http://t.co/4PnzCenv

2012-11-21 21:32:30
拡大
ASA @fusuian

そしてボタン判定。動いていない火の玉があったら、勇者くんの位置から発射します。FORループを抜けるためにI=8として終了条件をムリヤリ決めるのがミソ。 #p4petitcom http://t.co/s6d1FKWA

2012-11-21 21:35:03
拡大
ASA @fusuian

さて、当たり判定の追加は…なんと必要ない! 赤勇者くんと何かがヒットしたらダメージ、というプログラムを既に書いていたのです! これはプチコンmkⅡならではの技! #p4petitcom

2012-11-21 21:37:08