2016-07-31 9 views
0

私はenchant.jsのでRPGゲームを作ってるんだ、と私は、このようなマップ作成:プレイヤーが水を通過することはできませんが、選手たちは船に乗るとき、彼らが通過することができます sample mapenchant.jsの障害物のルールを変更するには?

を。私の質問は、プレーヤーが歩く/ボートするたびにcollistionDataを書き直さなければならないかどうかです。地図が大きい場合は、簡単な方法がありますか?

答えて

0

enchant.jsに精通していませんが、通常、この処理方法は衝突マスクを使用しています。したがって、使用している物理エンジンに応じて、物理マスク本体に衝突マスク値(整数を使用)を設定する方法があります。

  1. カテゴリビット
  2. マスクビット

カテゴリは、このオブジェクトであることを数値やタイプである:例えばBOX2Dを使用すると、2つの値を持っています。したがって、多くの変数がある場合:

const PLAYER = 1; 
const WATER = 2; 
const BOAT = 4; 

カテゴリビットを1つに設定します。マスクビットは、それが衝突可能なマスクの値です。物理エンジンはこれで、内部で何

const PlayerEntity = { 
    category: PLAYER, 
    mask: PLAYER | WATER 
}; 

const WaterEntity = { 
    category: WATER, 
    mask: PLAYER 
}; 

は、カテゴリとマスクの値はそれがない場合は、衝突があります0以外の何かに等しいかどうかを確認するために&操作です。

+0

map.itには、ゲームの最初の読み込み時に開発者によって割り当てられた[0,0,0,1,1]のような配列があります(1は通過できません) )、それはゲームで書き直すのは難しいです。あなたの答えは素晴らしいと私に役立つです、ありがとう~~ – undefined000

+0

ああ大丈夫です。私はドキュメントを見ましたが、衝突の多くを見ていませんでした:) – agmcleod

+0

[http://enchantjs.com/tutorial/lets-start-with-enchant-js/#ref_10](http://enchantjs.com/ tutorial/lets-start-with-enchant-js /#ref_10)は、マップ上に衝突を追加する例を示していますが、ゲームの実行中に割り当てを解除するのは難しいでしょう。 – undefined000