Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
139 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 5972
次のページ(過去)
返信[5]
親投稿
otta777 otta777a
問題となっているPRINTの部分のプログラムの辺りの EDIT画面のスクリーンショットを貼り付けることは できますか?
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
プチコンmkIIでは剰余を求める演算子として%が有りましたが プチコン3号からはMODという命令に置き換わりました。 FLOOR(I%10)→I MOD 10となります。 余談ですがFLOOR(I/10)はI DIV 10で同等の結果が 得られます。 DIV命令で除算の商の整数部を得られます。
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
他にDIM ERA$[n]などの文字配列変数の定義かあるか 文字変数ERA$に代入している部分があるか確認して みて下さい。 検索機能を使ってERA$を検索すると手間が省けると思います。
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
今のままですと"DI$"というファイルネームで セーブしようとしていますが、 '$'はファイルネームに使えない文字なので Illegal function callとなってしまいます。 SAVE "GRP0:"+DI$ と記述して下さい
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
既に使用されている変数と同じ名前で配列変数を定義 しようとした場合にこのエラーが出ますね。 スロット2の87行目付近のプログラムはどのようになって いますか?
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
十字ボタンを押していないかを判別をする部分は (ID AND 15)==0と表記すればすっきりすると思いますよ。
1そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
RESTORE @MAP FOR I=0 TO 4 FOR J=0 TO 6 READ C IF C==0 THEN BGPUT 0,J,I,0 IF C==1 THEN BGPUT 0,J,I,551 NEXT NEXT @MAP DATA 1,1,1,1,1,1,1 DATA 1,0,0,0,0,0,1 DATA 1.0,1,0,1,0,1 DATA 1,0,0,0,0,0,1 DATA 1,1,1,1,1,1,1
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
簡単にDATA命令からBG画面を表示するなら番号にBGキャラを 割りつけてIF命令でそれぞれ表示すればいいと思いますよ。
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
プチコン3号ではBGレイヤーを指定する命令は存在せず BGを扱う命令でBGレイヤーを指定する仕様になっています。 BGPUT命令,BGFILL命令,BGGET関数などBGに関するものは レイヤー番号を指定するようになっています。 詳しくはヘルプを参照して下さい。
2そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
DIALOG命令では;(コロン)で文字を繋げることはできません。 +で繋げて下さい。 DIALOG A$+B$+C$
0そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
あと90行目の X0=0:Y0=0を X1=8:Y1=6としないと人の表示位置が左上になってしまい 最初に人が表示された位置とずれてしまいます。
1そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
LOCATE命令の部分はそのままでいいですよ。 @UP,@DOWN,@LEFT,@RIGHTの後に記述された代入文の X1=□:Y1=□の部分を 私が提示したIF命令に置き換えて下さい。
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
@LEFTでは IF X1>0 THEN X1=X1-1 @RIGHTでは IF X1<49 THEN X1=X1+1 となります。 移動する方向が画面の外にならない場合だけX,Yの座標の 変数(X1,Y1)を加減算するようにしています。
1そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
WIDTH 16のモードでは横幅は25文字なので8文字の文字列を PRINT命令でど真ん中に表示するのはできません。 大体で良ければ LOCATE 8,[Y座標]:PRINT "[表示する文字列]" で8文字の文字列がほぼ中央に表示されます。
1そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
@UP,@DOWN,@LEFT,@RIGHTのそれぞれの飛び先で X1,Y1に定数を代入しているため十字ボタンを押し続けても 同じ場所にしか表示されません。 @UPなら IF Y1>0 THEN Y1=Y1-1 @DOWNなら IF Y1<29 THEN Y1=Y1+1 という具合に変数の値を方向に合わせて加減算して下さい。
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
B=BUTTON(2)が@BUTTON~GOTO @BUTTUNのループ内で 実行されていないためIF命令の条件を満たしません。 @BUTTONの次の行に66行目のB=BUTTON(2)を移動して 下さい。
1そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
背景色の変更はBACKCOLOR命令で行います。 BGCOLOR命令はBGの表示色を変更する命令ですので用途が違います。 詳しくは各命令のヘルプを参照して下さい。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
LOCATE命令はコンソール画面に表示する文字の位置を 指定する命令です。 単体ではセンターに揃える機能は有りません。 表示する位置をセンターに合わせるには LOCATE [表示する画面の横幅] DIV 2-[表示する文字列の長さ] DIV 2,Y となります。 上画面、下画面でも使えるようにするならこんな感じ でしょうか。 M$="表示する文字列" LOCATE 25-(DISPLAY()==1)*5-LEN(M$) DIV 2,Y:PRINT M$;
0そうだね
プレイ済み
返信[16]
親投稿
otta777 otta777a
【16行目】 IF X>49 THEN X=49 49を383に変更(2カ所) 【18行目】 IF Y>29 THEN Y=29 29を223に変更(2カ所) 説明が分かりにくかったですか?
0そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
上記の方法を行ったときに「SMILEボタンの割り当て」 にSYS/SBSMILEを設定していた場合は作業用のプロジェクトに 設定されたプロジェクトにプロジェクトを切り替えてから プログラムを実行してMAPデータをコピーして下さい。 オプションの設定によってSMILEキーで起動したマップ エディターがデータを読み書きするプロジェクトが 違うためこのような対応になってしまいます。
0そうだね
プレイ済み