トピック
カムイ 26427iku

上下の移動制限についての質問です

なんかよく分からなくなってきたので質問です。 上下の移動制限についてなのですが…ちょぴり説明しづらいので、コメントにて、画像を交えて質問します。 よろしくお願いします。
5そうだね
プレイ済み
返信[1]
親投稿
カムイ 26427iku
現在、上下移動に一切の制限がかかっていない状況で、いくらでも画面外に出れます。 避けゲーを作りたいのでもちろん制限はしたいです。 そこで、そもそもの上下制限に必要な命令を、まず教えてもらいたいです
0そうだね
プレイ済み
返信[2]
親投稿
カムイ 26427iku
そして次に、制限する場所です(どこから先は行けない、等のことを言いたいです) このコメントについている画像をご覧ください。 この状況で忍者のスプライトがここ以上、下に行かない様にしたいのです。 その場合設定する数値はどうなるのか、そして
0そうだね
プレイ済み
返信[3]
親投稿
カムイ 26427iku
あ、画像忘れたorz
0そうだね
プレイ済み
返信[4]
親投稿
カムイ 26427iku
そして同様にこれ以上、(コメント画像参照)上に行かない様にしたいのです。 回りくどく、分かりにくい質問だとは思いますが、よろしくお願いします。
0そうだね
プレイ済み
返信[5]
親投稿
カムイ 26427iku
はいまた忘れたーorz ここまで来るとヤヴァいゾ…
0そうだね
プレイ済み
返信[6]
親投稿
shoum shoum0403
忍者の横座標をX、立て座標をYとした場合、 IF X<0 THEN X=0 (もしX座標が0未満の時、X座標を0に戻す) これで忍者の左の移動制限はできたか と思います。 あとは、これを上、右、左、の分を作ればOKです。
0そうだね
プレイ済み
返信[7]
親投稿
shoum shoum0403
ごめんなさい、上、右下ですね
0そうだね
プレイ済み
返信[8]
親投稿
shoum shoum0403
右下ではなく、下です。何度も何度もほんとごめんなさい
0そうだね
プレイ済み
返信[9]
親投稿
たかChi takashi_o
上下に岩があるので、上方向の制限は、たぶん0じゃなくてYが16未満にならないように、なのでは? あとの理屈はshoumさんの仰ってるとおりかと。
0そうだね
プレイ済み
返信[10]
親投稿
TERA(LL) tera0413
まず「そもそもの上下移動制限に必要な命令」そんなものない。 SPOFSでY座標を(多分)16以下にしない、(多分)207以上にしない。 多分については、SP,BGのサイズやSPの中心により違ってきます。
3そうだね
プレイ済み
返信[11]
親投稿
TERA(LL) tera0413
ていうか、「設定する数値」も、確認したければ、いま表示してるSPのY座標を、常に画面上に表示しておいて実際にここより上、ここより下の数値を確認する方が確実。
2そうだね
プレイ済み
返信[12]
親投稿
Godot orz_127
前の方ですでに説明されていますが、必要な命令はIFですね。 上下に限らず左右もですが、キャラクターの表示座標が許可した範囲内かどうかをIFで判定して制限します。 画面のサイズは上は、PRINT文で横50文字、縦30文字表示できます。 文字の大きさは8x8ドットです。 そのことから横は50x8=400、縦は30x8=240とわかるかと。 ちなみに下画面は横40文字なので40x8=320となります。 上画面なら400x240、下画面なら320x240が画面のドットで表したサイズとなります。 まずは、スプライトの表示座標がその範囲から出ないようにIF文で制限してみてください。 だいたいそれで出来るかと。 ただそれではダメで、多分はみでます。 スプライトの大きさと座標の原点についての考慮が抜けています。 スプライト座標原点を考慮して制限範囲の座標を調整してみてください。
4そうだね
プレイ済み
返信[13]
親投稿
カムイ 26427iku
皆さんありがとうございます。 処理と命令…確かに境界はいまいちわかってませんね…すみません。 とりあえずは頑張ってみます
0そうだね
プレイ済み
返信[14]
親投稿
カムイ 26427iku
上はこれで解決したのですが、下がいまいち…0だろうと1だろうと変わりません 「なに言ってんだこいつ」と思っても言ってもいいので教えて下さい…
0そうだね
プレイ済み
返信[15]
親投稿
TERA(LL) tera0413
Y座標は下の方が数値が大きいですよ。
0そうだね
プレイ済み
返信[16]
親投稿
TERA(LL) tera0413
上の方は25以下にならない様にガードしてる。 同様に、下の方は、○○以上にならない様にガードが必要。
1そうだね
プレイ済み
返信[17]
親投稿
カムイ 26427iku
ああ、そういうことでしたか。 数値を隠してるのはそれくらいがんばれってことでしょうかね 何回か試します。ありがとうございました
0そうだね
プレイ済み
返信[18]
親投稿
shoum shoum0403
つららさんへ>> すみません本当は、よくわかっていません。ここで聞くのもなんですが、FOR文を使うみたいなので、もう一度だけ、FOR文をどのように使うかだけ説明してもらえないでしょうか?宜しくお願いします。
0そうだね
プレイ済み
返信[19]
親投稿
カムイ 26427iku
上手くいきました!ありがとうございます! shoumuさんまだここ使いますよね? 大丈夫になったら言って下さい。
1そうだね
プレイ済み
返信[20]
親投稿
shoum shoum0403
カムイさん>> ありがとうございます!
0そうだね
プレイ済み
返信[21]
親投稿
34行目のSPOFSは44行目あたりに書いた方がいいですよ。 理由は、IFなどで座標の範囲を補正(変更)している場合、変更後に実際に反映(SPOFS)した方がいいからです。 まあただ今のプログラムではWHILEの頭で変更してもタイミングだけの差で問題ないとは思いますが、処理が複雑になってくると上記のように、更新タイミングを意識しないと変更したはずが表示がおかしくなったり、一瞬だけ変な表示が出たりなどの可能性もあるんで、意識してみるといいと思います。 >shoumさん 僕もたまたま目にしましたが、わからない事があったらわかるまで追加で質問してもいいと思いますし、議題が変わりそうなら新規で新しく投稿をした方が他の人の目にも触れやすくなって、たくさんの意見を聞ける機会が出来る(し、それを見た他の人の参考になる場合もある)のでいいと思いますよ〜
2そうだね
プレイ済み
返信[22]
親投稿
カムイ 26427iku
…僕どうしましょうね。 別にshoumuさんの質問待ってても構わないのですが…
0そうだね
プレイ済み
返信[23]
親投稿
カムイ 26427iku
なんかこの状態で聞いてもアレですね。 自分で言っておいて無断になってしまいますが、閉めさせて頂きます。 教えて下さった皆さん、本当にありがとうございました。
1そうだね
プレイ済み