Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
172 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92184
次のページ(過去)
返信[3]
親投稿
BGはループで繋がってないので無限ループっぽく見せるには、途中から同じような背景を描いて繋がるようにしたり、BGを2面使って繋げたりする必要がありますね。 とりあえず最小限のSPANIMを使ったそれっぽいプログラム書いてみたので参考になれば…。
1そうだね
プレイ済み
返信[1]
親投稿
今更ですが、データから直接調べるならツララさんの言うような感じでOKですね。 まあBGとして表示しているなら、直接BGをチェックした方が早いと思うので、その場合はBGGET命令で調べればいいと思います。 注意点はBGとSPは座標系が違うので、SPの座標からBGの位置を知るにはBGキャラのサイズである8で割る必要があるところですね。またはBGGET命令は最後の引数とかでSP座標で指定できるオプション的なフラグがあったので、場合によってはそれを使うと便利だと思います。
0そうだね
プレイ済み
返信[3]
親投稿
ヘルプでも出てないですね…。 とりあえずやり方だけ書きますと通常だと、 BGFILL 0,0,14,24,14,582 のようにするとこの例だと地面を表示するBGを敷き詰めてますが、 BGFILL 0,12,12,13,13,"0251025202710272" と書くと指定の範囲に任意のBGをセットすることが出来ます。 この時注意点があって、このやり方の場合、BGキャラ番号は16進数の4桁の文字列で指定する必要があります。上記の例だと2×2の範囲に配置しているのでBGキャラは文字列として範囲の(2×2)に対して×4(4桁の16進数)の16文字文必要になり、例のように指定する感じになります。 ちょっとわかりにくいですが、わかると場合によっては便利かもしれないです。
1そうだね
プレイ済み
返信[2]
親投稿
よく見たらまとめてセットは公式の命令表にも書いてないんですね〜…。 3DSのヘルプは手元に3DSが無いのでわからないですが、とりあえず今度サンプル上げてみるかもです。
0そうだね
プレイ済み
返信[7]
親投稿
僕も手書きが悪いとは思ってませんね〜。ただなおさんのいうように相手に読んでもらう以上、ある程度は丁寧に書かないと印象が悪くなったり読んでもらえないってことはあるかも、とは思います。 あと今回に限っては、もともとこのコミュでは好かれない公開キー欲しい系だから、余計に印象が悪く感じてしまってるんじゃないですかね〜? まあでも好き嫌いはあるでしょうし、それは色んな人が集まるコミュである以上はしょうがないことだと思います。
7そうだね
プレイ済み
返信[1]
親投稿
DATA文もマップエディタも使わないでBGを作るのって逆に大変じゃないですか?(シンプルなものなら別として) あとBGFILLで1つのマップキャラじゃなくて複数のマップキャラをまとめて配置する事も出来るようなのでそれを試してみるといいかもです。(僕も最近知ったやり方です)
2そうだね
プレイ済み
返信[2]
親投稿
もし自分の作ったスプライトで通常より大きなサイズのスプライトが使いたいという感じだとしたら、SPDEF命令で自分でそのスプライトを定義して使うのが一番良いと思います。 (自分で定義する場合はサイズや反転など自由自在です)
1そうだね
プレイ済み
返信[3]
親投稿
いえいえ、お役に立ててたら良かったです〜。頑張ってくださいね!
0そうだね
プレイ済み
返信[2]
親投稿
基本的にはフラグ変数を使うことが多いとは思いますね〜。ただ動かす対象がスプライトならは普通の変数の代わりにスプライト用の内部変数(SPVAR)を使うなどの工夫はあるかもです。 またはプログラムの流れ的に一度しか通らないようにすれば当然1回だけの動きになりますが、ループなどで何度も呼び出す場合はやっぱりフラグや状態用の変数は必要になると思いますね。
1そうだね
プレイ済み
返信[1]
親投稿
無限ループを作る方法は色々ありますよね。 個人的には無限ループでループ系の命令を使う場合は、WHILE TRUE(もしくは1)が一番わかりやすい気がしてます。とくに構造的にループの頭で無限ループとわかるのがいいですね。 てかスレ主も使う機会ないと思ってるようなので同じ意見なのかなとは思いますが〜。
1そうだね
プレイ済み
返信[7]
親投稿
たしかに0と0以外という説明からも>で判定するのは間違ってますね。勢いで書いてしまったので正確性を欠いてしまいすいませんでした。
0そうだね
プレイ済み
返信[1]
親投稿
DATA文は直接マップには関係ないですが、マップ自体にレイヤーの概念があるのでツールを使うにしてもDATA文で構成するにしてもマップ自体にはレイヤーはありますよ。 そういう意味かな?
1そうだね
プレイ済み
返信[12]
親投稿
つばめさんの質問はそのままプログラムにすれば希望の動作になりますね。 1 例えば¨■¨を表示したとします。 LOCATE命令で位置を決めてPRINT命令で表示出来ます。 またはスプライトを使えば、SPSETでスプライトを出し、SPOFSで場所を変更(移動)させることも出来ますね。 2 それを移動させる命令を書きます。 BUTTON命令でボタン入力を調べて、その内容をIFで判定して座標(X,Y)を変更するようにすれば移動出来ます。 3 そして、X=10,Y=10の座標でAボタンを押すと、別のルーチンへ飛ぶ… Aボタンが押されたかどうかをBUTTON命令で調べてその時に位置の変数X,Yが10の位置かを調べて全てが満たされている時にGOTOやGOSUB、自作命令などで別のルーチンを呼び出せばOKです。 プログラムはヨッシーさんのサンプルが参考になるかと。
0そうだね
プレイ済み
返信[3]
親投稿
選択肢7→メニューの空いた空間に何が入るか妄想して楽しむ
2そうだね
プレイ済み
返信[2]
親投稿
つばめさんのは冗談ではありますが、プログラム自体はそんな感じで動かしますよね。1フレーム(1枚の絵)に対して、一歩一歩動かして、それがパラパラアニメのように連続すると移動するわけですし…。 また移動は表示位置(座標)を変更する事で行いますが、さらにアニメーションをさせようとしたら、その動かしたタイミングに、次の絵(アニメパターン)に切り替えてという感じで繰り返すことで連続してみたときにアニメーションになるわけですしね。 まあプチコンにはある程度まとめて実行出来るSPANIMみたいな命令もあるので、その辺もうまく使えばプログラムの処理を簡略化出来たりもしますんで、その辺は臨機応変にという感じではありますけどね〜。
0そうだね
プレイ済み
返信[8]
親投稿
皆さんが色んなパターンの回答をしているので希望の答えがあるかもしれませんが問題の意味がよくわからないですねー…。 座標とボタンという言葉が出てきますが、通常のボタン(十字やABXYなど)には座標なんてありませんし、タッチの場合は座標はありますがとくにボタンがあるわけではないし…。 ということで、もう少し正確に伝えてもらえればちゃんとした回答が来ると思います!
0そうだね
プレイ済み
返信[4]
親投稿
配列変数にデータを入れたいのならうえこうさんのやり方で出来ますね。配列とFORは相性がいいので組み合わせて使うことが多いと思います。 READ命令は使う度にDATAを一つ一つ順番に呼び出して引数の変数にいれてくれるので、こういうケースでは便利ですね。 DATAがたくさんある場合は、RESTORE命令を使って、どの位置のDATAを呼び出すかを決めてから処理するのも良いと思います。
0そうだね
プレイ済み
返信[24]
親投稿
そうでしたか〜…。こっちが勘違いしてしまいました。すいません。 まあなんにしても、少しでも役に立てばと思いつつも結局流れての繰り返しなので、都度回答していくしかないのかなぁ、って思ってきてますね〜…。 必要な人に必要な情報が伝わりやすい仕組みになればいいんですけどね!
1そうだね
プレイ済み
返信[1]
親投稿
その命令を使ってどんなことをしたいのかとか目的もあった方が良い回答をもらえると思いますよ。 命令の説明は出来ますが、正直、命令は必要な時に覚えれば良いと思うし、必要じゃない時に教わっても忘れてしまうとも思うので、何がしたいとか目的意識がハッキリしている方がベターな回答がしやすいしもらえるんじゃないかなって思ったりします。
1そうだね
プレイ済み
返信[2]
親投稿
意味的にはヨッシーさんの回答の通りです〜。 通常は呼び出した関数の結果がTRUEまたはFALSEを返す命令の場合に==などを省略して書くことが多いですが、上記の0と0以外で判定できることを利用して13行目のようにBUTTON()関数の返値を直接判定(何も押してなければ0なのでなにか押されていたらみたいな条件になる)やGSPOITの結果は色コードなので0以外(なにも描かれてないと0なのでなにか描かれていたら条件に引っかかる)みたいな判定をする事がありますね。 正確に書くとしたら、IF BUTTON() > 0 THENやIF GSPOIT(X,Y) > 0 THENと同一になる感じです。
0そうだね
プレイ済み