Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
121 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41184
次のページ(過去)
返信[2]
親投稿
当たり判定はBGGETを使って調べたい場所(座標)のBGキャラ番号を求めて、その番号がなにかによってIFなどで分岐して判定します。
0そうだね
プレイ済み
返信[20]
親投稿
プログラム的には状態をビットで管理する事があるので、その場合は状態自体を状態フラグと呼ぶこともあるし、言葉って難しいですよね。 また生存、死亡のように排他的なフラグは両方を持つことは普通はしないので、どっちを主にするかで考え方も変わりますよね〜
0そうだね
プレイ済み
返信[24]
親投稿
あ、ダイレクトモードなんですね? ダイレクトモードでWHILEを使うことは少ないと思いますが、あえてやるなら、 WHILE 1:PRINT "A";:VSYNC:WEND みたいに:(コロン)で繋げて命令を1行で書きます。ちなみにこれを実行すると永久に止まらないでAが表示されるので、プログラムをSTARTボタンなどで止める必要があります。
0そうだね
プレイ済み
返信[23]
親投稿
WHILEは条件が満たされている間はWENDまでのプログラムを繰り返す命令です。なので、WHILE以降にWENDが必要です。どこにつけるかはWHILE以降で繰り返したい範囲の後につけます。 ちなみに繰り返す必要がなければWHILE自体が不要なので、その辺もふまえてプログラムを見直してみてくださいー。
0そうだね
プレイ済み
返信[1]
親投稿
インターネットは便利ですよね〜。74行目が少し謎だけど…
6そうだね
プレイ済み
返信[3]
親投稿
ほんとだ。密かにBGPAGE 0がある…
1そうだね
プレイ済み
返信[1]
親投稿
BGを縦スクロールさせようとしてる? BGYの値が気になるのでループ中に試しで表示してみると良いかも。
0そうだね
プレイ済み
返信[1]
親投稿
出たとしてもwiiUにだいぶ時間がかかったことから、かなり遅くなるような予感…
5そうだね
プレイ済み
返信[6]
親投稿
そんな感じです! ちなみにそれを利用するとIFを使わずに計算させる手段とかも出来ます。例えばX座標があるとしてボタンで左右に動かしたいときに一般的にはIFを使いますが、それを使わずに、 B=BUTTON() X=X+(B==#RIGHT)-(B==#LEFT) で処理する事が出来るわけです。まああまり多用してもプログラムが見にくくなる可能性があるし素直じゃない感じもあるんですが方法として覚えておくのは便利だとは思います。
1そうだね
プレイ済み
返信[1]
親投稿
IF文はその中の計算結果が0かそれ以外かで判断されます。なので0の時は成立しなくて1以上(なので1も)成立します。なので単純に1と書いても成立する事になります。 なので変数を判定するときも0以外で成立して欲しい場合は、 IF A != 0 THEN としなくても IF A THEN でも大丈夫です。この辺は知っておくと便利だと思います。 また比較演算子は結果を0か1で返します。なので例えばAの値が10だとしたら、 PRINT A==10 実行すると、1と返ってきます。実際はIFで使うことが多いですが、その場合も上記の1以上だと実行するという動作と一致することがわかります。
3そうだね
プレイ済み
返信[27]
親投稿
色々な意見が出てますね〜。それぞれに感じるものがありますが、僕の考えは発言時とあまり変わらないですね。 ただ一言で言うなら、作者を不快にしないってことかなと。まあ不快になる沸点の問題もあるのでどこまでやればいいかというのはありますが、その辺は常識的なところで判断するしかないのかなぁ、って感じです。 公開キー自体は、とくに制限がつけられているものではないので、転載、再利用、乗っ取り?なんでもありだとは思いますが、勝手なルールで制約してしまうのは本末転倒ですし、その辺の自由さは生かしつつ、うまく利用していきたいところですね。
3そうだね
プレイ済み
返信[1]
親投稿
アニメを変えるためにはスプライトの絵(定義番号)を変える必要があります。 スプライトの絵を変える命令では、SPCHRがあるので、この命令で一定時間毎に絵を変更すれば移動しているアニメーションをすることが出来ます。 ……とここまでは一般的な方法なのですが、プチコンにはさらにSPANIMという便利な命令があって、この命令を使うと上記の一定時間毎に絵を変更するのを自動で行う事が出来ます。便利ですね〜。 一例としては、管理番号0のスプライトに対して定義番号500〜503のアニメーションを繰り返したい場合は、SPSET 0,500でスプライトを表示したら、 SPANIM 0,"I",4,500,4,501,4,502,4,503,0 とします。これは"I"(定義番号)に対して4フレーム毎に変更するような指定になっていて、最後の0は繰返し回数(0は無限)になる感じです。
2そうだね
プレイ済み
返信[4]
親投稿
似たような質問を前にも見たけど、エラーが出てるなら該当箇所のプログラムを載せてみるといいかも?
1そうだね
プレイ済み
返信[18]
親投稿
BEEPはコマンド的な命令ですが、WHILEやBREAKは構文的な命令なので、役割が違うとも言えますね。 BEEPは音を鳴らす命令になりますが、WHILEやBREAK(他にもIFやGOTOなど色々あります)はプログラムの流れを制御するための命令になります。プログラムには流れが大事なので、構文的なものは出来るだけ覚えておいた方がいいですし、実際よく使うので自然に覚えます。 BEEPなどのコマンド的な命令は、必要がなければ不要(BEEPの場合は音を出さなきゃいらない)なので、実際に必要になった時に調べたりして使っていけば良い感じです。こっちもよく使う命令は自然に覚えます。 構文的な命令はどの言語でも多少の差はあれど似たような命令があります。コマンド的な命令は言語によっての差が大きくて、同じ名前があっても使い方や機能に大きく差がある場合も多いですね。
1そうだね
プレイ済み
返信[13]
親投稿
ツララさんも言われてるようにフラグは条件によって処理を変化させたい(分岐)で使いますよね。フラグというと基本ON/OFFの2パターンが多いですが変数は数値なのでビット判定しない限りは3パターン以上の分岐に使うこともありますしね。 例ではやっぱりゲーム的にはアドベンチャーやRPGで出てくるパターンが多いですが、それ以外でもプログラム上は内部的にフラグで処理を分岐させるようなケースは多いと思います。 死亡フラグもそうですがフラグという言葉はプログラム以外でもよく使うし、その辺逆に混乱する? まあ雰囲気は同じですけどね〜
0そうだね
プレイ済み
返信[4]
親投稿
スクロールしているときはわかるならそんなに難しくないような気もしますが、どの辺が間違ってるんだろう…。 ちなみにBGGET( レイヤー, X, Y [,座標系フラグ] )のやり方として、第4引数の座標系フラグって使ってますか? あと僕の過去投稿ですが、この記事とか見たことがありますか? スクロールでの当たり判定をしてますが、それほど変わったことはしてません。 https://miiverse.nintendo.net/posts/AYIHAAAEAAAFVHwZZdA6Xw あとは具体的にうまくいかないところのプログラムを載せてもらえると意見が言えるかもです。
1そうだね
プレイ済み
返信[1]
親投稿
うまくいったようなので良かったです! 焦らずコツコツ、大事だと思います。 わからないままコピーだけして進む感じだと内容の理解が中途半端になりますし、逆にうまくいかなくても悩んで自分で解決していったことは忘れないので力になっていったり、そういう経験がこの先にも生きてきて、だんだんと問題解決が早くなってきたりもしますよ。 これからも、頑張ってください!
0そうだね
プレイ済み
返信[1]
親投稿
スクロールしてないときはわかるんですか? BGとの当たり判定ですか?
2そうだね
プレイ済み
返信[2]
親投稿
あ、移動制限があるのでIFも使いますね。 サンプル載せる前に忙しくなってしまったので、詳しくは他の人に譲ります〜
0そうだね
プレイ済み
返信[1]
親投稿
とりあえず表示(SPSET)は出来ているようなので、以下、必要そうな命令を。 SPOFS WHILE〜END(またはGOTO)※メインループを作るため VSYNC STICK(スティックで動かす場合) BUTTON(ボタンで動かす場合) TOUCH(タッチで動かす場合) 辺りを使います。たぶんSTICKで動かすのが一番簡単だと思います。
0そうだね
プレイ済み