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