2016-07-31 9 views
0

Ich mache ein RPG-Spiel mit enchant.js, und dann habe ich eine Karte wie folgt aus: sample mapWie ändert man die Hindernisregeln in enchant.js?

Die Spieler, die nicht durch das Wasser passieren kann, aber wenn die Spieler ein Boot nehmen, können sie durchlaufen. Meine Frage ist, ob ich die kollisionDaten jedes Mal neu schreiben muss, wenn die Spieler gehen/Boot fahren? Gibt es einen einfachen Weg das zu tun, wenn die Karte groß ist? Danke für die Hilfe.

Antwort

0

Nicht vertraut mit enchant.js, aber in der Regel werden Kollisionsmasken verwendet. Je nachdem, welche Physik-Engine Sie verwenden, sollte es eine Möglichkeit geben, Kollisionsmaskenwerte (Ganzzahlen) in den Physik-Körpern einzustellen. Mit box2d zum Beispiel haben Sie zwei Werte:

  1. Kategorie Bits
  2. Maskenbits

Die Kategorie ist der Zahlenwert, dass dieses Objekt ist oder der Typ. Also, wenn Sie eine Reihe von Variablen haben:

Sie würden die Kategorie Bits zu einer von ihnen setzen. Die Maskenbits sind dann der Wert der Masken, mit denen sie kollidieren können.

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

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

Welche Physik-Engines mit diesem intern tut, ist ein & Betrieb zu sehen, ob die Kategorie und Maskenwert gleichsetzen, um etwas anderes als 0 Ist dies der Fall, dann eine Kollision gibt.

+0

es scheint, dass enchant.js eine andere Art und Weise verwenden Hindernis auf der Karte zu implementieren.Es hat ein Array wie [0,0,0,1,1], die vom Entwickler beim ersten Laden des Spiels zugewiesen wurde (1 steht nicht übergeben durch), es ist schwer, im Spiel neu zu schreiben. Aber deine Antwort ist fantastisch und hilfreich für mich, danke ~~ – undefined000

+0

Ah okay. Ich habe mir die Dokumente angesehen, aber ich habe nicht viel von Kollisionen gesehen :) – agmcleod

+0

[http://enchantjs.com/tutorial/lets-start-with-enchant-js/#ref_10](http://enchantjs.com/ tutorial/lets-start-with-enchant-js/# ref_10) gibt ein Beispiel, um Kollisionen auf der Karte hinzuzufügen, aber es wird schwer sein, die Zuordnung aufzuheben, wenn das Spiel läuft. – undefined000

Verwandte Themen