プチコン3号 SmileBASIC コミュニティプレイ日記クレーマー 5850572015/10/08 21:05:06前の投稿で教えてもらったBGとスプライトの当たり判定のことですが、 当たり判定を作ることはできるのです。 しかしBGを壁みたいにして通れなくしたいのですがこのようにプログラムを打つと、なにかおかしくなって上手く出来ません、 どなたか教えてください。0そうだね 5返信プレイ済み2017/11/03 15:35:05に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿ほしけん Hosiken2015/10/8 21:15今のプログラムでは、座標を足してから戻そうとしてますが、XとYを1ずつ引いても、左か上に動きながら壁に当たるとうまくいきません。 本当は今のように壁にめり込んだ分を計算して戻すのが理想ですが、 長いプログラムになりそうなので、 動くのが今の早さ程度だったら次のやりかたの方が簡単に済みます。 座標を足す前に BGGET(1,X+SX,Y+SY)==832 と判定して、 壁に当たる場合は動かさない、とすると、自然な動きになりそうです。 また、スプライトの大きさは16x16あるので、今だと左上の一点しか当たり判定がありません。左上・右上・左下・右下の4点を取らないと、うまくいってないように見えると思います。0そうだね プレイ済み2017/11/03 15:35:05に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿クレーマー 5850572015/10/9 0:15ありがとうございます!0そうだね プレイ済み2017/11/03 15:35:05に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿クレーマー 5850572015/10/10 3:15すいません わかったつもりでいたんですが、命令加える所ってここじゃないですか?0そうだね プレイ済み2017/11/03 15:35:05に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿ほしけん Hosiken2015/10/10 14:24場所的にはあってますが、BGGET(1,X+SX,Y+SY)==832 がIF~THENで囲まれなくなったのはなぜでしょう? これだけとエラーになっちゃいますよね。書きかけなだけだったらすいません。 56~57行目の X=X+SX:Y=Y+SY を消します BGGET(1,X+SX,Y+SY) が 832 「ではない」ときだけ、X=X+SX:Y=Y+SY が足されるようにします。これには == ではなくて != を使います1そうだね プレイ済み2017/11/03 15:35:05に取得