スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

11月8日 激突! - ON SPRITE GOSUB


というわけで、MSX1に触れてみよう企画第二弾です。




いつから連続企画になったんですか。




まあまあ。で、ゲームづくりに向いているMSXですが、スプライト関連の命令の中に便利そうなものを見つけました。




[ ON SPRITE GOSUB ] なんですかこれ?




スプライト同士が衝突した場合、サブルーチンに飛んでくれるという、衝突判定をパソコンがしてくれる非常に便利そうな命令です。




自前で衝突判定を書かなくていいんですね。確かに便利なような。




そこで、実験する為にプログラムを作ってみました。衝突すると"CRUSH!"と表示するものです。



スプライト衝突判定実験その1


十字スプライトを動かして、四角いスプライトに当てるんですね。



スプライト衝突判定実験その2


おお!



スプライト衝突判定実験その3


おおぉう!




何興奮してるんですか?普通にちゃんと判定してますが。




いや、実はON SPRITE GOSUBの判定って、スプライトサイズの矩形で判断するんじゃないかと予想してたから。画面の十字マークはスプライトサイズより若干小さめに作られていて、実際のスプライトサイズはこんな感じになっているので、



スプライト衝突判定実験その4


この状態でも「当たった」と判定されるんじゃないかと思ってた。




なるほど、ちゃんと透明部分には判定がないので、それでびっくりしてたんですね。




かなり使える!と思ったんですが……




が?




これって、どのスプライトが当たったかという情報が得られないみたいなんだよね。今回みたいに二つしか無ければいいんだけど、例えば自機・自弾・敵・敵弾なんていう複数スプライトがあったら、ON SPRITE GOSUBで飛ばされても何と何が当たったのかわからないので、結局判定コードを書かなきゃならないんじゃないかと思って。




なるほど。あと、判定が見た目より小さい時とかですね。弾幕シューティングの自機とか。




さすがにBASICで弾幕シューは無理だと思うけど、そういう場合も自前で判定しないといけないよね。




ということは、ON SPRITE GOSUB は使えない?




いや、さっきの実験でもわかったとおり、透明部分についてもちゃんと考慮してくれるので、使いどころはありそう。複雑な形のスプライトだと特に。




あと、ゲームづくり初心者用という役割もありそうですよね。




自動で衝突判定してくれるから、考えるところが少なくて済むのでそうかもね。





C77鋭意制作中……

コメントの投稿

非公開コメント

No title

動かそうとするスプライト番号を控えておけば解りそうですが、1命令分遅くなるのがネック。

No title

結局いろいろ自前でやらなきゃならないので、何番と何番が当たったのかの情報が欲しいですよね。
カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
twitterでひとこと
最新記事
リンク
カテゴリ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
来訪者数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。