ボンバーマンの移動システムについて
Posted: 2009年3月31日(火) 01:51
はじめまして、今DXライブラリを使用してボンバーマンもどきを作っています。
一通りのシステムは完成したのですが、今のシステムは一度「→」を押すと1マス分移動してしまいます。
実際のものはドット単位で管理しているようにみえたので、そのように改良しようかと思ったのですが、
移動のアルゴリズムが予想以上に難しかったのでアドバイスをいただければと思い投稿しました。
単純に「→」を押せば数ドット移動、などは簡単なのですが
ブロック幅と、プレイヤーの当たり判定幅が同じなので少しでもブロックに接触していると移動できなくなったりするのです。
実物をプレイすると
ボンバーマン→○
ハードブロック→□
ソフトブロック→■
..○
□ □
といった状況の場合に↓を押すと
○
□ □
の状態になるまで↓を押しているのに右に移動してくれるようになっています。
..○
□■□
この状態だと↓を押しても移動しません。
この様な移動システムではどのように判定をしているのか、手順だけでもアドバイスをいただければと思います。
マップのデータは
mapdata[11][17]という配列に
0は何もなし、1はハードブロック、2はソフトブロックというように入っています。
一通りのシステムは完成したのですが、今のシステムは一度「→」を押すと1マス分移動してしまいます。
実際のものはドット単位で管理しているようにみえたので、そのように改良しようかと思ったのですが、
移動のアルゴリズムが予想以上に難しかったのでアドバイスをいただければと思い投稿しました。
単純に「→」を押せば数ドット移動、などは簡単なのですが
ブロック幅と、プレイヤーの当たり判定幅が同じなので少しでもブロックに接触していると移動できなくなったりするのです。
実物をプレイすると
ボンバーマン→○
ハードブロック→□
ソフトブロック→■
..○
□ □
といった状況の場合に↓を押すと
○
□ □
の状態になるまで↓を押しているのに右に移動してくれるようになっています。
..○
□■□
この状態だと↓を押しても移動しません。
この様な移動システムではどのように判定をしているのか、手順だけでもアドバイスをいただければと思います。
マップのデータは
mapdata[11][17]という配列に
0は何もなし、1はハードブロック、2はソフトブロックというように入っています。