mirror of
https://gitee.com/dgflash/oops-plugin-framework.git
synced 2026-05-08 03:16:49 +08:00
ECS文档中补充例子
This commit is contained in:
@@ -209,6 +209,8 @@ export module ecs {
|
||||
/**
|
||||
* 动态查询实体
|
||||
* @param matcher 匹配器
|
||||
* @example
|
||||
* ecs.query(ecs.allOf(Comp1, Comp2));
|
||||
*/
|
||||
export function query<E extends Entity = Entity>(matcher: IMatcher): E[] {
|
||||
let group = ECSModel.groups.get(matcher.mid);
|
||||
@@ -269,14 +271,18 @@ export module ecs {
|
||||
* 表示只关心这些组件的添加和删除动作。虽然实体可能有这些组件之外的组件,但是它们的添加和删除没有被关注,所以不会存在对关注之外的组件
|
||||
* 进行添加操作引发Group重复添加实体。
|
||||
* @param args
|
||||
* @example
|
||||
* ecs.allOf(AComponent, BComponent, CComponent);
|
||||
*/
|
||||
export function allOf(...args: CompType<IComp>[]) {
|
||||
return new ECSMatcher().allOf(...args);
|
||||
}
|
||||
|
||||
/**
|
||||
* 组件间是或的关系,表示关注拥有任意一个这些组件的实体。
|
||||
* 组件间是或的关系,表示关注拥有任意一个这些组件的实体
|
||||
* @param args 组件类
|
||||
* @example
|
||||
* ecs.anyOf(AComponent, BComponent);
|
||||
*/
|
||||
export function anyOf(...args: CompType<IComp>[]) {
|
||||
return new ECSMatcher().anyOf(...args);
|
||||
@@ -286,6 +292,12 @@ export module ecs {
|
||||
* 表示关注只拥有这些组件的实体
|
||||
* 注:不是特殊情况不建议使用onlyOf。因为onlyOf会监听所有组件的添加和删除事件
|
||||
* @param args 组件类
|
||||
* @example
|
||||
// 不包含CComponent或者DComponent
|
||||
ecs.allOf(AComponent, BComponent).excludeOf(CComponent, DComponent);
|
||||
|
||||
// 不同时包含CComponent和DComponent
|
||||
ecs.allOf(AComponent, BComponent).excludeOf(CComponent).excludeOf(DComponent);
|
||||
*/
|
||||
export function onlyOf(...args: CompType<IComp>[]) {
|
||||
return new ECSMatcher().onlyOf(...args);
|
||||
@@ -295,7 +307,8 @@ export module ecs {
|
||||
* 不包含指定的任意一个组件
|
||||
* @param args 组件类
|
||||
* @example
|
||||
* ecs.excludeOf(A, B); // 表示不包含组件A或者组件B
|
||||
// 表示不包含组件A或者组件B
|
||||
ecs.excludeOf(A, B);
|
||||
*/
|
||||
export function excludeOf(...args: CompType<IComp>[]) {
|
||||
return new ECSMatcher().excludeOf(...args);
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:246</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:248</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<h5>obj: <a href="../interfaces/ecs.IComp.html" class="tsd-signature-type" data-tsd-kind="Interface">IComp</a></h5></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:322</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:335</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
<li class="tsd-description">
|
||||
<div class="tsd-comment tsd-typography"><p>表示只关心这些组件的添加和删除动作。虽然实体可能有这些组件之外的组件,但是它们的添加和删除没有被关注,所以不会存在对关注之外的组件
|
||||
进行添加操作引发Group重复添加实体。</p>
|
||||
|
||||
<h3>Example</h3><pre><code class="language-ts"><span class="hl-0">ecs</span><span class="hl-1">.</span><span class="hl-7">allOf</span><span class="hl-1">(</span><span class="hl-0">AComponent</span><span class="hl-1">, </span><span class="hl-0">BComponent</span><span class="hl-1">, </span><span class="hl-0">CComponent</span><span class="hl-1">);</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="tsd-parameters">
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
@@ -28,7 +31,7 @@
|
||||
<h5><code class="tsd-tag ts-flagRest">Rest</code> <span class="tsd-signature-symbol">...</span>args: <a href="../types/ecs.CompType.html" class="tsd-signature-type" data-tsd-kind="Type alias">CompType</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/ecs.IComp.html" class="tsd-signature-type" data-tsd-kind="Interface">IComp</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ECSMatcher</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:273</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:277</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -18,7 +18,10 @@
|
||||
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-namespace">
|
||||
<li class="tsd-signature tsd-anchor-link" id="anyOf">any<wbr/>Of<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><a href="../types/ecs.CompType.html" class="tsd-signature-type" data-tsd-kind="Type alias">CompType</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/ecs.IComp.html" class="tsd-signature-type" data-tsd-kind="Interface">IComp</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ECSMatcher</span><a href="#anyOf" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
|
||||
<li class="tsd-description">
|
||||
<div class="tsd-comment tsd-typography"><p>组件间是或的关系,表示关注拥有任意一个这些组件的实体。</p>
|
||||
<div class="tsd-comment tsd-typography"><p>组件间是或的关系,表示关注拥有任意一个这些组件的实体</p>
|
||||
|
||||
<h3>Example</h3><pre><code class="language-ts"><span class="hl-0">ecs</span><span class="hl-1">.</span><span class="hl-7">anyOf</span><span class="hl-1">(</span><span class="hl-0">AComponent</span><span class="hl-1">, </span><span class="hl-0">BComponent</span><span class="hl-1">);</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="tsd-parameters">
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
@@ -29,7 +32,7 @@
|
||||
</div></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ECSMatcher</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:281</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:287</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:223</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:225</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<li class="tsd-description">
|
||||
<div class="tsd-comment tsd-typography"><p>不包含指定的任意一个组件</p>
|
||||
|
||||
<h3>Example</h3><pre><code class="language-ts"><span class="hl-0">ecs</span><span class="hl-1">.</span><span class="hl-7">excludeOf</span><span class="hl-1">(</span><span class="hl-8">A</span><span class="hl-1">, </span><span class="hl-8">B</span><span class="hl-1">); </span><span class="hl-3">// 表示不包含组件A或者组件B</span>
|
||||
<h3>Example</h3><pre><code class="language-ts"><span class="hl-3">// 表示不包含组件A或者组件B</span><br/><span class="hl-0">ecs</span><span class="hl-1">.</span><span class="hl-7">excludeOf</span><span class="hl-1">(</span><span class="hl-8">A</span><span class="hl-1">, </span><span class="hl-8">B</span><span class="hl-1">);</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="tsd-parameters">
|
||||
@@ -32,7 +32,7 @@
|
||||
</div></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ECSMatcher</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:300</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:313</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</div></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type" data-tsd-kind="Type parameter">E</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:241</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:243</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</div></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type" data-tsd-kind="Type parameter">T</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:310</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:323</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
<li class="tsd-description">
|
||||
<div class="tsd-comment tsd-typography"><p>表示关注只拥有这些组件的实体
|
||||
注:不是特殊情况不建议使用onlyOf。因为onlyOf会监听所有组件的添加和删除事件</p>
|
||||
|
||||
<h3>Example</h3><pre><code class="language-ts"><span class="hl-3">// 不包含CComponent或者DComponent</span><br/><span class="hl-0">ecs</span><span class="hl-1">.</span><span class="hl-7">allOf</span><span class="hl-1">(</span><span class="hl-0">AComponent</span><span class="hl-1">, </span><span class="hl-0">BComponent</span><span class="hl-1">).</span><span class="hl-7">excludeOf</span><span class="hl-1">(</span><span class="hl-0">CComponent</span><span class="hl-1">, </span><span class="hl-0">DComponent</span><span class="hl-1">);</span><br/><br/><span class="hl-3">// 不同时包含CComponent和DComponent</span><br/><span class="hl-0">ecs</span><span class="hl-1">.</span><span class="hl-7">allOf</span><span class="hl-1">(</span><span class="hl-0">AComponent</span><span class="hl-1">, </span><span class="hl-0">BComponent</span><span class="hl-1">).</span><span class="hl-7">excludeOf</span><span class="hl-1">(</span><span class="hl-0">CComponent</span><span class="hl-1">).</span><span class="hl-7">excludeOf</span><span class="hl-1">(</span><span class="hl-0">DComponent</span><span class="hl-1">);</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="tsd-parameters">
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
@@ -30,7 +33,7 @@
|
||||
</div></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ECSMatcher</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:290</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:302</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
<li class="tsd-signature tsd-anchor-link" id="query">query<span class="tsd-signature-symbol"><</span><span class="tsd-signature-type" data-tsd-kind="Type parameter">E</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span>matcher<span class="tsd-signature-symbol">: </span><a href="../interfaces/ecs.IMatcher.html" class="tsd-signature-type" data-tsd-kind="Interface">IMatcher</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type" data-tsd-kind="Type parameter">E</span><span class="tsd-signature-symbol">[]</span><a href="#query" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
|
||||
<li class="tsd-description">
|
||||
<div class="tsd-comment tsd-typography"><p>动态查询实体</p>
|
||||
|
||||
<h3>Example</h3><pre><code class="language-ts"><span class="hl-0">ecs</span><span class="hl-1">.</span><span class="hl-7">query</span><span class="hl-1">(</span><span class="hl-0">ecs</span><span class="hl-1">.</span><span class="hl-7">allOf</span><span class="hl-1">(</span><span class="hl-0">Comp1</span><span class="hl-1">, </span><span class="hl-0">Comp2</span><span class="hl-1">));</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
<div class="tsd-type-parameters">
|
||||
<h4 class="tsd-type-parameters-title">Type Parameters</h4>
|
||||
@@ -36,7 +39,7 @@
|
||||
</div></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type" data-tsd-kind="Type parameter">E</span><span class="tsd-signature-symbol">[]</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:213</li></ul></aside></li></ul></section></div>
|
||||
<li>Defined in assets/libs/ecs/ECS.ts:215</li></ul></aside></li></ul></section></div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
|
||||
|
||||
Reference in New Issue
Block a user