Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
120 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40184
次のページ(過去)
返信[6]
親投稿
Yが下に増えるのってコンピュータ的な都合ですしねー。数学や3Dでは上がプラスですよね。
2そうだね
プレイ済み
返信[1]
親投稿
右下のことならセミコロン
0そうだね
プレイ済み
返信[9]
親投稿
イメージ分かって良かったです。 で、おそらくその中でもまだ疑問や不明点があるかとも思うので、そこをまた部分的に質問していけば、だんだんとわかるようになると思いますよ。
0そうだね
プレイ済み
返信[7]
親投稿
僕は管理数なんて言葉つかってませんよ? 要素数の事ですか? 要素数だとしたら、 DIM ITEM$[10] とした場合は10が要素数です。つまりこの場合は、ITEM$という変数名でいくつの数の文字列を入れられるかの数になります。 この場合は10なので最大10個になって、その場合、0〜9の位置を指定して配列を管理します。(ITEM$[0]〜ITEM$[9]まで使えると言うこと)
0そうだね
プレイ済み
返信[5]
親投稿
配列は同種のもの(数値や文字列)を「一つの変数名」でまとめて管理出来る機能です。 例の場合はITEM$という変数名(配列)に対して2つのものが入るように初期化してます。 FORではその配列に対して「順番に」値を表示しています。この時、配列に対しては要素数(管理出来る最大数)を取得する命令があるので、それを使ってループの回数を決めています。ただ-1しているのは、配列の位置は0から順番に指定するというルールがあるので要素数2つの配列は、0〜1の位置を指定する事になるので最大数から-1する必要があります。 なんとなくでいいのでイメージわかりますか? わからなかったら補足しますんで言ってください。
1そうだね
プレイ済み
返信[4]
親投稿
とりあえずですが、例と同じようにするには、 DIM ITEM$[2] ITEM$[0]="やくそう" ITEM$[1]="たいまつ" FOR I=0 TO LEN(ITEM$)-1 PRINT ITEM$[I] NEXT の方が適しているような気がしますね。
2そうだね
プレイ済み
返信[6]
親投稿
変数で同種のもの(ここではコマンド名)をまとめて管理するには配列が便利です。 僕は区切りを入れた箱に例える事が多いですが、りゅうまごさんのコメントを参考に是非覚えてみてください。 プログラムの幅が大幅に広がりますよ。
0そうだね
プレイ済み
返信[3]
親投稿
原因はだにえるさんの答え通りです。 ただ他にも気になる点が多いですね…。とくにメインループの中で毎回SPSETしているのが気になりました。SPSETやSPSCALEなどは変更しないのであれば一度実行すればいいです。とくにSPSETには初期化の処理も含まれているので毎回実行すると毎回初期化されることになるので無駄も多くなります。 上記のプログラムでいえば、SPOFS以外はセット後の変化が無いのでWHILEより前に持ってきた方がいいと思います。 あとメインループの中にVSYNCが無いようなので、WHILEの下かWENDの上あたりにVSYNCを入れておいた方がいいと思いますよ。
1そうだね
プレイ済み
返信[3]
親投稿
Cは30。-Cは-30。なので-Cにしたときに画面外になって表示されないという動作ですね。 そもそもとしてカーソルとして動作させたいのだとしたら、そのような記述はおかしいです。変数C自体の値を変化させないとカーソルとしては動作しません。 つまり上ならC=C-25。下ならC=C+25のような感じにして変数C自体の内容を変化させる必要があります。そしたらその位置に表示するのは、SPOFS 0,25,Cのままになります。(Cが変化しているので) とりあえず変数の中身がどうなっているのかを意識してみるといいと思いますよ。
2そうだね
プレイ済み
返信[1]
親投稿
見た感じ、3,4,5,6,7,8,9のアニメーションが繰り返されるような感じですが、2番に変わるときにも10フレーム止めるとはどういう意味なのでしょう?(2番が出てきてないので)
1そうだね
プレイ済み
返信[3]
親投稿
なるほど〜。試してみましたが確かに1のままですね…。 不具合……なのかな? 誰か情報持っている人は居ないかなぁ…。
0そうだね
プレイ済み
返信[1]
親投稿
僕はスケール使わなかったんで詳しく知らないんだけど、命令表の スケール対応 FALSE=無視(省略時=FALSE) TRUE=SPSCALEに判定領域を同期 ※SPCOL命令後に設定したSPSCALEから有効 の※印に該当してるとかはないのかな? そのぐらいしかわからないので、詳しい人が居たらプリーズ!
0そうだね
プレイ済み
返信[1]
親投稿
3行目のDIMが,(カンマ)で終わっているのはともかくとして、マップツールで作ったレイヤーデータの場合、サイズって64×64の固定じゃなかったっけ? と言いつつ実は僕はあまりレイヤー形式のマップデータを扱ったことはないので正確な事はわからなかったりします。
1そうだね
プレイ済み
返信[6]
親投稿
今のプログラムがどうなってるかわからないと鳴り止まらない理由もわからないですね。
0そうだね
プレイ済み
返信[9]
親投稿
あとボタンなどの処理は基本繰り返しの中で行わないといけないので、WHILEやGOTOで繰り返すのが定石です。 例えばWHILEで繰り返す場合は、最低限 WHILE 1 B=BUTTON() 〜なんらかの処理〜 VSYNC WEND のような形になると思います。VSYNCは繰り返しの間に入れるタイミング同期としての定石です。
1そうだね
プレイ済み
返信[7]
親投稿
とりあえず変数名に関しては、基本わかりやすければ何でもOKです。位置を表す場合は横の位置をX座標、縦の位置をY座標というので、それに合わせてXやYを使うとわかりやすいのでそうする場合が多いだけですね。 変数BもBUTTONの頭文字でわかりやすいからBにしてるんじゃないんですか? Kがどのような意味かはわかりませんが、カーソルという意味だったら、カーソルはCURSORなので、Cの方がわかりやすいかもです。また1文字の必要はないのでCSRなどもありです。ただプチコンの場合は変数名が長すぎると全体として見づらくなる傾向もあるので、変数名の長さはなかなか難しいテーマです。(僕は全体としての可読性を重視して短くする傾向がありますが、人によっては個々としての可読性を重視して長くする人も居ます) ただ1文字の変数名は可読性は低いので、一時的なものにする方が無難ではありますね。
1そうだね
プレイ済み
返信[22]
親投稿
メイドイン俺はもってませんがスイッチはON/OFFなのでフラグの概念ですし、プログラム上のフラグ(ビット管理)をスイッチというメタファーで表している、って事じゃないかなって思いますね。 もし数値をメタファーで表すならボリュームみたいなものになるかもしれませんし、フラグのスイッチはわかりやすいですよね。
0そうだね
プレイ済み
返信[4]
親投稿
SPOFSは管理番号, X座標, Y座標の順なのでそれだと座標の指定が違いますよ。 また変数に2つの値は入らないので111行もエラーになります。 今回はX座標は固定でいいので、Y座標だけ変数にしておけば良いと思います。 またカーソルがスプライトみたいなので、スプライトを使う場合は消す処理は不要になるので、単純に位置が変化すれば表示が更新されます。
2そうだね
プレイ済み
返信[1]
親投稿
基本は、 1 カーソルの位置の変数を用意して、その位置に対してカーソルを表示する。 2 上下ボタンが押されたらカーソル位置を変更する。 3 Aボタンが押されたら決定。カーソル位置を元に選ばれた選択肢を判断する。 じゃないかなと思いますが、どこまで出来て何が出来ないかわからないと細かくはコメントしづらいですねー。
1そうだね
プレイ済み
返信[1]
親投稿
BUTTON命令は、その命令が処理された時点でのボタンの状態が返ってきます。なので処理自体は一瞬です。画面を見た感じでは、Aにボタンの戻り値をいれているみたいなので、Aに入っています。 通常は、その変数(A)の内容をIFなどで判定して、必要なボタンが押されているかなどで処理をする感じになります。 ただ画面のプログラムでは2行目のBEEPで音が出てすぐに終わってしまうので、1行目で取得したボタンの状態は意味が無くなってしまいますね。ボタンを使うときは、WHILEやGOTOなどを使ってループを作り終わらないようにして判定・処理します。 例えば、Aボタンが押された時に音を出したい場合は、 WHILE 1 B=BUTTON(2) IF B==#A THEN BEEP VSYNC WEND みたいな感じです。
3そうだね
プレイ済み