

= jMonkeyEngine 教程 & 文档


== 初级教程

The beginner tutorials demonstrate the most common use cases and explain basic concepts. We encourage you to run the sample codes and experiment with them. link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test[All example code] is included in the jMonkeyEngine SDK: Simply create a new project from the `JmeTests` template. To start writing your own projects, create a new file from the `BasicGame` template.


*Press F1*<<sdk#,jMonkeyEngine SDK>>link:https://github.com/jMonkeyEngine/jmonkeyengine[latest development version]



image::jme3/beginner/beginner-physics.png[beginner-physics.png,with="360",height="291",align="right"]



*  Make sure you are familiar with basic <<jme3/terminology#,3D game development concepts>> such as <<jme3/the_scene_graph#,the scene graph>>.

..  <<jme3/beginner/hello_simpleapplication#,Hello SimpleApplication>> – Initializing a SimpleApplication
..  <<jme3/beginner/hello_node#,Hello Node>> – Transforming Geometries and Nodes in the Scenegraph
..  <<jme3/beginner/hello_asset#,Hello Assets>> – Loading 3-D models, scenes, and other assets.
..  <<jme3/beginner/hello_main_event_loop#,Hello Loop>> – Triggering actions in the update loop
..  <<jme3/beginner/hello_input_system#,Hello Input>> – Responding to keyboard and mouse input
..  <<jme3/beginner/hello_material#,Hello Material>> – Setting Materials, Textures, Transparency
..  <<jme3/beginner/hello_animation#,Hello Animation>> – Controlling animated models
..  <<jme3/beginner/hello_picking#,Hello Picking>> – Shooting, pressing buttons, selecting, picking up items
..  <<jme3/beginner/hello_collision#,Hello Collision>> – Making walls and floors solid
..  <<jme3/beginner/hello_terrain#,Hello Terrain>> – Creating hilly landscapes with textures
..  <<jme3/beginner/hello_audio#,Hello Audio>> – Accompanying places and actions with 3D sound
..  <<jme3/beginner/hello_effects#,Hello Effects>> – Creating particle effects such as fire, explosions, spells.
..  <<jme3/beginner/hello_physics#,Hello Physics>> – Bouncing ball and falling bricks
..  <<jme3/beginner/hellovector#,Hello Vector3f>> – Vector visualization &amp; vector operations
..  <<jme3/beginner/hellochasecam#,Hello Chase camera>> – Chase camera (aka 3rd person camera) example

See also: <<sdk/sample_code#,Trouble running the samples>>?


For more help getting started, check out this tuts+ guide on “link:http://gamedevelopment.tutsplus.com/articles/how-to-learn-jmonkeyengine-3--gamedev-10479[ How to learn jMonkeyEngine 3].



== 中级教程

Now that you understood the basics, let's put it all together. The following intermediate articles help you to understand how to use these concepts in context.


*jMonkeyEngine3 Concepts*


*  <<jme3/intermediate/best_practices#,Best Practices>>
*  <<jme3/intermediate/simpleapplication#,SimpleApplication>>
*  <<jme3/intermediate/appsettings#,AppSettings>>
*  <<jme3/intermediate/file_types#,File Types>>
*  <<jme3/intermediate/optimization#,Optimization>>
*  <<jme3/faq#,Frequently Asked Questions (FAQ)>>

*Maths Concepts*


*  <<jme3/math_for_dummies#,jME3 Math for Dummies>>
*  <<jme3/intermediate/math#,Short 3D math &quot;cheat sheet&quot;>>
*  <<jme3/math#,jME3 math overview>>
*  <<jme3/math_video_tutorials#,Videos: jME3 math video tutorial series>>

*3D Graphics Concepts*


*  <<jme3/intermediate/multi-media_asset_pipeline#,Multi-Media Asset Pipeline>>
*  <<jme3/scenegraph_for_dummies#,3D Scene Graph for Dummies>>
*  <<jme3/terminology#,3D Graphics Terminology>>
*  <<jme3/intermediate/how_to_use_materials#,How to Use Materials>>
*  <<jme3/intermediate/transparency_sorting#,Transparency Sorting>>
*  <<jme3/external/blender#,Creating compatible models in blender>>
*  <<jme3/external/3dsmax#,Creating compatible models in 3dsmax>>

*Game Tutorials*


*  link:http://gamedevelopment.tutsplus.com/series/cross-platform-vector-shooter-jmonkeyengine--gamedev-13757[Neon Vector Shooter tutorial on Tuts+]

*Video Use Case Tutorials*
- Note these videos use alpha features only available in the next release


*  link:http://www.youtube.com/watch?v=-OzRZscLlHY[Video: jMonkeyEngine SDK Use Case Demo 1 (Quixote)]
*  link:http://www.youtube.com/watch?v=6-YWxD3JByE[Video: jMonkeyEngine SDK Use Case Demo 2 (Models and Materials)]

Learn from sample code in link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test[src/main/java/jme3test] (also available in the sdk by File &gt; New Project &gt; JME3 Tests) and the example games provided by the community!



== 进阶教程

Now that you understand the concepts, it's time to make the most of the jMonkeyEngine. Deep-dive into the +++<abbr title="Application Programming Interface">API</abbr>+++ and learn about all options, including less commonly used advanced methods. Don't over-extend yourself, developing a good game requires time and dedication. One step at a time, champ! :)


*Controlling Game Logic*


*  <<jme3/advanced/update_loop#,Update Loop>>
*  <<jme3/advanced/application_states#,Application States>>
*  <<jme3/advanced/custom_controls#,Custom Controls>>
**  link:http://www.youtube.com/watch?v=MNDiZ9YHIpM[Video: How to control any scene node]
**  link:http://www.youtube.com/watch?v=-OzRZscLlHY[Video: How to remote control a character in a scene]

*  <<jme3/advanced/multithreading#,Multithreading>>

*Managing Objects in the 3D Scene Graph*


*  <<jme3/advanced/traverse_scenegraph#,Traverse SceneGraph>>
*  <<jme3/advanced/spatial#,Spatial: Node versus Geometry>>
*  <<jme3/advanced/mesh#,Mesh>>
**  <<jme3/advanced/shape#,Shape>>
**  <<jme3/advanced/3d_models#,3D Models>>
**  <<jme3/advanced/custom_meshes#,Custom Meshes>>

*  <<jme3/advanced/asset_manager#,Asset Manager>>
*  <<jme3/advanced/save_and_load#,Saving and Loading Nodes (.J3O Files)>>
*  <<jme3/advanced/collision_and_intersection#,Collision and Intersection>>
*  <<jme3/advanced/level_of_detail#,Level of Detail>>

*Animations and Scenes*


*  <<jme3/advanced/animation#,Animation>>
*  <<jme3/advanced/cinematics#,Cinematics (cutscenes, fake destruction physics)>>
*  <<jme3/advanced/motionpath#,MotionPaths and waypoints>>
*  <<jme3/external/blender#,Creating jME3 compatible 3D models in Blender>>
*  <<jme3/advanced/makehuman_blender_ogrexml_toolchain#,MakeHuman Blender OgreXML toolchain for creating and importing animated human characters>>
*  <<sdk/blender#,Converting Blender Models to JME3 (.J3o files)>>
**  link:https://www.youtube.com/watch?v=QiLCs4AKh28[Video: Import animated models from Blender 2.6 to JME3]
**  link:http://www.youtube.com/watch?v=NdjC9sCRV0s[Video: Creating and Exporting OgreXML Animations from Blender 2.61 to JME3]
**  link:https://docs.google.com/fileview?id=0B9hhZie2D-fENDBlZDU5MzgtNzlkYi00YmQzLTliNTQtNzZhYTJhYjEzNWNk&hl=en[Scene Workflow:]


Create jme3 compatible racing tracks in blender
* link:http://www.youtube.com/watch?v=3481ueuDJwQ&feature=youtu.be[Video: Create jme3 compatible models in blender]


Exporting OgreXML scenes from Blender to JME3


*  link:https://docs.google.com/leaf?id=0B9hhZie2D-fEYmRkMTYwN2YtMzQ0My00NTM4LThhOTYtZTk1MTRlYTNjYTc3&hl=en[Animation Workflow: Create Animated UV-Mapped OgreXML Models in Blender, and use them in JME3]
**  link:http://www.youtube.com/watch?v=IDHMWsu_PqA[Video: Creating Worlds with Instances in Blender]
**  <<jme3/advanced/ogrecompatibility#,OgreCompatibility>>

*Materials, Light, Shadow*


*  <<jme3/intermediate/how_to_use_materials#,How to Use Materials>>
*  <<jme3/advanced/j3m_material_files#,Creating .j3m Materials>>
*  <<jme3/advanced/material_definitions#,How to Use Material Definitions (.j3md)>>
*  <<jme3/advanced/materials_overview#,All Material Definition Properties>>
*  <<jme3/advanced/anisotropic_filtering#,Anisotropic Filtering for Textures>>
*  <<jme3/advanced/light_and_shadow#,Light and Shadow>>
*  <<jme3/advanced/jme3_shaders#,About JME3 and Shaders>>
*  <<jme3/advanced/jme3_shadernodes#,Shader Node System>>
*  <<jme3/advanced/jme3_srgbpipeline#,Gamma correction or sRGB pipeline>>
*  <<jme3/shader_video_tutorials#,Videos: jME3 introduction to shaders video tutorial series>>
*  link:http://www.youtube.com/watch?v=IuEMUFwdheE[Video: jME3 Material with Alpha Channel]

*Physics Integration*


*  <<jme3/advanced/physics#,Physics: Gravity, Collisions, Forces>>
*  <<jme3/advanced/bullet_multithreading#,Multi-Threaded Physics>>
*  <<jme3/advanced/physics_listeners#,Physics Listeners and Collision Detection>>
*  <<jme3/advanced/hinges_and_joints#,Hinges and Joints>>
*  <<jme3/advanced/walking_character#,Walking Character>>
*  <<jme3/advanced/ragdoll#,Ragdoll>>
*  <<jme3/advanced/vehicles#,Vehicles>>
*  <<jme3/advanced/ray_and_sweep_tests#,Physics Rays and Sweep Tests>>
*  link:http://www.youtube.com/watch?v=yS9a9o4WzL8[Video: Mesh Tool &amp; Physics Editor]

*Audio and Video*


*  <<jme3/advanced/audio#,Audio: Playing Sounds>>
*  <<jme3/advanced/audio_environment_presets#,Audio Environment Presets>>
*  <<jme3/advanced/video#,Video: Playing Clips>>
*  <<jme3/advanced/screenshots#,Capture Screenshots>>
*  <<jme3/advanced/capture_audio_video_to_a_file#,Capture Audio/Video to a File>>

*Post-Processor Filters and Effects*


*  <<jme3/advanced/effects_overview#,Effects and Filters Overview>>
*  <<jme3/advanced/bloom_and_glow#,Bloom and Glow>>
*  <<jme3/advanced/particle_emitters#,Particle Emitters>>

*Landscapes*


*  <<jme3/advanced/sky#,Sky>>
*  <<jme3/advanced/terrain#,Terrain (TerraMonkey)>>
*  <<jme3/advanced/endless_terraingrid#,Endless Terrain (TerrainGrid)>>
*  <<jme3/advanced/terrain_collision#,Terrain Collision>>
*  <<jme3/contributions/cubes#,Cubes - A Block World Framework>>
*  <<jme3/advanced/water#,Simple Water>>
*  <<jme3/advanced/post-processor_water#,Post-Processor Water (SeaMonkey)>>
*  <<jme3/contributions/vegetationsystem#,Vegetation System>>

*Artificial Intelligence (AI)*


*  <<jme3/advanced/recast#,Recast Navigation>>
*  <<jme3/advanced/building_recast#,Updating and building Recast Native Bindings>>
*  <<jme3/advanced/monkey_brains#,Monkey Brains>>
*  <<jme3/advanced/steer_behaviours#,Steer Behaviours>>

*Multiplayer Networking*


*  <<jme3/advanced/networking#,Multiplayer Networking (SpiderMonkey)>>
*  <<jme3/advanced/headless_server#,Headless Server>>
*  <<jme3/advanced/monkey_zone#,Monkey Zone: Multi-Player Demo Code>>
*  <<jme3/advanced/open_game_finder#,Open Game Finder>>
*  <<jme3/advanced/networking_video_tutorials#,Videos: jME3 networking video tutorial series>> 

*Entity Systems*


*  <<jme3/contributions/entitysystem#, The Zay-ES Entity System>>

*Camera*


*  <<jme3/advanced/camera#,Camera>>
*  <<jme3/advanced/making_the_camera_follow_a_character#,Making the Camera Follow a Character>>
*  <<jme3/advanced/remote-controlling_the_camera#,Remote-Controlling the Camera>>
*  <<jme3/advanced/multiple_camera_views#,Multiple Camera Views>> 

*User Interaction*


*  <<jme3/advanced/input_handling#,Input Handling>>
**  link:https://github.com/jMonkeyEngine-Contributions/Lemur/wiki/Modules[Lemur Scene Graph Tools]
***  link:http://hub.jmonkeyengine.org/t/lemur-gems-1-inputmapper-based-camera-movement/28703[Lemur Gems #1 - Input mapper based camera movement. ]
***  link:http://hub.jmonkeyengine.org/t/lemur-gems-2-inputmapper-delegates/28710[Lemur Gems #2 - Input mapper delegates]
***  link:http://hub.jmonkeyengine.org/t/lemur-gems-3-scene-picking/28713[Lemur Gems #3 - Scene picking]


*  <<jme3/advanced/combo_moves#,Combo Moves>>
*  <<jme3/advanced/mouse_picking#,Mouse Picking: Click to Select>>

*Graphical User Interface*


*  link:https://github.com/jMonkeyEngine-Contributions/Lemur[Lemur - a native jME3 GUI library with scene graph tools]
*  <<jme3/contributions/tonegodgui#,tonegodGUI - a native jME3 GUI library>>
*  <<jme3/advanced/nifty_gui#,Nifty GUI - JME3 Integration Tutorial>>
*  <<jme3/advanced/nifty_gui_best_practices#,Nifty GUI - Best Practices>>
*  <<jme3/advanced/nifty_gui_scenarios#,Nifty GUI Scenarios (Load Screen etc)>>
*  <<jme3/advanced/hud#,Head-Up Display (HUD)>>
*  <<jme3/advanced/localization#,Localization>>
*  <<jme3/advanced/swing_canvas#,Swing Canvas>>

*Custom Rendering*


*  <<jme3/advanced/jme3_forwardrendering#,Forward Rendering process>>
*  <<jme3/advanced/jme3_renderbuckets#,Render Buckets>>

*Custom Tools*


*  <<jme3/tools/navigation#,Mercator Projection Tool (Marine Navigation)>>
*  <<jme3/tools/charts#,Visualizing Maps in JME3 (Marine Charts)>>
*  <<jme3/advanced/atom_framework#,Atom framework. Mash-up of other plugins>>

*Logging and Debugging*


*  <<jme3/advanced/logging#,Logging>>
*  <<sdk/log_files#,Log Files>>
*  <<jme3/advanced/read_graphic_card_capabilites#,Read Graphic Card Capabilites>>
*  <<jme3/advanced/debugging#,Debugging with Wireframes>>

*Android specific development*


*  <<jme3/advanced/android#,Android Project Cheat Sheet>>

*Deployment*


*  <<jme3/android#,Android>>
*  <<sdk/application_deployment#,Application Deployment (using jMonkeyEngine SDK)>>
*  <<jme3/webstart#,WebStart Deployment (without jMonkeyEngine SDK)>>

*Scripting*


*  <<jme3/scripting#, Groovy scripting>>

*Virtual Reality &amp; Simulation*


*  <<jme3/virtualreality#, Virtual Reality. OpenCV &amp; JavaCV>>

*jMonkey User Contributions*


*  <<jme3/contributions#, Contributions - User made utilities to add functionality to the engine.>>

*Sample Projects*


*  <<sdk/sample_code#,JmeTests>> – The “official sample project JmeTests.
*  link:http://code.google.com/p/jmonkeyengine/source/browse/BookSamples/#BookSamples%2Fsrc[BookSamples] – Some more jME3 code samples

These code examples are not supported by the core team and we cannot guarantee their correctness:


*  <<jme3/user_examples_project#,User Examples Project>> – The jME3 users examples project.
*  <<jme3/shaderblow_project#,ShaderBlow Project>> – The jME3 users shaders project.
*  <<jme3/rise_of_mutants_project#,Rise of Mutants Project>> – Rise of Mutants Project by BigBoots Team.
*  <<jme3/atomixtuts#,atomixtuts>> – Atomix Tutorial Series
*  link:http://code.google.com/p/street-rally-3d/source/browse/#svn%2Ftrunk%2Fsrc%2Fsr3d[Street rally 3d source code] – A racing game programmed by rhymez.


== SDK Documentation


image::sdk/jmonkeyplatform-docu-2.png[jmonkeyplatform-docu-2.png,with="420",height="300",align="right"]



The <<sdk#,jMonkeyEngine SDK>> is our recommended game development environment.


*  <<sdk/comic#,jMonkeyEngine SDK - the Comic>>
*  <<sdk#,SDK Documentation (All editors, plugins, etc)>>

Here are some videos of how the jMonkeyEngine SDK makes your development team's life easier:


*  link:http://www.youtube.com/watch?v=nL7woH40i5c[Video: Importing Models]
*  link:http://www.youtube.com/watch?v=ntPAmtsQ6eM[Video: Scene Composing]
*  link:http://www.youtube.com/watch?v=DUmgAjiNzhY[Video: Dragging&amp;Dropping Nodes]
*  link:http://www.youtube.com/watch?v=Feu3-mrpolc[Video: Working with Materials]
*  link:http://www.youtube.com/watch?v=oZnssg8TBWQ[Video: WebStart Deployment]
*  link:http://www.youtube.com/watch?v=MNDiZ9YHIpM[Video: Custom Controls]
*  Read the <<sdk#,SDK documentation>> for details.


== Installation

*  <<bsd_license#,Use jMonkeyEngine 3 for free under the BSD License>>
*  <<jme3/requirements#,Software and hardware requirements>>
*  <<jme3/features#,All Supported Features>>
*  link:http://jmonkeyengine.org/wiki/doku.php#Installation[Download jMonkeyEngine 3 SDK]


== Feedback

jME3 is in development; if a tutorial doesn't work as expected, try using the latest daily build. If that doesn't “fix it then:


*  link:http://code.google.com/p/jmonkeyengine/issues/list?can=2&q=label:Component-Docs[Report a Documentation Task]
*  link:http://jmonkeyengine.org/wiki/doku.php/report_bugs[Report a Bug]
*  link:http://jmonkeyengine.org/forums[Ask (and Answer!) Questions on the Forum]
<tags><tag target="documentation" /><tag target="intro" /><tag target="intermediate" /><tag target="about" /></tags>
