Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
17 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2772
次のページ(過去)
返信[1]
親投稿
otta777 otta777a
プレイヤーの座標はX、Yでスプライトを表示する際の位置指定は X,Yとしていますか? 敵のスプライトの表示位置Yは-FY[J]としていますが当たり判定では FY[J]-2やFY[J]+17としているためスプライトの表示位置で 当たり判定が行われていません。簡単に直すならIF命令の中の FY[J]を-FY[J]にしてみて下さい。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
DATA命令で準備したキャラクタをタイトル画面に表示したいという事でしたら RESTORE @TITLEDATA Y=8 REPEAT READ T$ LOCATE 25-LEN(T$)/2,Y:PRINT T$ Y=Y+1 UNTIL T$=="" でデータ命令で準備したキャラクタ画像を8行目から画面の ほぼ中央に表示します。 この場合は145行目のDATA ""は削除して下さい。 Aボタンを押すまでタイトル画面を表示する場合は LOCATE ○○,××:PRINT "Aボタンをおしてください” WHILE BUTTON()!=#A:WEND で良いかと。
1そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
OPTION STRICTを使うメリットは変数名を打ち間違えてしまったときに エラーで止まってくれる事です。OPTION STRICTを使っていないと 未使用の変数を参照した場合に値が0または""(空っぽの文字列)として 処理が進むためエラーは出ないけど思ったとおりに動かないという 原因を特定するのに厄介な状況に陥る事があります。
1そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
240行目の途中の部分で IF《省略》&&(LEVEL+1!=1)))&&((LEVEL+1==1)&&《省略》 とありますが IF《省略》&&(LEVEL+1!=1)))||((LEVEL+1==1)&&《省略》 として下さい。 LEVEL+1!=1とLEVEL+1==1は相反する条件なので&&で処理すると必ず 不成立(偽)となります。
2そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
FLOOR LEVEL 1で座標(13,12)の時に強制戦闘、それ以外の座標では 敵とエンカウントしない場合は IF (LEVEL==0 && PX==13 && PY==12)||(LEVEL !=0 && RND(30)==0) THEN GOSUB @BATTLE FLOOR LEVEL 1で座標(13,12)以外の座標でも1/30でエンカウント させたい場合は||以降のLEVEL!=0を削除して下さい
2そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
【続き】 Y座標はI+8となっていて8行目からタイトルを表示しています。 Z座標は固定で画面の手前を指定しています。 タイトルが飛び出て見えますよね? 103行目 60フレーム(約1秒)プログラムの処理を停止します。 104行目 表示位置の指定をします。 105行目 READ命令で読み込んだ文字列を表示します。 結果、109行目からのグラフィックキャラクターで作られたタイトルを灰色で 上から順にゆっくり表示します。
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
94行目 READ命令で読み込むデータの位置をラベルで指定します。 95行目 対になるNEXTまでの間を変数Iが99になるまで繰り返します。 96行目 DATA命令に記述された文字列をA$に読み込みます。 97行目 A$が""(データの最後)だった場合はループを抜けNEXTの 次の行から実行します。 98行目 コンソール文字の色を灰色にします。 99行目 文字を表示する位置を計算します。重要なのはX座標で 25-LEN(A$)/2というのは画面の真ん中から表示する文字列の長さの 半分を引いて文字列の長さにかかわらず中央に表示されるように しています。 【続く】
0そうだね
プレイ済み
返信[34]
親投稿
otta777 otta777a
1935行目からのスクリーンショットでは1959行目のRESTOREで 指定したラベルとその先で読み込むデータの型が合っていないので Type mismatchになります。 1961行目でREAD S$,C,AとしているためデータはDATA "P",193,1 のような文字列,数値,数値という形式で無いと型が合いません。
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
フォントサイズ16の時に14行目にPRINT命令で表示する場合 ;(セミコロン)を付けないと改行した際に逆スクロールします。 PRINT TIME$; としてみて下さい。
1そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
プログラムを実行したときのフォントサイズが影響しています。 大きい文字で表示したい場合はWIDTH 16を追加してください。 ACLS命令を使っている場合はそのあとに追加してください。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
ダイレクトモードではクリップボードからPASTEする場合にそれまでに 入力した文字とクリップボードから入力される文字の合計が255文字を 超える場合は入力できないようです。
1そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
lllegalって書いてるけどIllegal(あい・える・える・いー・じー・えー・える)と 書いてイーリガルと読みます。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
ENDIF命令はIF 条件 THENで改行した場合に複数行にわたって 処理を記述できるのですがどこまでがTHEN以降の処理かを 判別するために必要な命令です。 ENDIFだけ記述してもIF 条件 THENという命令が無ければ構文の エラーとなります。
2そうだね
プレイ済み
返信[27]
親投稿
otta777 otta777a
マップを表示しているループ内のBGPUT命令の次の行で IF INSTR("昇り階段と下り階段のキャラクタ文字",M$[X])!=-1 THEN TBX=X:TBY=Y を追加すればいいと思います。 が、この場合マップ1画面に階段は1個までの制限が付きます。
1そうだね
プレイ済み
返信[25]
親投稿
otta777 otta777a
そのマップの変換テーブルデータにマップデータの"X"に対応する データが無いのではないでしょうか? DATA "X",XのBGキャラクターデータ,1 これが抜けていませんか?
0そうだね
プレイ済み
返信[22]
親投稿
otta777 otta777a
その状況で ? "<";M$[X];">" とすれば何のキャラでZが-1になったか分かります。
1そうだね
プレイ済み
返信[14]
親投稿
otta777 otta777a
BGを表示する部分を Z=INSTR(ST$,M$[X]):IF Z!=-1 THEN BGPUT 0,X,Y,Z ELSE LOCATE 0,0:? X,Y:STOP として設定してない記号が使われたらその時のX,Yの値を 表示してプログラムの実行を中断してみるのはどうでしょうか? マップデータの読み込みについては読み込むマップデータの先頭に ラベル付けてマップデータを読み込む前にRESTORE命令で そのラベル名を指定する必要があります。 RESTORE命令を使わないとREAD命令ではプログラムの先頭から 順番にDATA命令のデータを読み込もうとするため読み込みをしたい データの前に別のデータがある場合はRESTORE命令で読み込む データの位置を指定する必要があります。
1そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
Type mismatchになる理由はデータを読み始める前に RESTORE命令でデータの先頭の位置を指定していないため それより前にある他のデータを読み込もうとして変数の型が 合わないためだと思います。
2そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
Z=INSTR(ST$,M$[X]):IF Z!=-1 THEN BGPUT 0,X,Y,Z として変換テーブルに無い文字があった場合はZに-1が 代入されるのでBGPUTを実行しないように細工をした方が いいかと思います。 あとマップデータを見直しして変換テーブルに無いキャラクターが 無いか確認した方がいいですね。
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
数当てゲームなんてどうですか? RND関数を使ってコンピュータが決めた数字を入力した数字より 大きい、小さいという情報をヒントに予想して当てるゲームです。 何回で当たったかを表示するとゲームっぽくなりますね。
2そうだね
プレイ済み