プレイ日記
natto- natto-3030
質問 ゲームを作っています。 ある人にCHKCHRはこう書けと言われて、その場所にいったら@MISSまでいきたいのですが出来ません。教えてください。
0そうだね
プレイ済み
返信[1]
親投稿
IF M==0 THEN @MISS こう書いてみて下さい。 あと、実行後にダイレクトモードでPRINT Mと書いてみて「Mが何を返しているか」をチェックした方がいいですよ。M==0の0の所に欲しい値を書けばいいですので。
1そうだね
プレイ済み
返信[2]
親投稿
natto- natto-3030
スミマセン!@MISSと打つと100行目のELSEと101行目のENDIFがエラって、二つを消すとCHKCHRが仕事をしなくなります…
0そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
まずそもそも大事な事を確認させて欲しいのですが、 X=3:Y=6 というのは何がしたいんでしょうか?
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
ああ、すみません、自己解決。 座標(3,6)にキャラクターが到達したかをチェックしたいんですね。 (X,Y)って書き方は普通、キャラクターの座標を示すのに使うものだから気づきませんでした。 さて、本題。 (3,6)をチェックしてそれが空なら到達していない、そうじゃないならキャラクターがきた、としたいなら、@MISS を追加するのはELSE の方になると思います。
1そうだね
プレイ済み
返信[5]
親投稿
natto- natto-3030
すみません。ELSEの後にGOTO@MISSとつけると直ぐにミスの処理に向かってしまいます…!
0そうだね
プレイ済み
返信[6]
親投稿
ケイン KEIN.HORGAN
> ELSEの後にGOTO@MISSとつけると直ぐにミスの処理に向かってしまいます…! 常にMISS の判定が行われているという事だと思われます。 みけらんジェロさんのいう確認方法はしてみましたか?
2そうだね
プレイ済み
返信[7]
親投稿
natto- natto-3030
みけらんジェロさんのをやるとELSEとENDIFが使えなくなります。 今日ラスト投稿です。来たら明日返信します。
0そうだね
プレイ済み
返信[8]
親投稿
ケイン KEIN.HORGAN
ああ、そもそも確認が出来なかったのですね。 返信は明日になるのは分かりました。 えーと、まずこの場合、 IF M==0 THEN ~ ' ここの判定に失敗している という事ですので、座標(3,6)に何があるのかが重要です。 すべてMISS になるということは、座標(3,6)が0(=空)ではないという事なので…… 空白文字でもいれてるんでしょうか? もし半角空白を使っているなら、M==32 で試してみてください。
1そうだね
プレイ済み
返信[9]
親投稿
natto- natto-3030
いや、サンプルのLINEGAME(分かるかな?)のエイリアンみたいな文字です。
0そうだね
プレイ済み
返信[10]
親投稿
ケイン KEIN.HORGAN
なるほど。えーと、まずnatto- さんが書いたコードについて。 M=CHKCHR(X,Y) 座標(X,Y)にある文字コードを調べてM にしまう IF M==0 THEN Mが0と等しいかどうかを調べる だけど、natto- さんがしたいのは、 「座標(X,Y)に"エイリアンの文字"があったら……」 なので…… Mが"エイリアンの文字コード"と等しいかどうかを調べないといけません。 文字コードを調べる方法。 natto-さんの 8/20の質問「CHKCHRについて…」でgodotさんが説明して下さってます。 ASC関数を使う、という奴ですね。
1そうだね
プレイ済み
返信[11]
親投稿
natto- natto-3030
このような結果になりました。 これを IFM==(文字コード)THENにすれば良いですか?
2そうだね
プレイ済み