トピック
[NM]night 12345yukinice

トピックを建てるほどもない質問や意見交換場

トピックを建てるほどもない質問や情報交換をするトピックです。 レス数がマックスになるまで閉鎖はしない予定なので、一度はコメントして毎回誰かがレスするたびに確認するといいでしょう。
1そうだね
プレイ済み
返信[1]
親投稿
[NM]night 12345yukinice
キャラクターの座標=X,Yのキャラクターの座標をどうやって書けばいいのかわかりません助けてください
0そうだね
プレイ済み
返信[2]
親投稿
[NM]night 12345yukinice
補足ですが対応させたいSPSET番号は2で元々のSPRITEは1344です
0そうだね
プレイ済み
返信[3]
親投稿
SquidSky ugomemo_gorohati
まず、キャラクターをどうやって設置するかを教えます。 この、キャラクターを動かしたりするために使うのがスプライトといいます。飲み物のスプライトではありません(笑) まず、イチゴを画面の左上に出してみましょう。 SPSET 0,0 でましたか? これでは左はじにあるだけなので、真ん中に出してみましょう。 SPOFS 0,400/2,240/2 これは、3DSの画面の座標です。横(X)が400px,縦(Y)が240pxなので、それぞれ2で半分にすることで中間の数字が真ん中になります。
0そうだね
プレイ済み
返信[4]
親投稿
SquidSky ugomemo_gorohati
SPOFS スプライト番号,X,Y でおkです。 SPOFS 2,400/2,240/2 でキャラクターを真ん中に。
0そうだね
プレイ済み
返信[5]
親投稿
[NM]night 12345yukinice
いえあの、すでにスライドパッドで3つのスプライトを同時に動かすプログラムを組んでいます。 私がしたいのは下の4行(コメントは含めない)のコマンドをSETしたスプライト3番に当てはめたいのです。 別の投稿で質問したら、キャラクターの座標=X,Yにするといいと言われたのですが、そのキャラクターの座標をどうやって書けばいいのでしょうか。 説明不足で申し訳ございません。
0そうだね
プレイ済み
返信[6]
親投稿
イマイチ意味がわからず…。とりあえず下の4行は今は実行すらされないですよね? 今のプログラムだとスプライト0〜2が同時に同じ位置に動く感じになってますよね? これをスプライト2だけ下4行の移動制限をつけたいという感じなのでしょうか? ちなみに複数のスプライトを同時に別々に動かしたい場合は、座標となる変数をその分複数用意(配列の場合もある)するか、もしくはSPOFS 0 OUT X,Yなどで、そのスプライトの今の位置を取得して、それに対して処理をする、みたいな感じになります。 何にしてもちょっと意味が読み取れてない部分があって正確に判断できないのですいません…
0そうだね
プレイ済み
返信[7]
親投稿
[NM]night 12345yukinice
よくよく考えたら確かに2だけ移動制限がかかってしまいますね… 3つを連動させて動かせて全部に制限をかける方法を教えてください()
0そうだね
プレイ済み
返信[8]
親投稿
単純に移動制限をかけたいだけなら下の4行を17行目に追加するだけで3つ全てに移動制限がかかると思いますよ。(3つとも同じ座標変数なので)
0そうだね
プレイ済み
返信[9]
親投稿
[NM]night 12345yukinice
こうですかね?なんか実行するとここから上と右に進めないんですが
0そうだね
プレイ済み
返信[10]
親投稿
あ、そもそもXとYが座標そのものじゃないんですね…。となると単純にそこにいれても制限とは関係なくなっちゃいますね。 SPOFS 0, X, Y の場合は上記で移動制限になります。ただそういうわけではないので下の4行のIF文は今の処理への移動制限としては機能しない感じにになってますね。 間違えたことを言ってしまいすいませんでした。
0そうだね
プレイ済み
返信[11]
親投稿
おそらく以前回答してくれた人は、キャラクター座標がX,YじゃなくてX*5+200とかになっているので、それを指摘した感じなんでしょうね。 X*5+200とかの場合、画面の中心を基準にキャラクターの位置を決めているので、そういう意図がある場合をのぞいて、あまりキャラクターの座標としては適しているとはいえません。なので素直にXとYをそのままキャラクターの位置(SPOFSの位置)にした方がやりやすくわかりやすくなると思いますよ。 ただ今回の場合はキャラが3ついて同じX、Y座標を使っているので、その辺の調整は必要になると思います。
0そうだね
プレイ済み
返信[12]
親投稿
[NM]night 12345yukinice
めんどくさいのでスプライト2消しました(笑) DXとDYに移動の倍率を付けるとうまく行けました! この場合出現位置をどこに設定すればいいですか?
0そうだね
プレイ済み
返信[13]
親投稿
キャラクターの位置はXとYに入っているので、出現位置を変えたい場合は、@IDOUより前のところで X=200 Y=200 みたいにすればその位置に変更出来ますよ。 ちなみに今はなにも設定されてないのでデフォルトの0になってる感じです。 また@IDOUの中に入れてしまうと毎回座標が初期化されてしまうので気をつけましょう。 その辺はプログラムの流れをちゃんと理解すればわかるとは思いますが、そんな感じですね。
0そうだね
プレイ済み
返信[14]
親投稿
[NM]night 12345yukinice
なるほど、ループの前にXとYを決めればよかったんですね。すごく簡単な解決策でした^^:返信が遅れてすいません。
0そうだね
プレイ済み
返信[15]
親投稿
質問です。このたしざんプログラムを実行してもRe doなんとかってでてきます。なぜなんですか?
0そうだね
プレイ済み
返信[16]
親投稿
INPUTの受けとる変数が数値しか入らない変数だからです 数値型変数に文字を入れようとして型が合わないから入れ直せとredoが出てくるんです INPUTで受けとる変数はP$として 次の行の判定もP$=="Y"としましょう P==Yでエラーは出ていませんが Yという名で中身が0の変数が自動的に作られて使われているからです このままではきちんと判断が行われません
0そうだね
プレイ済み