う〜ん・・
投稿者 : 祐介(white5.scn-net.ne.jp)
- 2002/08/15(Thu) 11:57
No.1365
|
|
|
|
|
1365.zip
やっぱりstage4の矢印判定と stage9の当たり判定がうまくいきません いいやり方はないでしょうか・・・
|
Re: う〜ん・・
投稿者 : 祐介(white5.scn-net.ne.jp)
- 2002/08/17(Sat) 15:46
No.1383
|
|
|
|
どうすればいいでしょうか。 これが分からないと結構ステージ数が減ってしまうんですよ・・。
|
Re: う?ん・・
投稿者 : hoge-(61-26-157-34.home.ne.jp)
- 2002/08/17(Sat) 19:56
No.1388
|
|
|
|
以前、次のようにして座標を修正していましたが x=mx*27+14; y=my*17+8; 現在のプログラムでは、getAtが何度も呼ばれていて、そのたびにmx,myの値が変動するので正しい位置に補正がきいていないようです pa=getAt(x+vx,y+vy); // これから移動する先にあるマップパターンを読む if (pa!=$pat_block+41) { // 空間ブロック以外(壁やブロック)だったら mmx=mx;mmy=my;
mmx,mmyに最初のmx,myの値が保存されているのでそちらを使って、座標を補正すると良いでしょう
|
Re: う〜ん・・
投稿者 : 祐介(white5.scn-net.ne.jp)
- 2002/08/17(Sat) 23:17
No.1396
|
|
|
|
1396.zip
mmx mmyでやってみましたが、 ↑矢印はうまくいってるのですが、 ←がだめです。 矢印の上で止まってます。 添付ファイルで確認お願いします。
|
Re: う〜ん・・
投稿者 : 祐介(white5.scn-net.ne.jp)
- 2002/08/20(Tue) 18:45
No.1428
|
|
|
|
stage9がうまくいかないのも 矢印のせいなのですが、 矢印に当たると矢印の中心に玉が行くようにすると思ったようにいくのですが、hogeさんの言われたようにやってみてもうまくいきません。 ↑の添付ファイルを見て何処をどうすればいいのか分かったら教えてください。
|
Re: う?ん・・
投稿者 : hoge-(203-165-20-190.home.ne.jp)
- 2002/08/20(Tue) 20:02
No.1429
|
|
|
|
矢印に当たるととまってしまうのは、 例えば←ブロックならばy座標だけを修正していればよいのに x座標も修正してしまうからだと思います いらない処理をとってみましょう
|
Re: う〜ん・・
投稿者 : 祐介(white5.scn-net.ne.jp)
- 2002/08/20(Tue) 23:16
No.1437
|
|
|
|
縦横の場合はxかyのどちらかでいいのですね。 それで縦横はうまくいきました。 しかし、斜めの矢印は片方だけでもうまくいきません。 両方修正すると止まってしまいますし・・・。 斜めの場合はどうすればいいでしょう。
|
Re: う〜ん・・
投稿者 : 祐介(white5.scn-net.ne.jp)
- 2002/08/20(Tue) 23:24
No.1438
|
|
|
|
止まってしまう原因は矢印の↑にいる間はずっとxとyの位置修正がされるからだと思うのですが、 矢印に当たった時に位置修正をして、矢印から離れるまで(他のブロックに当たるまで)はもう位置修正は行わず、 一度違うブロックに当たってからまた矢印に当たった場合はまた位置修正をするというようなことはできないでしょうか?
例えばはじめに矢印に当たった時に位置修正をして、そのあとyajirusi=1として、yajirusi=1の時は位置修正を行わないようにし、他のブロックに当たった時にyajirusi=0に戻す。 そういう風に出来ますか?
|
Re: う〜ん・・
投稿者 : 祐介(white5.scn-net.ne.jp)
- 2002/08/20(Tue) 23:54
No.1439
|
|
|
|
えっと、矢印の判定で if (pa==$pat_block+56) { if(yajirusi==0){ x=mmx*27+14; y=mmy*17+8; yajirusi=1;} 角度変更などの処理 } として、 それより上で if(pa=空間ブロック) yajirusi=0;
としてやってみたのですが、 最初の一回だけうまくいくだけであとからは 中心まで行きません。 何故でしょうか?
|
|