トピック

何故だろう

何故、これじゃ動かないんでしょうか。
1そうだね
プレイ済み
返信[1]
親投稿
それはSTICKはあくまでスラパの状態を取得する関数ですから、勝手に加算はしてくれないからです。 だから IF STICKX~~THEN X=~~~ みたいにしないといけません。 STICK OUT STX,STY ?STX,STY とすればわかるはず……です。
2そうだね
プレイ済み
返信[2]
親投稿
??? 258556
スライドパッドが1~-1しか返さないので、X,Yの変化が小さ過ぎて動いていないように見えるのでしょう。
2そうだね
プレイ済み
返信[3]
親投稿
だにえる haru2016nen
スティックの座標に移動させたいのなら、 SPOFS X*10,-Y*10 のように。 スティックでキャラを移動させたいのなら しょぼーんsの通り。
1そうだね
プレイ済み
返信[4]
親投稿
だにえる haru2016nen
↑SPOFSに管理番号付け忘れました
0そうだね
プレイ済み
返信[5]
親投稿
あきと SideBurnsM
なぜ動かないのか自分でも確認する癖をつけるといいですよ。 「PRINT X,Y」 と変数の内容を確認するとわかりやすくなると思います
3そうだね
プレイ済み
返信[6]
親投稿
STiNGER STiNGER8901
原因は、変数X,Yが未定義(ゼロ)で、かつSTICK命令の出力用とスプライト移動用で同じ変数にしちゃってるところ。 それだと、スライドパッドの操作をなぞる動きしかしないので、指を離すとまた原点に戻るわけです。(だから動いていないように見える)。
1そうだね
プレイ済み
返信[7]
親投稿
STiNGER STiNGER8901
こちらを参考にどうぞ。 x,y座標とスラパ入力値も表示します。
1そうだね
プレイ済み
返信[8]
親投稿
なんで一回この投稿消したのよ…折角回答したのに。↓その時の回答の一部 「あと、スライドパッドを限界まで動かしても、数値は約0.86しか返ってこないので、SPは1ドットも動きません。」
1そうだね
プレイ済み
返信[9]
親投稿
何故(動かない)の理由だけなら簡単。解説は他の人が色々書いてるんで省略。 今のプログラムは、 STICK命令は、スティックの傾けた方向を-1〜1の範囲で取得する命令。 STICKで取得した値(-1〜1)をスプライトの座標として設定。 と言うことでスプライトの座標は左上から±1ドットの位置が最大になる。ただしオワたずさんの言われるように誤差があるので、実際は動くようには見えないぐらいの位置範囲しかない。 って事です。
1そうだね
プレイ済み
返信[10]
親投稿
難しい言い方をすると、座標と移動量を取り違えてるってことね
2そうだね
プレイ済み
返信[11]
親投稿
ありがとうございました。
0そうだね
プレイ済み