[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[WitchTech 00423] スプライト関連の処理についての質問



こんにちは。
春岡と申します。
スプライト関連の処理でどうしてもわからないことがあるの質問することにしまし
た。

今現在、『display_control(  DCM_SCR1 | DCM_SCR2 | DCM_SCR2_WIN_INSIDE |
DCM_SPR )』で、2*2(16p*16p)のスプライトを三つ設定し、そのうちの
一つ(S1)(スプライトNo.0〜3)だけを表示させようとしているのですが、
なぜか表示させようとしていない(したくない)(表示させるプログラムを組んでい
ない)残り二つのスプライト(S2&S3)(スプライトNo.4〜7&8〜11)
まで表示されてしまうんです。

いろんな方のサンプルやHpなどを見ながら自分なりに原因を探したところ、

(1)
『sprite_set_range(スプライト表示範囲設定)』で実際に使用(表示)する分だけ
を範囲設定すれば、余分なスプライトが表示されないことを発見しました。
私の状態を当てはめて言うと、
『sprite_set_range(0,4)』とすれば本当(実際)に表示させたいS1だけを表示で
きるようになります(スクリーン番号不問)。

(2)
また、『sprite_set_range(0,12)』のようにスプライトを三つとも設定してもスク
リーン1を使用しなければ
表示させたいS1だけを表示することができました。


(2)の解決方法では、『display_control』でスクリーン1も使用(制御)するこ
とになっているので、駄目です。
そうなると残りは、(1)の解決方法しかないのですが、これだと問題が出てきま
す。

例えば、
S1(No.0〜3)とS3(No.8〜11)の二つのスプライトを表示させよう
とします。
(1)の解決方法だと、表示させたい分だけを範囲設定するので、

『sprite_set_range(0,12)』と設定します。
こうすれば確かにS1とS3はちゃんと表示させることができるのですが、上記の説
明のとおり、
『sprite_set_range(0,12)』だと、表示させたくないS2(No.4〜7)まで設定
していることになるので
結局ゴミスプライト(S2)も表示されてしまいます。

こうなってしまうと解決方法は、スクリーン1を使用(制御)しないことだけになっ
てしまいます(スプライトは絶対に使いたいので)。

後、
sprite_set_char(0から設定)
『sprite_set_range(0,4)』
sprite_set_char(8から設定)
『sprite_set_range(8,4)』

こんなお馬鹿なこと(↑)もしましたが、スプライト個々に設定していくものではな
いみたいで、あとに書いた『sprite_set_range(8,4)』の設定になってしまいました
(結果は、S3だけ表示された)。

私は以上のことを試しましたが結局解決することができませんでした。スクリーン1
を使用(制御)しなければOKなんですけど・・・ちょっと困る(泣)。

解決方法を知っている方がいらっしゃいました教えて頂けないでしょうか。
よろしくお願いします。

長文でごめんなさい。
では。


春岡みなと
ver-mh@geocities.co.jp
hami屋online
http://www.geocities.co.jp/Playtown-Toys/7228/




ML Archives