MSX-BASICの奥義を伝授するスレ
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
450:デフォルトの名無しさん 07/04/02 00:24:02 どの種類のスプライトを移動したかを記憶しておく変数を用意して ON SPRITE GOSUBで飛んだ先で、ON 変数 GOSUBで分岐。 分岐先で衝突しうるスプライトの座標を比較する。 とかじゃダメなの? 451:デフォルトの名無しさん 07/04/02 00:32:23 >>449 on sprite gosubで飛ぶサブルーチン側で、 当たったら処理しなきゃいけないスプライトを必死に探す。 449の例で言うなら自機と敵&敵の弾、自機の弾と敵について座標を比べまくって探すんだ。 それ以外が当たってるんだったら無視。 スピードが遅くなる? そこは各自で工夫。 450の様に、動かしたスプライトについてだけ調べてみるとかも良い。 この判定処理を機械語ルーチン化するのは非常に有効な方法だ。 452:デフォルトの名無しさん 07/04/02 00:40:36 >>450-451 やはり用意された方法というのはなく、座標を探すということになるのですね。 参考になりました。本当にありがとうございました。 453:デフォルトの名無しさん 07/04/03 15:31:31 >>449 基本的に on sprite gosub は、処理ムラや処理が重くなる原因なので 使わない方がよい。 以下のようにすれば、使わなくても判定できる。 5 ' スプライト しょうとつはんていサンプル 10 X=100:Y=100'じぶん 20 TX(0)=50:TY(0)=70'てき0 30 TX(1)=105:TY(1)=92'てき1 100 ' 110 FOR I=0 TO 1 120 IF ABS(X-TX(I))<16 AND ABS(Y-TY(I))<16 THEN PRINT"てき";I;"とせっしょくしました" 130 NEXT 140 END >>451のように、機械語にするのは有効。 MSXでは機械語をサブルーチンのように呼び出せるので、 ベーシックの一部分を少しずつ機械語にしていくと良い。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5395日前に更新/154 KB
担当:undef