Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
114 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3472
次のページ(過去)
返信[2]
親投稿
otta777 otta777a
WHILE DATE$!="2016/07/03" || TIME$<"12:00:00" PRINT RND(1400)+100 WEND 画面で無いところから表示は分からないですがこういう事かな?
0そうだね
プレイ済み
返信[10]
親投稿
otta777 otta777a
1.GRP4に対してGPUTCHRで文字を描画する。 2.SPSET命令で任意のスプライトにGRP4に描画した文字を割り付ける。 3.そのスプライトを表示してSPOFS命令でZ軸の位置を変更する。 という方法が考えられますがスプライトのキャラクターなどのグラッフィックを 保存するエリアを犠牲にするためあまりお勧めではありません。
0そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
えっと、51行目で条件になっている変数Aって何の値を入れていますか? この変数の値が0の場合に@MAPに処理が移って画面が切り替わるのでは 無いかと思いますが見えている範囲では変数Aに数値などを代入している ところがありません。
2そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
DEF GPUTCHR3 X,Y,S$,SX,SY,CF,CB GPUTCHR X+SX,Y+SY,S$,SX,SY,CB GPUTCHR X,Y,S$,SX,SY,CF END
3そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
Xの座標も規則性があるんでそれを利用して IF TY<=127 && TY>=145 THEN FOR POS=0 TO 9 IF TX>=POS*30+9 && TX<=POS*30+27 THEN BEEP 9:STRING$=STRING$+MID$("123456789",POS,1)'右端が見えないんで他に処理があるんだったらこの後に続けて記述 NEXT ENDIF とまとめる事もできますね。
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
よ~く見ると変数TYの条件が同じ行がありますよね。 IF TY>=151 && TY<=169 THEN IF TX>=19 && TX<=37 && … IF TX>=49 && TX<=67 && … (以下同様) ENDIF って記述すると少しIF命令の条件が短く出来そうですね。
1そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
DEF~ENDの間にVAR命令で変数の宣言をするとローカル変数として 扱われるため、DEFの外で使ってた変数名とDEFの中で使っている 同名の変数は別の扱いになりますが、DEFの外でVAR命令で変数の 宣言をするとグローバル変数として扱われるためDEFの外で使ってた 変数名とDEFの中で使っている同名の変数は同じ扱いになります。
1そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
ループの条件が「十字ボタンのいずれかのボタンを押していない」なので 14行目は無くていいかと思います。 Aボタンを押しっぱなしで先に進んでしまうのが嫌なのでしたら14行目を WHILE BUTTON(2)!=0:WEND で何かボタンを押しっ放しの場合にループするようにすればいいと思います。
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
まず質問。 14行目は何の為の処理ですか? 14行目で十字ボタンのどれかを押さないと@STARTに戻るため思う通りの 動作をしないと思われます。
2そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
私の環境では私を含め3つのコメントがあるように見えますが…
3そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
プログラムを見た限りでは上画面にレイヤー0~2、下画面にレイヤー3を 使おうとしていますね。 レイヤーの番号は上画面、下画面それぞれレイヤー0から割り付けられる 仕様になっています。下画面のレイヤーの数は4-上画面のレイヤーの数です。 XSCREEN 3,512,3 とすると上画面にレイヤー0~2、下画面にレイヤー0が割り付けされます。 下画面のBG操作系の命令ではレイヤー0を指定するようにすれば 表示が出来るようになると思います。
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
XSCREEN命令で上画面にBG画面を4つ割り当てているため下画面には BG画面のレイヤーは割り付けられません。そのため13行目からの DISPLAY 1 BGPUT 3,0,0,1 で下画面のレイヤー3にBGを表示しようとしてもOut of rangeとなります。 詳しくはXSCREENのヘルプを読んで下さい。
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
STR$関数は桁数が多くなると指数を使った表記になるため 1.23457e+08の様な表記に変換されてしまいます。 この問題を解決するPSTR$というユーザー定義関数をおちゃめさんが 作成してミーバースにも投稿されています。 「プチコン3号 指数表記」を検索すればその投稿にたどり着けます。
2そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
さいころのスプライトの定義番号は281~286です。 D=RND(6)+1:SPSET スプライトの管理番号,280+D で1~6のサイコロの目が表示できます。
3そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
Aボタンだけを押している場合はBU AND 15の演算結果は0なので @STARTにジャンプします。 十字ボタンのどれかを押している場合はBU AND 15の演算結果は 0にならないため16行目に処理が移りますがこの時にAボタンも 押していないと@HOUSEにはジャンプしません。 Aボタンを押していない場合も処理が@HOUSEまで進行するため Aボタンは押していても押して無くても@HOUSE以降を実行します。 結果として十字ボタンのいずれかを押すと@HOUSE以降を実行する プログラムになっています。 目的の動作をさせるにはAボタンを押すまでWHILE~WEND間をループ させればいいかと思います。
2そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
48~51行目、56行目~59行目、67~70行目は必ず条件を満たします。 R=RND(100)で0~99の数値を取得するのでR<=99は必ず条件を 満たすのであまり意味が無いかと。条件を間違えているのでしたら この限りではありませんが。 ガチャか何かの抽選プログラムでしょうか?
4そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
ゲームのセーブデータの構造が分かっているのだったらその情報の 座標に関するデータを書き換えるなり追加するなりすれば解決しませんか?
2そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
変数Hは560行目でスプライト0と衝突しているスプライトの管理番号を 取得しています。変数Lは562行目でスプライト0とぶつかったスプライトが あるときにAボタンを押しているかどうかのフラグを設定しています。 変数の目的を調べるのにその変数にどこでどういう風に代入しているかを 調べる事が有効です。 編集モードの検索機能を使って[変数名=]を検索するとどこでどんな内容を 代入しているか調べられます。 メッセージの件は今まで白地に黒文字で表示してたのを黒地に白文字で 表示するように変更すれば良いかと思います。
3そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
「間違えてセーブ」というのはゲームデータをセーブしてしまったって 事じゃ無いですか? ゲームデータって事でしたら@BAKUUP.DATをセーブファイルのファイル名に 名前変更をしてみるのはどうでしょうか? (間違えてセーブした後に別のデータをセーブしてしまったらこのファイルも 書き換わってしまってますが…)
1そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
SBMAPでマップを作成してSCSAVEでセーブしたマップは 横64個、縦64個の画面サイズのデータとしてファイルに登録されています。 BGLOADする時に幅、高さを64にしないとずれて描画されます。
2そうだね
プレイ済み