トピック
きめぇもち ba-daxtuku

タッチした所にBGを置く方法

タッチした所にBGを置く方法を教えてください。
4そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
TOUCH命令でタッチされている時間とタッチされたX,Y座標を取得できます。 タッチされたところにBGを置きたいときはタッチされている時間が1の時に BGPUT命令でBGを置きます。 TOUCH命令で取得したX,Y座標はグラフィック系でBGPUT命令で指定する X、Y座標はキャラクタ系なのでBGSCREEN命令で指定したキャラクタサイズを 利用して座標を変換する必要があります。
2そうだね
プレイ済み
返信[2]
親投稿
やり方としてはotta777さんの言われてる通りですね。 あとは質問者がどこまで出来るのかによって説明する範囲が変わってきますし、もしわからない事があれば追加で質問すればいいと思いますよ。
0そうだね
プレイ済み
返信[3]
親投稿
オマケ。 1:画面モードを下画面も使えるモードに設定する。(XSCREEN命令) 2:操作対象を下画面にする。(DISPLAY命令) 3:メインループを作成する。(WHILE等)以下、メインループの中で、 4:TOUCH命令で画面上のタッチした場所を取得する。 5:タッチした場所はドット座標なので、BG座標に変換する。通常なら16で割ればOK。 6:タッチされた場所にBGPUTでBGを配置する。 という流れ。頑張って!
0そうだね
プレイ済み
返信[4]
親投稿
きめぇもち ba-daxtuku
5番のBG座標に変換する方法を詳しく教えて欲しいです
1そうだね
プレイ済み
返信[5]
親投稿
説明面倒なので画面写真を見てください!
0そうだね
プレイ済み
返信[6]
親投稿
ちゅうきゅうしゃさんの回答がズバリで役に立つと思います。 5番は単純にやろうとすれば16で割るだけでも(ほぼ)目的を達成できますが、BGCOORD命令を使うとBGキャラのサイズが変わったときなども対応されるはずなので、その方が確実ですね。
0そうだね
プレイ済み
返信[7]
親投稿
きめぇもち ba-daxtuku
ありがとうございました!
0そうだね
プレイ済み
返信[8]
親投稿
きめぇもち ba-daxtuku
プログラム書いて実行したら触ってもいないのにBGが置かれてたんですけどこれは仕様ですか?
0そうだね
プレイ済み
返信[9]
親投稿
そういえばちゅうきゅうしゃさんのプログラムはタッチしていない間も処理されていますね。 タッチされているかはTOUCHで得たTMが1以上かで判断できます。(ちなみに1の時はタッチした瞬間) なので7、8行目のBGを配置する処理をTMが1以上の時だけ実行する(IF)すれば望み通りの処理になると思いますよ。
1そうだね
プレイ済み
返信[10]
親投稿
きめぇもち ba-daxtuku
ありがとうございます!できました!
1そうだね
プレイ済み
返信[11]
親投稿
otta777 otta777a
>でんぺんさん BGCORDE命令を使うとキャラクターサイズを反映したキャラクタ座標を 返すんですね。勉強になります。
1そうだね
プレイ済み
返信[12]
親投稿
>otta777さん いや、わかんないです! たぶん!笑 機能的にそうじゃないのかなーって思った感じです。間違っていたらすいません!
0そうだね
プレイ済み
返信[13]
親投稿
ちなみに、このプログラムを実行してAを押すとBGを消すことが出来ます! Bを押せば元に戻ります!
1そうだね
プレイ済み
返信[14]
親投稿
otta777 otta777a
>でんぺんさん 試してみましたがBGのキャラクターサイズを反映した座標を 返すようです。
1そうだね
プレイ済み
返信[15]
親投稿
>otta777さん おお。やっぱりそうでしたか〜。 BGのキャラクターサイズってバージョンアップで実装されましたが、その前までは16で割るのが手っ取り早い感じがありましたが、こうなるとBGCOORDを使うメリットが増えそうですね。
1そうだね
プレイ済み