「ブロックを壊す」について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/01/29(Thu) 15:10
No.5177
|
|
|
|
|
ブロック崩しの壊し方を利用して、
//下の命令と function getAt(xx,yy) { var r,w; mx=trunc((xx-vy)/16); my=trunc((yy+vx)/16); r=$map.get(mx,my); if (r!=$pat_kunoichi+14) { return r; } }
//この命令を、 if (pa<$pat_kunoichi+11) { np=$pat_kunoichi; //水色のブロックを壊します if (pa==$pat_kunoichi+13) { np=$pat_block+14; } } 追加してみたけれどうまくいきません。 イメージとしまして、手裏剣でブロックを壊す感じにしたいのですが。
前あったのを削除して、分かりやすいようにしてみました。 反対に分かりにくくなったかもですが・・・
|
Re: 「ブロックを壊す」について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/01/29(Thu) 15:11
No.5178
|
|
|
|
Re: 「ブロックを壊す」について 投稿者 : hkr(p2058-ip01kyoto.kyoto.ocn.ne.jp) - 2004/01/17(Sat) 17:21 No.5105 プログラムを見てみました。(レスの) //ココ追加しました!//の2個目ですが、あそこは何も行われていません。 変数paは「null」なのですから。 まあそれは置いといて本題です。 普通に 「もし自分(手裏剣)の位置に壊すブロック(パターン)があれば、その位置のマップパターンを消す」 ということをすればいいので、これをプログラムに直すと
if($map.getAt(x,y)==ブロックパターン){ $map.set(mx,my,[-1]) }
とすれば良いと思います。[-1]は消した後のパターンです。 「変数mxとmyはx(y)/パターンの大きさ」でいけます。 これで多分いけます。
|
Re: 「ブロックを壊す」について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/01/29(Thu) 15:13
No.5179
|
|
|
|
Re: 「ブロックを壊す」について
投稿者 : hkr(p0478-ip01kyoto.kyoto.ocn.ne.jp)
- 2004/01/31(Sat) 12:06
No.5184
|
|
|
|
5184.lzh
ついてたファイル改造してつくっちゃいました。 参考に(そのままやっても良いが)してください。
|
Re: 「ブロックを壊す」について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/01/31(Sat) 18:09
No.5186
|
|
|
|
5186.lzh
こんにちは。 hkrさま、ありがとうございました! なんとか思っていたとおりになりました。 でも、ちょっとおかしい所もあり、試行錯誤中です。
なぜだか、壊せるブロックと壊せないブロックがあるのです・・・壊せるはずなのに。そして、たまに壊せないブロックまでも壊してしまうことがあります。こちらの方もいずれ解決したいと思います。
出来た所までをアップしておこうと思います。 ありがとうございました。
|
Re: 「ブロックを壊す」について
投稿者 : Ryota(EAOcf-292p3.ppp15.odn.ne.jp)
- 2004/01/31(Sat) 19:21
No.5187
|
|
|
|
>なぜだか、壊せるブロックと壊せないブロックがあるのです・・・壊せるはずなのに。 >そして、たまに壊せないブロックまでも壊してしまうことがあります。こちらの方もいずれ解決したいと思います。
$map.getAt(x,y); と $map.set(trunc(x/20),trunc(y/20)); では数値の丸め方が違うので違う座標を指してしまうことがあります。
getAtではfloor関数を、ツキヒさんがやっている処理ではtrunc関数を使っていますね。これが誤差の元です。
//ここから切り取り //もし水色ブロックに当たっていたら if ($map.get(trunc(x/20),trunc(y/20))==$pat_kunoichi+13){ //そこのマップを消す $map.set(trunc(x/20),trunc(y/20),-1); //消滅する die(); } //ここまで切り取り
或は
//ここから切り取り //もし水色ブロックに当たっていたら if ($map.getAt(x,y)==$pat_kunoichi+13){ //そこのマップを消す $map.set(floor(x/20),floor(y/20),-1); //消滅する die(); } //ここまで切り取り
このように整数に丸める処理を統一すればいいです。
|
Re: 「ブロックを壊す」について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/01/31(Sat) 23:40
No.5195
|
|
|
|
こんばんは。 上の命令に変更してみた所、 Ryotaさまのおかげで壊れるようになりました、 ありがとうございました。 がんばります!
|
|