簡體   English   中英

nape中船只和子彈的sensorGroup和sensorMask組合

[英]sensorGroup and sensorMask combination for ships and bullets in Nape

我有多個宇宙飛船( SHIP_CB CbType),可以全部射擊導彈( BULLET_CB CbType)。 如何設置sensorGroupsensorMaskInteractionListeners以便我得到以下行為:

  1. 船舶全部碰撞並互相反彈。
  2. 子彈根本不會反應或相互感知。
  3. 子彈與Enemy Ships有關。
  4. 子彈不會發射射擊子彈的船。

甚至可以通過在每個對象上設置正確的sensorGroup和sensorMask來獲得所有這些行為嗎?

假設子彈只是感覺到,所以不應該以任何方式與射擊它的船相互作用,一種方法是:

從一切違約開始,

對於每艘船

ship.group = new InteractionGroup(true);

為給定船舶'船'創建的每個子彈

將子彈設置為與拍攝它的船具有相同的交互組。 這樣,由於在群組中忽略= true,從指定船舶發射的任何子彈都將被排除在與該船舶相互作用之外。

bullet.group = ship.group;

對於子彈的每個形狀,可能只有1.制作子彈形狀的傳感器

bulletShape.sensorEnabled = true;

除了自己以外,用子彈制造子彈形狀。

bulletShape.sensorGroup = 2;
bulletShape.sensorMask = ~2;

參考: Nape手冊:InteractionGroups

你可以用sensorGroup / sensorMask完全做到這一點。 但你只能被限制在31艘不同的船上,而且邏輯會更復雜一些。

您還可以使用回調系統來忽略船只與其發射的子彈之間的交互作用,並在回調中使用一些額外的邏輯,但它比使用InteractionGroup的東西要重得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM