Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
120 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 4072
次のページ(過去)
返信[18]
親投稿
otta777 otta777a
買い物の後に所持金が0と表示されるのは自分の金の表示に 変数KANEではなく変数GOUKEIを使っているためですね。 変数名とその内容が分かる一覧表を作るなどしたほうがいいかもしれませんね。
0そうだね
プレイ済み
返信[15]
親投稿
otta777 otta777a
50円のアイテムを購入後にLOCATE命令で表示位置を指定して 自分の金を表示していますが、以前100と表示されて居るところに 50と上書きしているので結果として500と見えてしまっています。 STR$関数には桁を指定して右詰で文字列を生成する機能があります。 その機能を使って金額を表示してみて下さい。 詳しくはSTR$関数のヘルプを参照して下さい。
1そうだね
プレイ済み
返信[14]
親投稿
otta777 otta777a
まず本来は所持金が足らなくて買えないはずのアイテムが買う処理に 移ってしまう現象ですが 所持金とアイテムの価格を比較している部分の不等号が逆なのと 文字変数で比較しているために正しく判別出来ません。 所持金がアイテムの価格より多くないと買えないですよね? 数値の大小は数値変数で比較して下さい。 【例】 IF "9">"1000" THEN PRINT "9は1000よりおおきい" IF 9>1000 THEN PRINT "9は1000よりおおきい" それぞれの結果が違うことを確認してみて下さい。
2そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
数値を文字列に変換する関数があります。 STR$(数値)とすると文字列に変換されます。 A$=STR$(B) とすると変数Bの内容が数字の文字列としてA$に代入されます。 詳しくはSTR$のヘルプを参照して下さい。
2そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
まずはダイアログ関数の戻り値を正しく判別してお小遣いを貰うか否かを 出来るようにするのと、商品を買う場合に@KAUまで実行できるように した方がいいですね。商品を買う処理はそれが出来てからでしょうか。 1つずつ問題を解決していった方が案外早く進むものですよ。
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
お小遣いを貰わないを選んでもお小遣いを強制的に渡されてしまうのは 戻り値のチェックが上手く出来てないからです。 DIALOG関数で選択タイプを指定した場合の戻り値は左ボタンの場合は -1で右ボタンの場合は1です。 店の商品を買う処理がうまくいかない(いいえを押してもはいを押しても プログラムが終了する)のはDIALOG関数の戻り値のチェックが正しく 行われていないのと実際に商品を買う部分のプログラムが未完成だから です。@KAU以降の処理に自分の所持金と商品の価格を比較して 所持金が商品の金額以上の場合に購入。不足の場合は所持金が 足らないことをプレイヤーに告知し商品の選択に戻る処理が欲しいですね。
1そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
符号をひっくり返すのでしたら VX=-VX でいいですよ。
3そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
即席で作ったものです。BEEP40が最後まで流れたかは調べる方法がないのでカウンターを使って時間待ちをしました。MODの後の数字を大きくすると音の鳴る間隔が長くなります。
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
横方向の画面の端に来た場合→横方向の移動量の符号を反転 縦方向の画面の端に来た場合→縦方向の移動量の符号を反転 とすれば良いかと思います。
3そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
Aボタンを押したらAボタンを放すまで一定間隔の時間でBEEP40で音を鳴らす ってことでいいのかな? Aボタンを押したことを検知したらAボタンを放すまで一定時間ごとにBEEP40を 実行するようなループを組めば出来そうですが、やりたいことはこれで合ってますか?
0そうだね
プレイ済み
返信[12]
親投稿
otta777 otta777a
WHILE 1~WENDの中でX[1]=X[1]+2を際限なく加算しているため いずれTXの値がBGSCREENで指定した範囲を超えてしまいます。 その状態で画面をタッチするとエラーになりますよ。 BG画面は無限に存在するわけでは無いのでスクロールする範囲を 制限するなどの工夫が必要だと思います。
1そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
ダイレクトモードでFILES "SYS"とコマンドを入力するとSYSプロジェクトの 中に格納されているファイルの一覧が表示されます。 読み込もうとしたのはDOTRCというゲームのようですがファイル名が 違うようですね。FILES命令を実行したときに表示されるファイル名の 一覧を良く見て正しいファイル名を指定すればLOAD命令で読み込むことが 出来ますよ。
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
まずX[1],Y[1]~X[4],Y[4]の変数ですがこれは何の為の変数でしょうか? これが分からないと52行目以降のプログラムをどうしていいか判断が出来ません。 52~55行目でBGのレイヤー0にX[1],Y[1]からX[4],Y[4]をオフセットとして 設定しているので最終的にBGのレイヤー0にX[4],Y[4]が設定されます。
1そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
フラッシュメモリの空き容量はFILES命令で表示される XXXXX kbytes freeのXXXXXの部分で分かります。
1そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
WHILE (条件)~WEND命令は条件が成立している間この命令の 間に記載されている命令を繰り返し実行します。 ボタンの状態を検出するBUTTON命令がこの命令の前に1回しか 実行されていないので、変数Bの値はボタンを押しても 変化しないためIF命令の条件が成立せずボタンを押したときの 処理が実行されません。 BUTTON命令をWHILE~WENDの間でIF命令の前に移動して下さい。
2そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
ユーザー定義命令/関数はCOMMONを付けて宣言することで他の スロットから呼び出すことが出来ます。その場合も呼び出し元の プログラムでUSEスロット番号をする必要があります。
0そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
プチコン3号では2つのプログラムを同時に実行する機能は無いんですよ。 GOTO、GOSUB命令でスロットの指定をすると別スロットのプログラムへの ジャンプや呼び出しすることはできますがそれぞれ独立したプログラムを 同時に実行することは出来ません。 別スロットのプログラムへのジャンプや呼び出しをするには呼び出し元の プログラムでUSE スロット番号とする必要があります。
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
スロット番号を含む場合は""でくくらないと:(コロン)で命令の区切りと 判断されてしまいますよ。 "0:"+SUB$として下さい。
1そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
>いぶきさん ご指摘の通り""で囲わなくてもラベルを文字列として認識出来るように なってました。DEF命令の引数としても渡せますね。 DEF~END内でGOSUBを使用する場合にスロット番号を記述する必要が あるのですが ユーザー定義命令 0:@A (例: G 0:@A) と記述すると:で命令が区切られていると判断されるためラベルが複数 記述されていると判断されてエラーが出てしまうのでスロット番号込みの ラベル名は""でくくる必要があります。
1そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
DIM W[0] FOR BGL=0 TO 3 BGSCREEN BGL,64,64 LOAD "DAT:SC_BG1_L"+STR$(BGL),W,FALSE BGLOAD BGL,W NEXT これで画面サイズ64×64のBG(レイヤー0からレイヤー3)の表示が 出来ると思います。 BG表示のプログラムは何か参考にされたモノがありましたか? また0(ゼロ)とO(オー)の打ち間違いには気をつけましょう。
1そうだね
プレイ済み