プレイ日記
しろかび burakkugenomu
前回コメントをしていただいた通りにやったのですが、これでやると障害物にあたり、それ以上進めなくなるまではいいのですが、そのあと身動きがとれません。どうすれば良いでしょうか…
1そうだね
プレイ済み
返信[1]
親投稿
だにえる haru2016nen
77行目のX=X+0って…
1そうだね
プレイ済み
返信[2]
親投稿
しろかび burakkugenomu
X=X+1にするとこの場合、障害物にあたると減速しながら進むということがおこってしまうのですが…
0そうだね
プレイ済み
返信[3]
親投稿
だにえる haru2016nen
? X=X+0は X=Xと同じだから 何の意味もない。 「:」を使ってIF命令を繋げるとバグの原因 になるから、しない方がいい。 (意図的な場合は別)
0そうだね
プレイ済み
返信[4]
親投稿
ツララ LongIceSword
84~87行目のと同じ範囲外に出ない様な処理を、92行目のIF文用のも用意してないので、一旦範囲外に出ちゃったら戻って来れなくなってるんですね。 88行目の前にDX=0:DY=0っていう処理を追加して、92行目を IF X<110 AND Y>145 THEN  IF DX<0 THEN X=110:DX=0  IF DY>0 THEN Y=145:DY=0 ENDIF とすればうまくいくんじゃないです?
0そうだね
プレイ済み
返信[5]
親投稿
だにえる haru2016nen
というか、、、 88行目があるから 77行目の 「IF B AND 8 THEN X=X+0」 は全く必要ないかと…
0そうだね
プレイ済み
返信[6]
親投稿
しろかび burakkugenomu
ありがとうございました!またお願いします!
0そうだね
プレイ済み
返信[7]
親投稿
ツララ LongIceSword
もう少し付け加えておくと、@LOOPのラベルがある行のすぐ後にDX=0:DY=0の処理を移動させておくと、BUTTON()関数からの返り値でXとYに加算する数値を判別するIF文が実行されなければキャラクタが移動しないというふうになりますよ。 あと79~82行のSPANIMを止める処理の後の変数RUNに代入する処理は、違う値を代入するのでなければ不必要かと。 だにえるさんも指摘されてますけど、IF文の条件式が同じ処理なら書く順番をうまく考えてやれば一つにまとめたりできるので、 この場合なら多分74~77行目で IF B AND 1 THEN ~ みたく書いてるかと思うんですけど、例えばX=X+0のところをDX=1に置き換えて、88~92行目で同じ条件式を使ってるIF文を消しても、途中で変数Bに新しく代入したりしてないので同じ結果が得られると思いますよ、
0そうだね
プレイ済み