@ -83,7 +83,7 @@ A CollisionResult object contains information about the second party of the coll
<p>
Assume you have two collidables a and b and want to detect collisions between them. The collision parties can be Geometries, Nodes with Geometries attached (including the rootNode), Planes, Quads, Lines, or Rays. An important restriction is that you can only collide geometry vs bounding volumes or rays. (This means for example that a must be of Type Node or Geometry and b respectively of Type BoundingBox,BoundingShpere or Ray.)
Assume you have two collidables a and b and want to detect collisions between them. The collision parties can be Geometries, Nodes with Geometries attached (including the rootNode), Planes, Quads, Lines, or Rays. An important restriction is that you can only collide geometry vs bounding volumes or rays. (This means for example that a must be of Type Node or Geometry and b respectively of Type BoundingBox,BoundingSphere or Ray.)
</p>
<p>
@ -133,7 +133,7 @@ Knowing the distance of the collisions is useful for example when you intersect
@ -199,6 +199,15 @@ The advantage of Nifty <acronym title="Graphical User Interface">GUI</acronym> i
<p>
For HUDs, you basically follow the same instructions as for creating a normal <ahref="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui.html">Nifty GUI</a>, you just don't pause the game while the HUD is up.
jME3 is similar to Swing in that for speed and efficiency all changes to the world must be made in a single update thread. This is handled automatically for you if using Controllers or simpleUpdate however whenever you pass work to another thread you need to hand the results back to the main jME3 thread before making any changes to the scene graph.
jME3 is similar to Swing in that for speed and efficiency all changes to the world must be made in a single update thread. This is happening automatically if using Controls and AppSates update metod or simpleUpdate however whenever you pass work to another thread you need to hand the results back to the main jME3 thread before making any changes to the scene graph.
</p>
<pre> public void rotateGeography(final Geography goe, final Quaternian rot) {
mainApp.enqueue(new Callable<Spatial>() {
@ -25,7 +25,7 @@ If the processing thread needs to wait or needs the return value then <code>get(
</p>
</div>
<!-- EDIT1 SECTION "The jME3 Threading Model" [1-1116] -->
<!-- EDIT1 SECTION "The jME3 Threading Model" [1-1133] -->
<h1><a>Multithreading Optimization</a></h1>
<div>
@ -47,7 +47,7 @@ Effectively, each for-loop in the main update loop might be a chance for multith
In this tutorial series, we assume that you use the jMonkeyEngine<ahref="/com/jme3/gde/core/docs/sdk.html">SDK</a>. As an intermediate or advanced Java developer, you will quickly see that, in general, you can develop jMonkeyEngine code in any integrated development environment (NetBeans IDE, Eclipse, IntelliJ) or even from the <ahref="/com/jme3/gde/core/docs/jme3/simpleapplication_from_the_commandline.html">command line</a>.
Nesta s??rie de tutoriais, n??s assumimos que voc?? usa o<ahref="/com/jme3/gde/core/docs/sdk.html">SDK</a> da jMonkeyEngine. Como um desenvolvedor Java intermedi??rio ou avan??ado, voc?? rapidamente ver?? que, em geral, voc?? pode desenvolver c??digo da jMonkeyEngine em qualquer ambiente de desenvolvimento integrado (NetBeans IDE, Eclipse, IntelliJ) ou mesmo da linha de comando.
</p>
<p>
OK, let's get ready to create our first jMonkeyEngine3 application.
OK, Vamos nos aprontar para criar nossa primeira aplica????o jMonkeyEngine3.
In the jMonkeyEngine<acronymtitle="Software Development Kit">SDK</acronym>:
Na<acronymtitle="Software Development Kit">SDK</acronym> da jMonkeyEngine:
</p>
<ol>
<li><div>Choose File???New Project??? from the main menu.</div>
<li><div>Escolha Arquivo (File)???Novo Projeto (New Project)??? do menu principal.</div>
</li>
<li><div>In the New Project wizard, select the template JME3???Basic Game. Click Next. </div>
<li><div>No assistente de Novo Projeto, selecione o modelo JME3???Jogo B??sico (Basic Game). Clique em prosseguir (Next). </div>
<ol>
<li><div>Specify a project name, e.g. "HelloWorldTutorial"</div>
<li><div>Especifique um nome de projeto, e.g. "HelloWorldTutorial"</div>
</li>
<li><div>Specify a path where to store your new project, e.g. a <code>jMonkeyProjects</code> directory in your home directory.</div>
<li><div>Especifique um caminho para armazenar seu novo projeto, e.g. um diret??rio projetosjMonkey no seu diret??rio de usu??rio.</div>
</li>
</ol>
</li>
<li><div> Click Finish. </div>
<li><div> Clique em terminar (Finish). </div>
</li>
</ol>
<p>
If you have questions, read more about <ahref="/com/jme3/gde/core/docs/sdk/project_creation.html">Project Creation</a> here.
Se voc?? tem perguntas, leia mais sobre Cria????o de Projeto aqui.
</p>
<p>
<p><div>We recommend to go through the steps yourself, as described in the tutorials. Alternatively, you can create a project based on the<ahref="/com/jme3/gde/core/docs/sdk/sample_code.html">JmeTests</a>template in the jMonkeyEngine<acronymtitle="Software Development Kit">SDK</acronym>. It will create a project that already contains the <code>jme3test.helloworld</code> samples (and many others). For example, you can use the JmeTests project to verify whether you got the solution right.
<p><div>N??s recomendamos atravessar os passos voc?? mesmo, como descrito nos tutoriais. Alternativamente, voc?? pode criar um projeto baseado no modelo<ahref="/com/jme3/gde/core/docs/sdk/sample_code.html">JmeTests</a> no <acronymtitle="Software Development Kit">SDK</acronym> da jMonkeyEngine. Isto criar?? um projeto que j?? cont??m as amostras jme3test.helloworld (e muitas outras). Por exemplo, voc?? pode usar o projeto JmeTests para verificar se voc?? tem a solu????o certa.
</div></p>
</p>
</div>
<!-- EDIT2 SECTION "Create a Project" [727-1588] -->
<h2><a>Write a SimpleApplication</a></h2>
<!-- EDIT2 SECTION "Crie um Projeto" [724-1670] -->
<h2><a>Escreva uma aplica????o de amostra</a></h2>
<div>
<p>
For this tutorial, you want to create a <code>jme3test.helloworld</code> package in your project, and create a file<code>HelloJME3.java</code>in it.
Para este tutorial, voc?? deseja criar um pacote jme3test.helloworld no seu projeto, e criar um arquivo<code>HelloJME3.java</code>nele.
</p>
<p>
In the jMonkeyEngine<acronymtitle="Software Development Kit">SDK</acronym>:
No<acronymtitle="Software Development Kit">SDK</acronym> da jMonkeyEngine:
</p>
<ol>
<li><div>Right-click the Source Packages node of your project.</div>
<li><div>D?? um clique com o bot??o direito no n?? pacotes de c??digo-fonte (Source Packages) de seu projeto.</div>
</li>
<li><div>Choose New??????Java Class to create a new file.</div>
<li><div>Escolha Novo (New)??? ???Classe Java (Java Class) para criar um novo arquivo.</div>
</li>
<li><div>Enter the class name: <code>HelloJME3</code></div>
<li><div>Digite o nome da classe: <code>HelloJME3</code></div>
</li>
<li><div>Enter the package name: <code>jme3test.helloworld</code>.</div>
<li><div>Digite o nome do pacote: <code>jme3test.helloworld</code>.</div>
</li>
<li><div> Click Finish.</div>
<li><div> Clique em Finalizar (Finish).</div>
</li>
</ol>
<p>
The<acronymtitle="Software Development Kit">SDK</acronym> creates the file HelloJME3.java for you.
O<acronymtitle="Software Development Kit">SDK</acronym> cria o arquivo HelloJME3.java para voc??.
</p>
</div>
<!-- EDIT3 SECTION "Write a SimpleApplication" [1589-2061] -->
<h2><a>Sample Code</a></h2>
<!-- EDIT3 SECTION "Escreva uma aplica????o de amostra" [1671-2240] -->
<h2><a>C??digode Amostra</a></h2>
<div>
<p>
Replace the contents of the HelloJME3.java file with the following code:
Substitua os conte??dos do arquivo HelloJME3.java com o seguinte c??digo:
</p>
<pre>package jme3test.helloworld;
@ -125,48 +125,48 @@ public class HelloJME3 extends SimpleApplication {
}</pre>
<p>
Right-click the HelloJME3 class and choose Run. If a jME3 settings dialog pops up, confirm the default settings.
D?? um clique com o bot??o direito na classe HelloJME3 class e escolha Executar (Run). Se um di??logo de configura????es da jME3 aparecer, confirme as configura????es padr??o.
</p>
<ol>
<li><div>You should see a simple window displaying a 3D cube.</div>
<li><div>Voc?? deveria ver uma janela simples exibindo um cubo 3D.</div>
</li>
<li><div> Press the WASD keys and move the mouse to navigate around.</div>
<li><div> Pressione as teclas WASD keys e mova para navegar ao redor.</div>
</li>
<li><div>Look at the FPS text and object count information in the bottom left. You will use this information during development, and you will remove it for the release. (To read the numbers correctly, consider that the 14 lines of text counts as 14 objects with 914 vertices.)</div>
<li><div>Olhe no texto do FPS e na informa????o de contagem de objeto na esquerda-fundo. Voc?? usar?? esta informa????o durante o desenvolvimento, e voc?? remover?? ela para a libera????o. (Para ler os n??meros corretamente, considere que as 14 linhas de texto contam como 14 objetos com 914 v??rtices.)</div>
</li>
<li><div> Press Escape to close the application.</div>
<li><div> Pressione Escape (Esc) para fechar a aplica????o.</div>
</li>
</ol>
<p>
Congratulations! Now let's find out how it works!
Parab??ns! Agora camos decobrir como isso funciona!
</p>
</div>
<!-- EDIT4 SECTION "Sample Code" [2062-3976] -->
<h2><a>Understanding the Code</a></h2>
<!-- EDIT4 SECTION "C??digo de Amostra" [2241-4272] -->
<h2><a>Compreendendo o c??digo</a></h2>
<div>
<p>
The code above has initialized the scene, and started the application.
O c??digo acima tem inicializado a cena, e iniciado a aplica????o.
</p>
</div>
<!-- EDIT5 SECTION "Understanding the Code" [3977-4084] -->
<h3><a>Start the SimpleApplication</a></h3>
<!-- EDIT5 SECTION "Compreendendo o c??digo" [4273-4377] -->
<h3><a>Inicie a SimpleApplication</a></h3>
<div>
<p>
Look at the first line. The HelloJME3.java class extends<code>com.jme3.app.SimpleApplication</code>.
Olhe na primeira linha. A classe HelloJME3.java estende<code>com.jme3.app.SimpleApplication</code>.
</p>
<pre>public class HelloJME3 extends SimpleApplication {
// your code...
}</pre>
<p>
Every JME3 game is an instance of <code>com.jme3.app.SimpleApplication</code>. The SimpleApplication class manages your 3D scene graph and automatically draws it to the screen ??? that is, in short, what a game engine does for you!
Todo jogo JME3 ?? uma inst??ncia de com.jme3.app.SimpleApplication. A classe SimpleApplication gerencia seu grafo de cena 3D e automaticamente desenha ele para a tela ??? isto ??, em breve, o que uma engine de jogo faz para voc??!
</p>
<p>
@ -188,7 +188,7 @@ This code opens your application window. Let's learn how you put something
</p>
</div>
<!-- EDIT6 SECTION "Start the SimpleApplication" [4085-5044] -->
<!-- EDIT6 SECTION "Inicie a SimpleApplication" [4378-5344] -->
<h3><a>Understanding the Terminology</a></h3>
<div>
<div><table>
@ -211,14 +211,14 @@ This code opens your application window. Let's learn how you put something
<td>You want the cube to appear in the center.</td><td>I create the Box at the origin = at <code>Vector3f.ZERO</code>.</td>
</tr>
</table></div>
<!-- EDIT8 TABLE [5086-5559] -->
<!-- EDIT8 TABLE [5386-5859] -->
<p>
If you are unfamiliar with the vocabulary, read more about <ahref="/com/jme3/gde/core/docs/jme3/the_scene_graph.html">the Scene Graph</a> here.
</p>
</div>
<!-- EDIT7 SECTION "Understanding the Terminology" [5045-5652] -->
<!-- EDIT7 SECTION "Understanding the Terminology" [5345-5952] -->
<h3><a>Initialize the Scene</a></h3>
<div>
@ -288,7 +288,7 @@ A typical JME3 game has the following initialization process:
</ol>
</div>
<!-- EDIT9 SECTION "Initialize the Scene" [5653-7652] -->
<!-- EDIT9 SECTION "Initialize the Scene" [5953-7952] -->
<li><div> Select the bone and go to edit mode (press tab)</div>
</li>
<li><div> Select the root bone end and press "E" to extrude the bone, then start rigging your model this way</div>
</li>
<li><div><strong>Make sure your armatures location, rotation and scale is applied (see "Model Checklist" below) before continuing</strong></div>
</li>
</ul>
</li>
<li><div> Make the armature the parent of the model</div>
<ul>
<li><div> Make sure you are back in object mode (press tab again)</div>
</li>
<li><div> First select the model object then select the armature object with shift pressed, then press Ctrl-P</div>
</li>
<li><div> When you do this, you can select how the bone groups will be mapped to the model vertices initially</div>
</li>
</ul>
</li>
<li><div> Set a new armature constraint in the model "Object Modifiers" settings and select the Armature</div>
<li><div> Each action will be an animation available via the animation control in jME after the import</div>
</li>
</ul>
</div>
<!-- EDIT5 SECTION "Animations" [1723-3497] -->
<h3><a>Model Checklist</a></h3>
<div>
<p>
Sometimes you do not create the model yourself and often times models from the web are not really made for OpenGL live rendering or not completely compatible with the bone system in jME.
</p>
<p>
To export an animated model in Blender make sure the following conditions are met:
@ -130,7 +205,7 @@ Also check out these videos and resources:
@ -11,12 +11,12 @@ iOS deployment works via cross-compilation to native iOS ARM code, there is no v
</p>
<p>
<p><div>Note that at the moment this option is in pre-alpha state and the system runs on a null renderer. This means there is no visual output. You can however use the current system to explore the options and test cross-compiling your applications.
<p><div>Note that at the moment this option is in pre-alpha state and the system runs on a null renderer. This means there is no visual or audio output. You can however use the current system to explore the options and test cross-compiling your applications.
</div></p>
</p>
</div>
<!-- EDIT1 SECTION "iOS Deployment" [1-755] -->
<!-- EDIT1 SECTION "iOS Deployment" [1-764] -->
<h3><a>Enabling iOS deployment</a></h3>
<div>
@ -25,16 +25,21 @@ To enable iOS deployment, go to the project settings and under "Application
</p>
<p>
Note: When you do this for the first time or any time that the Avian library and OpenJDK is updated, they will be extracted to your <acronymtitle="Software Development Kit">SDK</acronym> settings folder, wait until it has been extracted before building an iOS-enabled project.
After enabling deployment, a new <code>ios</code> directory is created in the project root that contains a <code>project</code> and a <code>src</code> folder. The <code>ios/project</code> folder contains an Xcode project that you will use to build and run the final iOS application for both iPhone and iOS. The <code>ios/src</code> folder contains java and native source files for bridging iOS and native code, you can add .java and .m files with your own iOS code here.
</p>
<p>
<p><div>When you enable iOS deployment for the first time or any time that the Avian library and OpenJDK is updated, they will be extracted to your <acronymtitle="Software Development Kit">SDK</acronym> settings folder, wait until it has been extracted before building an iOS-enabled project.
@ -51,16 +56,19 @@ After the iOS classpath has been created the avian compiler is used to create a
</p>
</div>
<!-- EDIT3 SECTION "Building the iOS binaries" [1615-2436] -->
<!-- EDIT3 SECTION "Building the iOS binaries" [1686-2507] -->
<h3><a>Running and deploying the application</a></h3>
<div>
<p>
To run the application, open the Xcode project in Xcode and press the run button. You can make changes to the UI and native invocation classes in the Xcode project as well. From here you can also deploy the application to your devices or the App Store.
To run the application, open the Xcode project under <code>ios/project</code> in Xcode and press the run button. You can make changes to the UI and native invocation classes in the Xcode project as well. From here you can also deploy the application to your devices or the App Store.
<p><div>Note that you should also adapt the project settings like application name and registration package in Xcode before deploying the final application.
</div></p>
</p>
</div>
<!-- EDIT4 SECTION "Running and deploying the application" [2437-2738] -->
<!-- EDIT4 SECTION "Running and deploying the application" [2508-2996] -->
<h3><a>Creating native and java code for iOS</a></h3>
<div>
@ -73,7 +81,7 @@ The JmeAppHarness.java class is initialized and called from native code through
</p>
<p>
Effectively native code can reside in both the Xcode project and in the <code>ios/src</code> folder. To keep the dependencies clean and make code reusable you should try to put generic native code that does not depend on the Xcode project in the <code>ios/src</code> folder.
Effectively native code can reside in both the Xcode project and in the <code>ios/src</code> folder. To keep the dependencies clean and make code reusable you should try to put generic native code that does not depend on the Xcode project in the <code>ios/src</code> folder. You can also mix and match ARC and non-ARC code through this by converting the main project to use ARC and putting code with manual memory management in the <code>ios/src</code> folder.
</p>
<p>
@ -89,5 +97,5 @@ Java code for iOS should be in the <code>ios/src</code> folder as well for clean
</span></div>
</div>
<!-- EDIT5 SECTION "Creating native and java code for iOS" [2739-] -->
<!-- EDIT5 SECTION "Creating native and java code for iOS" [2997-] -->
@ -26,8 +26,6 @@ Creating the plugin project (in jMonkeyEngine <acronym title="Software Developme
</li>
<li><div> Enter a "Module Display Name" for your plugin like "My Library"</div>
</li>
<li><div> Check the "Generate <acronymtitle="Extensible Markup Language">XML</acronym> Layer" checkbox</div>
</li>
<li><div> Press Finish</div>
</li>
</ul>
@ -71,8 +69,11 @@ You will notice a new file "MyLibrary.xml" is created in the plugins b
</p>
<p>
After you are done, you can <ahref="/com/jme3/gde/core/docs/sdk/development/setup#jmonkeyengine_sdk_contributions_update_center.html">contribute the plugin in the jMonkeyEngine SDK contribution update center</a>.
Note that the files in the release folder are <strong>not</strong> automatically updated when the library changes, you have to pack and replace the jar and zip files manually. See the build script extension in the link below on how you can make your module build script do that automatically.
</p>
<p>
After you are done, you can <ahref="/com/jme3/gde/core/docs/sdk/development/setup#jmonkeyengine_sdk_contributions_update_center.html">contribute the plugin in the jMonkeyEngine SDK contribution update center</a>.
@ -50,7 +50,7 @@ Most "files" that you encounter in the <acronym title="Software Develo
<div>
<p>
When you add a new file type for a model format or other asset file that can be loaded in jME3 you can start by using new file type template (New File???Module Development???File Type). Change the DataObject to extend AssetDataObject (general), SpatialAssetDataObject (some type of model) or BinaryModelDataObject (basically a j3o savable file). And possibly override the loadAsset and saveAsset methods which are used by the AssetData object.
When you add a new file type for a model format or other asset file that can be loaded in jME3 you can start by using new file type template (New File???Module Development???File Type). Change the DataObject to extend AssetDataObject (general), SpatialAssetDataObject (some type of model) or BinaryModelDataObject (basically a j3o savable file). And possibly override the loadAsset and saveAsset methods which are used by the AssetData object to return the correct AssetKey type (needed for import properties to work).
</p>
<pre>public class BlenderDataObject extends SpatialAssetDataObject {
@ -13,7 +13,7 @@ If your plugin brings in its own SceneGraph objects you can still have them work
</p>
<p>
You will have to create your own class that extends org.openide.nodes.Node and implement the interface com.jme3.gde.core.sceneexplorer.nodes.SceneExplorerNode. Then you register that class by adding
If you want to support special properties of your objects that are not exposed by the <acronymtitle="Software Development Kit">SDK</acronym> automatically, you will have to create your own class that extends org.openide.nodes.Node and implement the interface com.jme3.gde.core.sceneexplorer.nodes.AbstractSceneExplorerNode. Then you register that class by adding
@ -22,7 +22,7 @@ You will have to create your own class that extends org.openide.nodes.Node and i
</p>
<p>
Theres also AbstractSceneExplorerNode which brings some other useful features you might want to include like automatic creation of properly threaded properties etc. JmeSpatial for example bases on it. A simple SceneExplorerNode example for an object extending Spatial would be JmeGeometry (see below). Editors for special variable types can be added using the SceneExplorerPropertyEditor interface, which can be registered as a ServiceProvider as well.
AbstractSceneExplorerNode brings some other useful features you might want to include like automatic creation of properly threaded properties etc. JmeSpatial for example bases on it. A simple SceneExplorerNode example for an object extending Spatial would be JmeGeometry (see below). Editors for special variable types can be added using the SceneExplorerPropertyEditor interface, which can be registered as a ServiceProvider as well.
</p>
<p>
@ -35,7 +35,7 @@ The SceneExplorerNode can be used for Spatial and Control type objects.
</ul>
</div>
<!-- EDIT2 SECTION "Adding Node types to SceneExplorer" [33-1415] -->
<!-- EDIT2 SECTION "Adding Node types to SceneExplorer" [33-1510] -->
@ -36,12 +36,12 @@ Note that the creation of a Module Suite is only necessary if you want to upload
</li>
<li><div> To use core <acronymtitle="Software Development Kit">SDK</acronym> or jME3 functions, add "<acronymtitle="Software Development Kit">SDK</acronym> Core" and "<acronymtitle="Software Development Kit">SDK</acronym> Engine" via "Module Properties???Library???Add Dependency"</div>
</li>
<li><div> Write your plugin </div>
<li><div> Write your plugin (e.g. <ahref="/com/jme3/gde/core/docs/sdk/development.html">create a new editor</a> or <ahref="/com/jme3/gde/core/docs/sdk/development/extension_library.html">wrap a jar library</a>)</div>
</li>
</ul>
</div>
<!-- EDIT2 SECTION "Using jMonkeyEngine SDK for development" [179-1286] -->
<!-- EDIT2 SECTION "Using jMonkeyEngine SDK for development" [179-1392] -->
@ -130,6 +130,10 @@ And thats it, from now on each time you commit changes to your module it will be
<h4><a>Building library jar files on the server</a></h4>
<div>
<p>
You can just build your library locally and update and commit the jar file and javadoc/sources zip files to the contrib repo, the users plugins will automatically be updated with the new jar files. You can however also build the whole library project on the server.
</p>
<p>
As only the module project is being built on the server, any projects that create the actual jar files for library plugins ("normal" projects from the <acronymtitle="Software Development Kit">SDK</acronym>/NetBeans) have to be built from the module build file. To do that simply add the following ant targets to the module build file:
@ -147,5 +151,5 @@ As only the module project is being built on the server, any projects that creat
@ -28,25 +28,15 @@ Mac users navigate to <code>Contents/Resources/jmonkeyplatform/etc/</code>.</div
</div>
<!-- EDIT2 SECTION "Specifying the JDK location" [48-766] -->
<h3><a>Preferences and Settings</a></h3>
<h3><a>Graphics Card Driver</a></h3>
<div>
<p>
To completely remove and/or reinstall the <acronymtitle="Software Development Kit">SDK</acronym> it is vital that the settings folder is deleted too. The location can be seen through the "about" menu and is as following for the different<acronymtitle="Operating System">OS</acronym>'s:
<strong>On Windows and Linux make sure you have the latest driver installed. Make sure its the one supplied by the card manufacturer and not just the<acronymtitle="Operating System">OS</acronym>-default one.</strong>
@ -56,15 +46,6 @@ On some Linux and Windows systems, the <acronym title="Software Development Kit"
</div>
<h4><a>Graphics Driver</a></h4>
<div>
<p>
On Windows and Linux make sure you have the latest driver installed. Make sure its the one supplied by the card manufacturer and not just the <acronymtitle="Operating System">OS</acronym>-default one.
</p>
</div>
<h4><a>Heavyweight Canvas</a></h4>
<div>
@ -98,16 +79,35 @@ Compiz on Linux might cause issues, if you set its rendering quality to "me
If you have problems updating the <acronymtitle="Software Development Kit">SDK</acronym>, try deleting all files from <code>jmonkeyplatform/update/download</code> and/or <code>[settings folder]/update/download</code> depending on your system (look above for the settings folder location).
If you have problems updating the <acronymtitle="Software Development Kit">SDK</acronym>, try deleting all files from <code>jmonkeyplatform/update/download</code> and/or <code>[settings folder]/update/download</code> depending on your system (see below for the settings folder location).
To completely remove and/or reinstall the <acronymtitle="Software Development Kit">SDK</acronym> it is vital that the settings folder is deleted too. The location can be seen through the "about" menu and is as following for the different <acronymtitle="Operating System">OS</acronym>'s: