トピック
shoum shoum0403

次はスプライトか

今まで文字でスロットをつくってきたのですが、スプライトでしたくなったので入れようとおもったら 全く意味がわからない、 A=RND(8)+1をスプライトで表示したい+座標を決めるにはどうしたらいいですか??
2そうだね
プレイ済み
返信[1]
親投稿
ショー syo0918syo
RND(8)+1で出る数値をスプライト表示したいってことなら 結果によって定義番号変わるようにする 座標はSPOFSで決め
0そうだね
プレイ済み
返信[2]
親投稿
nobu divine-creator
とりあえず、スプライトを描いていなければ、何も始まらない。 描いたら、SPDEFで定義して、SPSET後にSPOFSで位置を設定して、一旦SPHIDEで隠しておく。 そして、RNDの結果をIFで分岐して、SPSHOWで表示する。
0そうだね
プレイ済み
返信[3]
親投稿
RNDで求めた値を何のスプライトで表示したいのかな? 数字のスプライト? スプライトの表示はSPSETで出来るし位置はSPOFSで変えられます。またSPSETで一度表示したスプライトの絵を変えたいときは、SPCHRで変えることも出来ます。 具体的にどうしたいのかをもうちょっと上げてもらった方がちゃんとした回答が出せると思いますよ。
0そうだね
プレイ済み
返信[4]
親投稿
ちなみに数字のスプライト表示だけならデフォルトで定義番号48から0123456789という数字が続いているので、 SPSET 0,48+A とすればAの数(ただし0〜9の一桁限定)がスプライトとして表示されます。SPSETだけだと左上に表示されるので、位置を変更したかったら、その後に、 SPOFS 0,400,120 とかやれば真ん中付近に表示されます。(このスプライトの原点は左上なので正確に真ん中ではないです) というのが基本ですが、あとは色々と試してみるといいと思いますよ。スプライト関係の命令は頭がSPから始まるのが多いのでSPで補完すると良いです。
0そうだね
プレイ済み
返信[5]
親投稿
間違えた…。SPOFSは400じゃなくて200です。って、それでも原点の問題で真ん中ではないけど…。正確に真ん中にしたい場合、スプライトのサイズが16×16なので、その半分の値を引けばいいです。(つまり392)
0そうだね
プレイ済み
返信[6]
親投稿
てんぺんさん っSPHOME 一桁以上だったら STR$とVALとMID$を使えば出来る。 (もちろん他の方法もあるが、自分が思った処理では上のを使う) ところで管理番号とか定義番号とかは理解できていますか?
0そうだね
プレイ済み
返信[7]
親投稿
SPHOMEは知ってましたが、初心者なのでまずはなるべく少ない命令でって思いました。 それにSPHOMEを使うとSPANIMを使うときにやっかいになるので、まずは基本からって感じですね〜
1そうだね
プレイ済み