|
@@ -192,7 +192,7 @@ Example: Players have *methods* such as `walk(), addGold(), getHealth(), pickUpI
|
|
|
*Follow the Best Practice:* In general, use composition over inheritance and keep what an entity does (behaviour system) separate from what this entity is (attributes).
|
|
|
|
|
|
* Use `xref:ROOT:jme3/advanced/spatial.adoc[setUserData()]` to add custom attributes to Spatials.
|
|
|
-* Use xref:ROOT:jme3/advanced/custom_controls.adoc[Controls] and xref:core:app/state/application_states.adoc[Application States] to define custom behaviour systems.
|
|
|
+* Use xref:core:scene/control/custom_controls.adoc[Controls] and xref:core:app/state/application_states.adoc[Application States] to define custom behaviour systems.
|
|
|
====
|
|
|
|
|
|
|
|
@@ -231,7 +231,7 @@ As your SimpleApplication-based game grows more advanced, you find yourself putt
|
|
|
** An AppState has access to everything in the SimpleApplication (rootNode, AssetManager, StateManager, InputListener, ViewPort, etc).
|
|
|
|
|
|
|
|
|
-* Use xref:ROOT:jme3/advanced/custom_controls.adoc[Controls] to implement the _behaviour of game entities_.
|
|
|
+* Use xref:core:scene/control/custom_controls.adoc[Controls] to implement the _behaviour of game entities_.
|
|
|
** Controls add a type of behaviour (methods and fields) to an individual Spatial (a player, an NPC).
|
|
|
** Each Control runs its own _thread-safe_ `controlUpdate()` loop that hooks into the main `simpleUpdate()` loop.
|
|
|
** One Spatial can be influenced by several Controls. (!)
|
|
@@ -255,7 +255,7 @@ AppStates and Controls are extensions to a SimpleApplication. They are your modu
|
|
|
====
|
|
|
|
|
|
|
|
|
-Read all about xref:ROOT:jme3/advanced/custom_controls.adoc[Custom Controls] and xref:core:app/state/application_states.adoc[Application States] here.
|
|
|
+Read all about xref:core:scene/control/custom_controls.adoc[Custom Controls] and xref:core:app/state/application_states.adoc[Application States] here.
|
|
|
|
|
|
|
|
|
=== Optimize Application Performance
|