anchor.diff:  
   Use Controls to define the behaviour of types of Spatials. Use Application States to implement global behaviour, to group subsets of input handlers or +++<abbr title="Graphical User Interface">GUI</abbr>+++ screens, etc. Use the `simpleUpdate()` and `update()` loops for tests and interactions. Use Cinematics to remote-control objects in scenes.
   
  -*Learn more:* <<jme3/beginner/hello_main_event_loop#,Hello Loop>>, <<jme3/advanced/update_loop#,Update Loop>>, <<jme3/advanced/custom_controls#,Custom Controls>>, <<jme3/advanced/application_states#,Application States>>, <<jme3/advanced/cinematics#,Cinematics>>
  +*Learn more:*
  +
  +* <<jme3/beginner/hello_main_event_loop#,Hello Loop>>
  +* <<jme3/advanced/update_loop#,Update Loop>>
  +* <<jme3/advanced/custom_controls#,Custom Controls>>
  +* <<jme3/advanced/application_states#,Application States>>
  +* <<jme3/advanced/cinematics#,Cinematics>>
   
   
   === How do I let players interact via keyboard?
   
   Use com.jme3.input.KeyInput and a Input Listener.
   
  -*Learn more:* <<jme3/beginner/hello_input_system#,Hello Input>>, <<jme3/advanced/input_handling#,Input Handling>>
  +*Learn more:*
  +
  +* <<jme3/beginner/hello_input_system#,Hello Input>>
  +* <<jme3/advanced/input_handling#,Input Handling>>
   
   
   === How do I let players interact by clicking?
   
  -Players typically click the mouse to pick up objects, to open doors, to shoot a weapon, etc. Use an Input Listener to respond to mouse clicks, then cast a ray from the player; if it intersects with the bounding volume of a spatial, this is the selected target. The links below contain code samples for both “fixed crosshair picking and “free mouse pointer picking.
  -
  -*Learn more:* <<jme3/beginner/hello_picking#,Hello Picking>>, <<jme3/advanced/mouse_picking#,Mouse Picking>>, <<jme3/advanced/collision_and_intersection#,Collision and Intersection>>, <<jme3/advanced/input_handling#,Input Handling>>, link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-core/src/main/java/com/jme3/bounding[com.jme3.bounding.], link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/math/Ray.java[com.jme3.math.Ray.java], link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/math/Ray.java[com.jme3.collision.CollisionResults.java]. +
  -*Code sample:* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bounding/TestRayCollision.java[TestRayCollision.java]
  +Players typically click the mouse to pick up objects, to open doors, to shoot a weapon, etc. Use an Input Listener to respond to mouse clicks, then cast a ray from the player; if it intersects with the bounding volume of a spatial, this is the selected target. The links below contain code samples for both `fixed` crosshair picking and `free` mouse pointer picking.
  +
  +*Learn more:*
  +
  +* <<jme3/beginner/hello_picking#,Hello Picking>>
  +* <<jme3/advanced/mouse_picking#,Mouse Picking>>
  +* <<jme3/advanced/collision_and_intersection#,Collision and Intersection>>
  +* <<jme3/advanced/input_handling#,Input Handling>>
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-core/src/main/java/com/jme3/bounding[com.jme3.bounding.]
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/math/Ray.java[com.jme3.math.Ray.java]
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/math/Ray.java[com.jme3.collision.CollisionResults.java]
  +
  +*Code sample:*
  +
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bounding/TestRayCollision.java[TestRayCollision.java]
   
   
   === How do I animate characters?
   
   Create an animated OgreMesh model with bones in a 3-D mesh editor (e.g. Blender).
   
  -*Learn more:* link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-core/src/main/java/com/jme3/animation[com.jme3.animation.], <<jme3/beginner/hello_animation#,Hello Animation>>, <<jme3/advanced/animation#,Animation>>, link:http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation[Blender animation tutorial] +
  -*Code sample:*  link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/model/anim[animation]
  +*Learn more:*
  +
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-core/src/main/java/com/jme3/animation[com.jme3.animation.]
  +* <<jme3/beginner/hello_animation#,Hello Animation>>
  +* <<jme3/advanced/animation#,Animation>>
  +* link:http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation[Blender animation tutorial]
  +
  +*Code sample:*
  +
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/model/anim[animation]
   
   
   === How do I keep players from falling through walls and floors?
   
   Use collision detection. The most common solution is to use jme's physics integration, jBullet.
   
  -*Learn more:* <<jme3/beginner/hello_collision#,Hello Collision>>, <<jme3/advanced/physics#,Physics>>, link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-bullet/src/common/java/com/jme3/bullet[com.jme3.bullet.], CapsuleCollisionShape versus CompoundCollisionShape, CharacterControl versus RigidBodyControl.
  +*Learn more:*
  +
  +* <<jme3/beginner/hello_collision#,Hello Collision>>
  +* <<jme3/advanced/physics#,Physics>>
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-bullet/src/common/java/com/jme3/bullet[com.jme3.bullet.]
  +* CapsuleCollisionShape versus CompoundCollisionShape, CharacterControl versus RigidBodyControl.
   
   
   === How do I make balls/wheels/etc bounce and roll?
   
   Add physics controls to Spatials and give them spherical or cylindrical bounding volumes.
   
  -*Learn more:* <<jme3/beginner/hello_physics#,Hello Physics>>, <<jme3/advanced/physics#,Physics>>, link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-core/src/main/java/com/jme3/bounding[com.jme3.bounding.], link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-bullet/src/main/java/com/jme3/bullet/collision[com.jme3.bullet.collisions], link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-bullet/src/common/java/com/jme3/bullet/control/RigidBodyControl.java[com.jme3.bullet.control.RigidBodyControl.java] +
  -*Code sample:* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bullet/TestSimplePhysics.java[TestSimplePhysics.java], link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/bullet[more physics samples]
  +*Learn more:*
  +
  +* <<jme3/beginner/hello_physics#,Hello Physics>>
  +* <<jme3/advanced/physics#,Physics>>
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-core/src/main/java/com/jme3/bounding[com.jme3.bounding.]
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-bullet/src/main/java/com/jme3/bullet/collision[com.jme3.bullet.collisions]
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-bullet/src/common/java/com/jme3/bullet/control/RigidBodyControl.java[com.jme3.bullet.control.RigidBodyControl.java]
  +
  +*Code sample:*
  +
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bullet/TestSimplePhysics.java[TestSimplePhysics.java]
  +* link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/bullet[more physics samples]
   
   
   === How do I debug weird Physics behaviour?
  
positive.code: 
  At the bottom left of every default SimpleGame, you see the <<jme3/advanced/statsview#,StatsView>> and the FPS (frames per seconds) view. These views provide you with extra information during the development phase. For example, if you notice the object count is increasing and the FPS is decreasing, then you know that your code attaches too many objects and does not detach enough of them again (maybe a loop gone wild?).
  
  *Learn more:* <<jme3/advanced/statsview#,StatsView>>
  
  
  === How do I get rid of the FPS/Objects statistics?
  
negative.code: 
  Attach text and pictures to the orthogonal `guiNode` to create a heads-up display (link:http://en.wikipedia.org/wiki/HUD_%28video_gaming%29[HUD]).
  
  *Learn more:*
  
  * <<jme3/advanced/hud#,HUD>>
  * link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-core/src/main/java/com/jme3/font[com.jme3.font.]
  * link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/ui/Picture.java[com.jme3.ui.Picture] guiNode.attachChild()
  
  *Code Sample:*
  
  * link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/gui/TestOrtho.java[TestOrtho.java]
  * link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/gui/TestBitmapFont.java[TestBitmapFont.java]
  
  
  === How do I display buttons and UI controls?
  
  You may want to display buttons to let the player switch between the game, settings screen, and score screens. For buttons and other more advanced UI controls, jME supports the Nifty +++<abbr title="Graphical User Interface">GUI</abbr>+++ library.
  
  *Learn more:*
  
  * <<jme3/advanced/nifty_gui#,Nifty GUI>>
  
  *Code Sample:*
  
  * link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/niftygui/TestNiftyGui.java[TestNiftyGui.java]
  
  
  === How do i display a loading screen?
  
  Instead of having a frozen frame while your games loads, you can have a loading screen while it loads.
  
  *Learn more:*
  
  * <<jme3/advanced/loading_screen#,Loading screen>>
  
  
  == Nifty GUI
  