投稿
りょうま R-S1437
BGGETで横の判定がつかないのですが何故でしょうか? 片側だけのBGGETしかやっていないのはわざとです。
1そうだね
プレイ済み
返信[1]
親投稿
24行目のIFが判定用のB3でなくBG3という変数名になってますよ〜。 ちなみにこのようなミスがわかりやすくなるようにするには、1行目にOPTION STRICTとつけて以降の変数は必ず初めて使うときは宣言(VARやDIM)をするようにするといいです。 これはある意味、中級者以上だとある程度の長さならほとんどの人がつけてるオプションじゃないかなぁ?って思いますー。 OPTIONをつけると宣言が必須になるぶん、多少面倒に感じますが、経験者ほどこういうスペルミスが痛い(意外と見落としやすくて、見落とすと厄介なバグになる)とわかってるから、使用しているオプションになるんじゃないかなって思いますね。
2そうだね
プレイ済み
返信[2]
親投稿
りょうま R-S1437
ありがとうございます。全く気付きませんでした。やってみて一応判定はついたのですが少しずれているのですが何故でしょうか?色々数字を変えてみたのですがうまくいきません。
0そうだね
プレイ済み
返信[3]
親投稿
BGGETで調べてる座標がX+10,Yの位置になってますが、使っているキャラ(スライム)の原点位置は左上みたいですね。 スライムのサイズは16×16なので原点のX座標の10を足した位置を調べても、その位置はスライムの中の位置なので、最低でもスライムの横サイズ(16)を足さないとめり込むと思います。 またY座標も上なので調べてる位置としてはちょっと高い気もしますが、このどの座標を調べるかというのは当たり判定によって違うので、自分で考えたり調整して決める必要がありますね。
1そうだね
プレイ済み
返信[4]
親投稿
ちなみに実際には移動先の座標を調べないといけないので、スライムのサイズが16で、3ドット移動する予定(上記のプログラムがそうなってる)だとしたら、少なくともXには16+3で19を足した位置を調べた方がいいと思いますよ。
0そうだね
プレイ済み
返信[5]
親投稿
りょうま R-S1437
これって何処かおかしい所ありますか?凄いおかしい事が起きているんです。
0そうだね
プレイ済み
返信[6]
親投稿
りょうま R-S1437
こんな感じで途中で止まってしまいます。
0そうだね
プレイ済み
返信[7]
親投稿
ちょっと勘違いしていたところがありました。 処理的に移動出来るなら移動ではなくて移動後に当たっていたら戻す、みたいな感じでしたか? だとしたら僕の説明した座標の加算値は正しくありません。 その辺も含めて調整すれば直るとは思いますが、どうしてもわからなかったら公開キーを出してくれたらちゃんとチェックしてみます。
0そうだね
プレイ済み
返信[8]
親投稿
りょうま R-S1437
すいません色々調節してみたのですが上手くいきませんでした。公開キーは「VADN23DJ」です。
0そうだね
プレイ済み
返信[9]
親投稿
そうですかー。公開キー見てみようと思いましたが見つからないと出てしまいますね。間違えてませんか???
0そうだね
プレイ済み
返信[10]
親投稿
りょうま R-S1437
すいません公開キー間違っていました。 公開キーは「V4DN23DJ」でした。
0そうだね
プレイ済み
返信[11]
親投稿
とりあえず上記のソースで25と29で同じ引き算しているのはおかしいですねー。 あとは座標のチェックなのですが、始めに座標のチェック(変数にいれる)をしてから後でまとめてIFで座標調整した方がいいですね。そうしないと補正した値を元にBGをチェックする事になっちゃってるんで、おかしな事になってる感じだと思います。 とりあえずは上記の点に気をつけて修正してみてくださいー。
1そうだね
プレイ済み
返信[12]
親投稿
りょうま R-S1437
下側の当たり判定がつかないのとジャンプして着地したときの位置がずれてしまうのですが何故か分かりますか?
0そうだね
プレイ済み
返信[13]
親投稿
なんとなくはわかってますが、細かいところでどう答えたら良いかわかりにくい感じですねー…。 プログラムの流れや座標計算に関して、もうちょっと考えてみてコードを書くのがいいかなと思いますね。 例えば8行目でYに7を足してから位置を設定していますが、このままだとこの時点の位置の表示になるので以下の補正結果からかならず7ずれた位置に表示される事になるんで位置のイメージがしにくいです。なので通常は座標補正後のX,Y座標をSPOFSで設定した方がいい(つまり下の方に来る)感じだと思います。 あとこのジャンプはジャンプとしては急なジャンプになっちゃいますが、それはまあこの際置いておく感じとして、まずこの仕組みできちんと座標計算がうまくいって表示出来るようになるといい感じですね。
1そうだね
プレイ済み
返信[14]
親投稿
KU kerorinU
移動判定と衝突判定をサブルーチンとか関数にまとめると、可読性も上がりバグ取りしやすいと思いますね。あとSPHOME使えば面倒な座標計算が簡単になるのでは。
1そうだね
プレイ済み