Source is in: jme3test.android, only java classes and the android manifest.xml, not buildable without your own android project git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8239 75d07b2b-3a1a-0410-a2c5-0572b91ccdca3.0
parent
3402f51824
commit
7d315f04d9
@ -1,65 +0,0 @@ |
||||
package jme3test.android; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
import android.app.Activity; |
||||
import android.os.Bundle; |
||||
|
||||
import android.content.Intent; |
||||
|
||||
import android.view.View; |
||||
import android.view.MenuInflater; |
||||
import android.view.Menu; |
||||
import android.view.MenuItem; |
||||
import android.view.MotionEvent; |
||||
|
||||
import android.widget.TextView; |
||||
import android.widget.Button; |
||||
import android.widget.EditText; |
||||
import android.widget.CheckBox; |
||||
import android.widget.TableLayout; |
||||
import android.widget.LinearLayout; |
||||
import android.widget.TableRow; |
||||
|
||||
import android.hardware.SensorManager; |
||||
//import android.hardware.SensorListener;
|
||||
|
||||
import jme3test.android.AndroidActivity; |
||||
|
||||
import java.net.URI; |
||||
|
||||
public class AboutActivity extends Activity { |
||||
|
||||
private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger(AboutActivity.class.getName()); |
||||
|
||||
@Override |
||||
public void onCreate(Bundle savedInstanceState) { |
||||
logger.info("onCreate(" + savedInstanceState + ")"); |
||||
|
||||
super.onCreate(savedInstanceState); |
||||
|
||||
//setContentView(R.layout.about);
|
||||
} |
||||
|
||||
@Override |
||||
public void onDestroy() { |
||||
logger.info("onDestroy()"); |
||||
super.onDestroy(); |
||||
} |
||||
|
||||
@Override |
||||
protected void onResume() { |
||||
super.onResume(); |
||||
} |
||||
|
||||
@Override |
||||
protected void onStart() { |
||||
super.onStart(); |
||||
} |
||||
|
||||
@Override |
||||
protected void onStop() { |
||||
super.onStop(); |
||||
} |
||||
} |
@ -1,149 +0,0 @@ |
||||
|
||||
/* |
||||
* |
||||
* Android Activity for OpenGL ES2 based tests |
||||
* requires Android 2.2+ |
||||
* |
||||
* created: Mon Nov 8 00:08:07 EST 2010 |
||||
*/ |
||||
package jme3test.android; |
||||
|
||||
import android.app.Activity; |
||||
import android.content.res.Resources; |
||||
import android.opengl.GLSurfaceView; |
||||
import android.os.Bundle; |
||||
import android.view.Window; |
||||
import android.view.WindowManager; |
||||
|
||||
import com.jme3.system.AppSettings; |
||||
import com.jme3.system.JmeSystem; |
||||
import com.jme3.system.android.OGLESContext; |
||||
|
||||
import com.jme3.app.Application; |
||||
import com.jme3.app.SimpleApplication; |
||||
|
||||
public class AndroidActivity extends Activity { |
||||
|
||||
private final static java.util.logging.Logger logger = java.util.logging.Logger.getLogger(AndroidActivity.class.getName()); |
||||
private OGLESContext ctx; |
||||
private GLSurfaceView view; |
||||
private boolean useVA = false; |
||||
private boolean verboseLogging = false; |
||||
|
||||
@Override |
||||
public void onCreate(Bundle savedInstanceState) { |
||||
|
||||
super.onCreate(savedInstanceState); |
||||
|
||||
JmeSystem.setResources(getResources()); |
||||
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE); |
||||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, |
||||
WindowManager.LayoutParams.FLAG_FULLSCREEN); |
||||
|
||||
AppSettings settings = new AppSettings(true); |
||||
|
||||
String testClassName = getIntent().getStringExtra(AndroidActivity.class.getName() + ".TEST_CLASS_NAME"); |
||||
|
||||
logger.info("test class name: [" + testClassName + "]"); |
||||
|
||||
String appClass = (testClassName != null ? testClassName : "jme3test.android.SimpleTexturedTest"); |
||||
|
||||
useVA = getIntent().getBooleanExtra(AndroidActivity.class.getName() + ".USE_VA", false); |
||||
|
||||
logger.info("USE_VA -> [" + useVA + "]"); |
||||
|
||||
settings.putBoolean("USE_VA", useVA); |
||||
|
||||
verboseLogging = getIntent().getBooleanExtra(AndroidActivity.class.getName() + ".VERBOSE_LOGGING", false); |
||||
|
||||
settings.putBoolean("VERBOSE_LOGGING", verboseLogging); |
||||
|
||||
Application app = null; |
||||
|
||||
try { |
||||
Class<? extends Application> clazz = (Class<? extends Application>) Class.forName( |
||||
appClass); |
||||
|
||||
app = clazz.newInstance(); |
||||
/* |
||||
app = (Application) java.lang.reflect.Proxy.newProxyInstance( |
||||
this.getClass().getClassLoader(), |
||||
new Class[] {Class.forName(appClass)}, |
||||
|
||||
new java.lang.reflect.InvocationHandler() { |
||||
public Object invoke(Object proxy, java.lang.reflect.Method method, Object[] args) throws Throwable { |
||||
if ( |
||||
method.getName().equals("loadFPSText") || |
||||
method.getName().equals("loadStatsView") |
||||
) { |
||||
logger.info("ignoring method: [" + method + "]"); |
||||
return null; |
||||
} |
||||
|
||||
return method.invoke(proxy, args); |
||||
} |
||||
} |
||||
); |
||||
*/ |
||||
|
||||
|
||||
if (app instanceof SimpleApplication) { |
||||
((SimpleApplication) app).setShowSettings(false); |
||||
} |
||||
|
||||
logger.info("setting settings ..."); |
||||
app.setSettings(settings); |
||||
logger.info("setting settings ... done."); |
||||
|
||||
logger.info("starting app ..."); |
||||
app.start(); |
||||
logger.info("starting app ... done."); |
||||
|
||||
if (app instanceof SimpleApplication) { |
||||
((SimpleApplication) app).getGuiNode().detachAllChildren(); |
||||
} |
||||
|
||||
logger.info("creating context ..."); |
||||
ctx = (OGLESContext) app.getContext(); |
||||
logger.info("creating context ... done."); |
||||
|
||||
ctx.setSettings(settings); |
||||
|
||||
logger.info("creating view ..."); |
||||
view = ctx.createView(this); |
||||
logger.info("creating view ... done."); |
||||
|
||||
logger.info("setting content view ..."); |
||||
setContentView(view); |
||||
logger.info("setting content done ..."); |
||||
|
||||
} catch (Throwable exception) { |
||||
logger.warning("exception: " + exception); |
||||
exception.printStackTrace(System.err); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
protected void onResume() { |
||||
logger.info("onResume ..."); |
||||
super.onResume(); |
||||
logger.info("view.onResume ..."); |
||||
|
||||
view.onResume(); |
||||
|
||||
logger.info("view.onResume ... done."); |
||||
logger.info("onResume ... done."); |
||||
} |
||||
|
||||
@Override |
||||
protected void onPause() { |
||||
super.onPause(); |
||||
view.onPause(); |
||||
} |
||||
// @Override
|
||||
// protected void onDestroy(){
|
||||
// super.onDestroy();
|
||||
// Debug.stopMethodTracing();
|
||||
// }
|
||||
} |
@ -0,0 +1,29 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||
package="com.jme3.androiddemo" |
||||
android:versionCode="6" |
||||
android:versionName="1.2.2"> |
||||
|
||||
<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8" /> |
||||
|
||||
<!-- Tell the system that you need ES 2.0. --> |
||||
<uses-feature android:glEsVersion="0x00020000" android:required="true" /> |
||||
|
||||
<!-- Tell the system that you need distinct touches (for the zoom gesture). --> |
||||
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="true" /> |
||||
|
||||
<application android:icon="@drawable/icon" android:label="@string/app_name"> |
||||
<activity android:name=".DemoMainActivity" |
||||
android:label="@string/app_name"> |
||||
<intent-filter> |
||||
<action android:name="android.intent.action.MAIN" /> |
||||
<category android:name="android.intent.category.LAUNCHER" /> |
||||
</intent-filter> |
||||
</activity> |
||||
|
||||
<activity android:name=".DemoAndroidHarness" |
||||
android:label="@string/app_name"> |
||||
</activity> |
||||
|
||||
</application> |
||||
</manifest> |
@ -0,0 +1,55 @@ |
||||
package jme3test.android; |
||||
|
||||
import android.content.pm.ActivityInfo; |
||||
import android.os.Bundle; |
||||
|
||||
import com.jme3.app.AndroidHarness; |
||||
import com.jme3.system.android.AndroidConfigChooser.ConfigType; |
||||
|
||||
public class DemoAndroidHarness extends AndroidHarness |
||||
{ |
||||
@Override |
||||
public void onCreate(Bundle savedInstanceState) |
||||
{ |
||||
// Set the application class to run
|
||||
// First Extract the bundle from intent
|
||||
Bundle bundle = getIntent().getExtras(); |
||||
|
||||
//Next extract the values using the key as
|
||||
appClass = bundle.getString("APPCLASSNAME"); |
||||
|
||||
|
||||
String eglConfig = bundle.getString("EGLCONFIG"); |
||||
if (eglConfig.equals("Best")) |
||||
{ |
||||
eglConfigType = ConfigType.BEST; |
||||
} |
||||
else if (eglConfig.equals("Legacy")) |
||||
{ |
||||
eglConfigType = ConfigType.LEGACY; |
||||
} |
||||
else |
||||
{ |
||||
eglConfigType = ConfigType.FASTEST; |
||||
} |
||||
|
||||
|
||||
if (bundle.getBoolean("VERBOSE")) |
||||
{ |
||||
eglConfigVerboseLogging = true; |
||||
} |
||||
else |
||||
{ |
||||
eglConfigVerboseLogging = false; |
||||
} |
||||
|
||||
|
||||
exitDialogTitle = "Close Demo?"; |
||||
exitDialogMessage = "Press Yes"; |
||||
|
||||
screenOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; |
||||
|
||||
super.onCreate(savedInstanceState); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,73 @@ |
||||
package jme3test.android; |
||||
|
||||
import java.util.List; |
||||
|
||||
import android.content.Context; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.view.View.OnClickListener; |
||||
import android.widget.BaseAdapter; |
||||
import android.widget.TextView; |
||||
|
||||
/** |
||||
* The view adapter which gets a list of LaunchEntries and displaqs them |
||||
* @author larynx |
||||
* |
||||
*/ |
||||
public class DemoLaunchAdapter extends BaseAdapter implements OnClickListener |
||||
{ |
||||
|
||||
private Context context; |
||||
|
||||
private List<DemoLaunchEntry> listDemos; |
||||
|
||||
public DemoLaunchAdapter(Context context, List<DemoLaunchEntry> listDemos) { |
||||
this.context = context; |
||||
this.listDemos = listDemos; |
||||
} |
||||
|
||||
public int getCount() { |
||||
return listDemos.size(); |
||||
} |
||||
|
||||
public Object getItem(int position) { |
||||
return listDemos.get(position); |
||||
} |
||||
|
||||
public long getItemId(int position) { |
||||
return position; |
||||
} |
||||
|
||||
public View getView(int position, View convertView, ViewGroup viewGroup) { |
||||
DemoLaunchEntry entry = listDemos.get(position); |
||||
if (convertView == null) { |
||||
LayoutInflater inflater = (LayoutInflater) context |
||||
.getSystemService(Context.LAYOUT_INFLATER_SERVICE); |
||||
convertView = inflater.inflate(R.layout.demo_row, null); |
||||
} |
||||
TextView tvDemoName = (TextView) convertView.findViewById(R.id.tvDemoName); |
||||
tvDemoName.setText(entry.getName()); |
||||
|
||||
TextView tvDescription = (TextView) convertView.findViewById(R.id.tvDescription); |
||||
tvDescription.setText(entry.getDescription()); |
||||
|
||||
return convertView; |
||||
} |
||||
|
||||
@Override |
||||
public void onClick(View view) { |
||||
DemoLaunchEntry entry = (DemoLaunchEntry) view.getTag(); |
||||
|
||||
|
||||
|
||||
|
||||
} |
||||
|
||||
private void showDialog(DemoLaunchEntry entry) { |
||||
// Create and show your dialog
|
||||
// Depending on the Dialogs button clicks delete it or do nothing
|
||||
} |
||||
|
||||
} |
||||
|
@ -0,0 +1,38 @@ |
||||
package jme3test.android; |
||||
|
||||
/** |
||||
* Name (=appClass) and Description of one demo launch inside the main apk |
||||
* @author larynx |
||||
* |
||||
*/ |
||||
public class DemoLaunchEntry |
||||
{ |
||||
private String name; |
||||
private String description; |
||||
|
||||
/** |
||||
* @param name |
||||
* @param description |
||||
*/ |
||||
public DemoLaunchEntry(String name, String description) { |
||||
super(); |
||||
this.name = name; |
||||
this.description = description; |
||||
} |
||||
|
||||
public String getName() { |
||||
return name; |
||||
} |
||||
public void setName(String name) { |
||||
this.name = name; |
||||
} |
||||
public String getDescription() { |
||||
return description; |
||||
} |
||||
public void setDescription(String description) { |
||||
this.description = description; |
||||
} |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,136 @@ |
||||
package jme3test.android; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
import android.app.Activity; |
||||
import android.content.Intent; |
||||
import android.content.pm.ActivityInfo; |
||||
import android.os.Bundle; |
||||
import android.view.View; |
||||
import android.widget.AdapterView; |
||||
import android.widget.AdapterView.OnItemSelectedListener; |
||||
import android.widget.ArrayAdapter; |
||||
import android.widget.ListView; |
||||
import android.widget.Spinner; |
||||
import android.widget.Toast; |
||||
import android.widget.AdapterView.OnItemClickListener; |
||||
|
||||
public class DemoMainActivity extends Activity { |
||||
|
||||
/** Called when the activity is first created. */ |
||||
@Override |
||||
public void onCreate(Bundle savedInstanceState) { |
||||
super.onCreate(savedInstanceState); |
||||
setContentView(R.layout.main); |
||||
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); |
||||
|
||||
final Intent myIntent = new Intent(DemoMainActivity.this, DemoAndroidHarness.class); |
||||
|
||||
//Next create the bundle and initialize it
|
||||
final Bundle bundle = new Bundle(); |
||||
|
||||
|
||||
final Spinner spinnerConfig = (Spinner) findViewById(R.id.spinnerConfig); |
||||
ArrayAdapter<CharSequence> adapterDropDownConfig = ArrayAdapter.createFromResource( |
||||
this, R.array.eglconfig_array, android.R.layout.simple_spinner_item); |
||||
adapterDropDownConfig.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
||||
spinnerConfig.setAdapter(adapterDropDownConfig); |
||||
|
||||
|
||||
spinnerConfig.setOnItemSelectedListener(new OnItemSelectedListener() { |
||||
|
||||
@Override |
||||
public void onItemSelected(AdapterView<?> parent, |
||||
View view, int pos, long id) { |
||||
Toast.makeText(parent.getContext(), "Set EGLConfig " + |
||||
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); |
||||
//Add the parameters to bundle as
|
||||
bundle.putString("EGLCONFIG", parent.getItemAtPosition(pos).toString()); |
||||
} |
||||
|
||||
public void onNothingSelected(AdapterView parent) { |
||||
// Do nothing.
|
||||
} |
||||
}); |
||||
|
||||
|
||||
final Spinner spinnerLogging = (Spinner) findViewById(R.id.spinnerLogging); |
||||
ArrayAdapter<CharSequence> adapterDropDownLogging = ArrayAdapter.createFromResource( |
||||
this, R.array.logging_array, android.R.layout.simple_spinner_item); |
||||
adapterDropDownLogging.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
||||
spinnerLogging.setAdapter(adapterDropDownLogging); |
||||
|
||||
|
||||
spinnerLogging.setOnItemSelectedListener(new OnItemSelectedListener() { |
||||
|
||||
@Override |
||||
public void onItemSelected(AdapterView<?> parent, |
||||
View view, int pos, long id) { |
||||
Toast.makeText(parent.getContext(), "Set Logging " + |
||||
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); |
||||
|
||||
//Add the parameters to bundle as
|
||||
bundle.putBoolean("VERBOSE", parent.getItemAtPosition(pos).toString().equals("Verbose")); |
||||
} |
||||
|
||||
public void onNothingSelected(AdapterView parent) { |
||||
// Do nothing.
|
||||
} |
||||
}); |
||||
|
||||
|
||||
ListView list = (ListView) findViewById(R.id.ListView01); |
||||
list.setClickable(true); |
||||
|
||||
final List<DemoLaunchEntry> listDemos = new ArrayList<DemoLaunchEntry>(); |
||||
|
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.SimpleTexturedTest", "An field of textured boxes rotating")); |
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.TestSkyLoadingLagoon", "Sky box demonstration with jpg")); |
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.TestSkyLoadingPrimitives", "Sky box demonstration with png")); |
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.TestBumpModel", "Shows a bump mapped well with a moving light")); |
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.TestNormalMapping", "Shows a normal mapped sphere")); |
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.TestUnshadedModel", "Shows an unshaded model of the sphere")); |
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.TestMovingParticle", "Demonstrates particle effects")); |
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.TestAmbient", "Positional sound - You sit in a dark cave under a waterfall")); |
||||
|
||||
//listDemos.add(new DemoLaunchEntry("jme3test.effect.TestParticleEmitter", ""));
|
||||
//listDemos.add(new DemoLaunchEntry("jme3test.effect.TestPointSprite", ""));
|
||||
//listDemos.add(new DemoLaunchEntry("jme3test.light.TestLightRadius", ""));
|
||||
listDemos.add(new DemoLaunchEntry("jme3test.android.TestMotionPath", "Shows cinematics - see a teapot on its journey - model loading needs a long time - just let it load, looks like freezed")); |
||||
//listDemos.add(new DemoLaunchEntry("com.jme3.androiddemo.TestSimpleWater", "Post processors - not working correctly due to missing framebuffer support, looks interresting :)"));
|
||||
//listDemos.add(new DemoLaunchEntry("jme3test.model.TestHoverTank", ""));
|
||||
//listDemos.add(new DemoLaunchEntry("jme3test.niftygui.TestNiftyGui", ""));
|
||||
//listDemos.add(new DemoLaunchEntry("com.jme3.androiddemo.TestNiftyGui", ""));
|
||||
|
||||
|
||||
DemoLaunchAdapter adapterList = new DemoLaunchAdapter(this, listDemos); |
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() { |
||||
|
||||
@Override |
||||
public void onItemClick(AdapterView<?> arg0, View view, int position, long index) { |
||||
System.out.println("onItemClick"); |
||||
showToast(listDemos.get(position).getName()); |
||||
|
||||
|
||||
//Add the parameters to bundle as
|
||||
bundle.putString("APPCLASSNAME", listDemos.get(position).getName()); |
||||
|
||||
//Add this bundle to the intent
|
||||
myIntent.putExtras(bundle); |
||||
|
||||
//Start the JME3 app harness activity
|
||||
DemoMainActivity.this.startActivity(myIntent); |
||||
|
||||
} |
||||
}); |
||||
|
||||
list.setAdapter(adapterList); |
||||
} |
||||
|
||||
private void showToast(String message) { |
||||
Toast.makeText(this, message, Toast.LENGTH_LONG).show(); |
||||
} |
||||
} |
||||
|
@ -0,0 +1,46 @@ |
||||
/* AUTO-GENERATED FILE. DO NOT MODIFY. |
||||
* |
||||
* This class was automatically generated by the |
||||
* aapt tool from the resource data it found. It |
||||
* should not be modified by hand. |
||||
*/ |
||||
|
||||
package jme3test.android; |
||||
|
||||
public final class R { |
||||
public static final class array { |
||||
public static final int eglconfig_array=0x7f060000; |
||||
public static final int logging_array=0x7f060001; |
||||
} |
||||
public static final class attr { |
||||
} |
||||
public static final class drawable { |
||||
public static final int icon=0x7f020000; |
||||
} |
||||
public static final class id { |
||||
public static final int LinearLayout01=0x7f070000; |
||||
public static final int LinearLayout02=0x7f070002; |
||||
public static final int ListView01=0x7f070009; |
||||
public static final int TextView01=0x7f070003; |
||||
public static final int spinnerConfig=0x7f070006; |
||||
public static final int spinnerLogging=0x7f070008; |
||||
public static final int tvConfig=0x7f070005; |
||||
public static final int tvDemoName=0x7f070001; |
||||
public static final int tvDescription=0x7f070004; |
||||
public static final int tvLogging=0x7f070007; |
||||
} |
||||
public static final class layout { |
||||
public static final int demo_row=0x7f030000; |
||||
public static final int main=0x7f030001; |
||||
} |
||||
public static final class raw { |
||||
public static final int oddbounce=0x7f040000; |
||||
} |
||||
public static final class string { |
||||
public static final int app_name=0x7f050000; |
||||
public static final int eglconfig_prompt=0x7f050001; |
||||
public static final int eglconfig_text=0x7f050002; |
||||
public static final int logging_prompt=0x7f050003; |
||||
public static final int logging_text=0x7f050004; |
||||
} |
||||
} |
@ -1,40 +0,0 @@ |
||||
package jme3test.android; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.asset.TextureKey; |
||||
import com.jme3.material.Material; |
||||
import com.jme3.math.Transform; |
||||
import com.jme3.scene.Geometry; |
||||
import com.jme3.scene.shape.Sphere; |
||||
import com.jme3.texture.Texture; |
||||
import jme3tools.converters.model.ModelConverter; |
||||
|
||||
public class Test extends SimpleApplication { |
||||
|
||||
@Override |
||||
public void simpleInitApp() { |
||||
Sphere s = new Sphere(8, 8, .5f); |
||||
Geometry geom = new Geometry("sphere", s); |
||||
// ModelConverter.optimize(geom);
|
||||
|
||||
Material mat = new Material(assetManager, "plain_texture.j3md"); |
||||
Texture tex = assetManager.loadTexture(new TextureKey("monkey.j3i")); |
||||
mat.setTexture("ColorMap", tex); |
||||
// geom.setMaterial(mat);
|
||||
|
||||
for (int y = -1; y < 2; y++) { |
||||
for (int x = -1; x < 2; x++) { |
||||
Geometry geomClone = new Geometry("geom", s); |
||||
geomClone.setMaterial(mat); |
||||
geomClone.setLocalTranslation(x, y, 0); |
||||
|
||||
Transform t = geom.getLocalTransform().clone(); |
||||
Transform t2 = geomClone.getLocalTransform().clone(); |
||||
t.combineWithParent(t2); |
||||
geomClone.setLocalTransform(t); |
||||
|
||||
rootNode.attachChild(geomClone); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,106 @@ |
||||
/* |
||||
* Copyright (c) 2009-2010 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
|
||||
package jme3test.android; |
||||
|
||||
import android.app.Activity; |
||||
import android.media.AudioManager; |
||||
import android.media.SoundPool; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.asset.DesktopAssetManager; |
||||
import com.jme3.audio.AudioNode; |
||||
import com.jme3.audio.Listener; |
||||
//import com.jme3.audio.PointAudioSource;
|
||||
import com.jme3.math.FastMath; |
||||
import com.jme3.math.Vector3f; |
||||
import com.jme3.system.AppSettings; |
||||
import com.jme3.system.JmeSystem; |
||||
|
||||
public class TestAmbient extends SimpleApplication { |
||||
|
||||
private AudioNode footsteps, beep; |
||||
private AudioNode nature, waves; |
||||
|
||||
SoundPool soundPool; |
||||
|
||||
// private PointAudioSource waves;
|
||||
private float time = 0; |
||||
private float nextTime = 1; |
||||
|
||||
public static void main(String[] args){ |
||||
TestAmbient test = new TestAmbient(); |
||||
test.start(); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void simpleInitApp() |
||||
{ |
||||
/* |
||||
footsteps = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Foot steps.ogg", true); |
||||
|
||||
footsteps.setPositional(true); |
||||
footsteps.setLocalTranslation(new Vector3f(4, -1, 30)); |
||||
footsteps.setMaxDistance(5); |
||||
footsteps.setRefDistance(1); |
||||
footsteps.setLooping(true); |
||||
|
||||
beep = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Beep.ogg", true); |
||||
beep.setVolume(3); |
||||
beep.setLooping(true); |
||||
|
||||
audioRenderer.playSourceInstance(footsteps); |
||||
audioRenderer.playSource(beep); |
||||
*/ |
||||
|
||||
waves = new AudioNode(audioRenderer, assetManager, "Sound/Environment/Ocean Waves.ogg", true); |
||||
waves.setPositional(true); |
||||
|
||||
nature = new AudioNode(audioRenderer, assetManager, "Sound/Environment/Nature.ogg", true); |
||||
|
||||
waves.setLocalTranslation(new Vector3f(4, -1, 30)); |
||||
waves.setMaxDistance(5); |
||||
waves.setRefDistance(1); |
||||
|
||||
nature.setVolume(3); |
||||
audioRenderer.playSourceInstance(waves); |
||||
audioRenderer.playSource(nature); |
||||
} |
||||
|
||||
@Override |
||||
public void simpleUpdate(float tpf) |
||||
{ |
||||
|
||||
} |
||||
|
||||
} |
@ -0,0 +1,96 @@ |
||||
/* |
||||
* Copyright (c) 2009-2010 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
|
||||
package jme3test.android; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.asset.AssetKey; |
||||
import com.jme3.light.AmbientLight; |
||||
import com.jme3.light.DirectionalLight; |
||||
import com.jme3.light.PointLight; |
||||
import com.jme3.material.Material; |
||||
import com.jme3.math.ColorRGBA; |
||||
import com.jme3.math.FastMath; |
||||
import com.jme3.math.Vector3f; |
||||
import com.jme3.scene.Geometry; |
||||
import com.jme3.scene.Spatial; |
||||
import com.jme3.scene.plugins.ogre.OgreMeshKey; |
||||
import com.jme3.scene.shape.Sphere; |
||||
import com.jme3.util.TangentBinormalGenerator; |
||||
|
||||
public class TestBumpModel extends SimpleApplication { |
||||
|
||||
float angle; |
||||
PointLight pl; |
||||
Spatial lightMdl; |
||||
|
||||
public static void main(String[] args){ |
||||
TestBumpModel app = new TestBumpModel(); |
||||
app.start(); |
||||
} |
||||
|
||||
@Override |
||||
public void simpleInitApp() { |
||||
Spatial signpost = (Spatial) assetManager.loadAsset(new OgreMeshKey("Models/Sign Post/Sign Post.mesh.xml")); |
||||
signpost.setMaterial( (Material) assetManager.loadMaterial("Models/Sign Post/Sign Post.j3m")); |
||||
TangentBinormalGenerator.generate(signpost); |
||||
rootNode.attachChild(signpost); |
||||
|
||||
lightMdl = new Geometry("Light", new Sphere(10, 10, 0.1f)); |
||||
lightMdl.setMaterial( (Material) assetManager.loadMaterial("Common/Materials/RedColor.j3m")); |
||||
rootNode.attachChild(lightMdl); |
||||
|
||||
// flourescent main light
|
||||
pl = new PointLight(); |
||||
pl.setColor(new ColorRGBA(0.88f, 0.92f, 0.95f, 1.0f)); |
||||
rootNode.addLight(pl); |
||||
|
||||
AmbientLight al = new AmbientLight(); |
||||
al.setColor(new ColorRGBA(0.44f, 0.40f, 0.20f, 1.0f)); |
||||
rootNode.addLight(al); |
||||
|
||||
DirectionalLight dl = new DirectionalLight(); |
||||
dl.setDirection(new Vector3f(1,-1,-1).normalizeLocal()); |
||||
dl.setColor(new ColorRGBA(0.92f, 0.85f, 0.8f, 1.0f)); |
||||
rootNode.addLight(dl); |
||||
} |
||||
|
||||
@Override |
||||
public void simpleUpdate(float tpf){ |
||||
angle += tpf * 0.25f; |
||||
angle %= FastMath.TWO_PI; |
||||
|
||||
pl.setPosition(new Vector3f(FastMath.cos(angle) * 6f, 3f, FastMath.sin(angle) * 6f)); |
||||
lightMdl.setLocalTranslation(pl.getPosition()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,104 @@ |
||||
/* |
||||
* Copyright (c) 2009-2010 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
package jme3test.android; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.effect.ParticleEmitter; |
||||
import com.jme3.effect.ParticleMesh.Type; |
||||
import com.jme3.effect.shapes.EmitterSphereShape; |
||||
import com.jme3.input.KeyInput; |
||||
import com.jme3.input.controls.ActionListener; |
||||
import com.jme3.input.controls.InputListener; |
||||
import com.jme3.input.controls.KeyTrigger; |
||||
import com.jme3.light.AmbientLight; |
||||
import com.jme3.material.Material; |
||||
import com.jme3.math.ColorRGBA; |
||||
import com.jme3.math.FastMath; |
||||
import com.jme3.math.Vector3f; |
||||
|
||||
/** |
||||
* Particle that moves in a circle. |
||||
* |
||||
* @author Kirill Vainer |
||||
*/ |
||||
public class TestMovingParticle extends SimpleApplication { |
||||
|
||||
private ParticleEmitter emit; |
||||
private float angle = 0; |
||||
|
||||
public static void main(String[] args) { |
||||
TestMovingParticle app = new TestMovingParticle(); |
||||
app.start(); |
||||
} |
||||
|
||||
@Override |
||||
public void simpleInitApp() { |
||||
emit = new ParticleEmitter("Emitter", Type.Triangle, 300); |
||||
emit.setGravity(0, 0, 0); |
||||
emit.setVelocityVariation(1); |
||||
emit.setLowLife(1); |
||||
emit.setHighLife(1); |
||||
emit.setInitialVelocity(new Vector3f(0, .5f, 0)); |
||||
emit.setImagesX(15); |
||||
Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); |
||||
mat.setTexture("Texture", assetManager.loadTexture("Effects/Smoke/Smoke.png")); |
||||
emit.setMaterial(mat); |
||||
|
||||
rootNode.attachChild(emit); |
||||
|
||||
AmbientLight al = new AmbientLight(); |
||||
al.setColor(new ColorRGBA(0.84f, 0.80f, 0.80f, 1.0f)); |
||||
rootNode.addLight(al); |
||||
|
||||
|
||||
|
||||
inputManager.addListener(new ActionListener() { |
||||
|
||||
public void onAction(String name, boolean isPressed, float tpf) { |
||||
if ("setNum".equals(name) && isPressed) { |
||||
emit.setNumParticles(1000); |
||||
} |
||||
} |
||||
}, "setNum"); |
||||
|
||||
inputManager.addMapping("setNum", new KeyTrigger(KeyInput.KEY_SPACE)); |
||||
} |
||||
|
||||
@Override |
||||
public void simpleUpdate(float tpf) { |
||||
angle += tpf; |
||||
angle %= FastMath.TWO_PI; |
||||
float x = FastMath.cos(angle) * 2; |
||||
float y = FastMath.sin(angle) * 2; |
||||
emit.setLocalTranslation(x, 0, y); |
||||
} |
||||
} |
@ -0,0 +1,99 @@ |
||||
/* |
||||
* Copyright (c) 2009-2010 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
|
||||
package jme3test.android; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.light.AmbientLight; |
||||
import com.jme3.light.DirectionalLight; |
||||
import com.jme3.light.PointLight; |
||||
import com.jme3.material.Material; |
||||
import com.jme3.math.ColorRGBA; |
||||
import com.jme3.math.FastMath; |
||||
import com.jme3.math.Vector3f; |
||||
import com.jme3.scene.Geometry; |
||||
import com.jme3.scene.Spatial; |
||||
import com.jme3.scene.shape.Sphere; |
||||
import com.jme3.util.TangentBinormalGenerator; |
||||
|
||||
public class TestNormalMapping extends SimpleApplication { |
||||
|
||||
float angle; |
||||
PointLight pl; |
||||
Spatial lightMdl; |
||||
|
||||
public static void main(String[] args){ |
||||
TestNormalMapping app = new TestNormalMapping(); |
||||
app.start(); |
||||
} |
||||
|
||||
@Override |
||||
public void simpleInitApp() { |
||||
Sphere sphMesh = new Sphere(32, 32, 1); |
||||
sphMesh.setTextureMode(Sphere.TextureMode.Projected); |
||||
sphMesh.updateGeometry(32, 32, 1, false, false); |
||||
TangentBinormalGenerator.generate(sphMesh); |
||||
|
||||
Geometry sphere = new Geometry("Rock Ball", sphMesh); |
||||
Material mat = assetManager.loadMaterial("Textures/Terrain/Pond/Pond.j3m"); |
||||
sphere.setMaterial(mat); |
||||
rootNode.attachChild(sphere); |
||||
|
||||
lightMdl = new Geometry("Light", new Sphere(10, 10, 0.1f)); |
||||
lightMdl.setMaterial(assetManager.loadMaterial("Common/Materials/RedColor.j3m")); |
||||
rootNode.attachChild(lightMdl); |
||||
|
||||
pl = new PointLight(); |
||||
pl.setColor(ColorRGBA.White); |
||||
pl.setPosition(new Vector3f(0f, 0f, 4f)); |
||||
rootNode.addLight(pl); |
||||
|
||||
AmbientLight al = new AmbientLight(); |
||||
al.setColor(new ColorRGBA(0.44f, 0.40f, 0.20f, 1.0f)); |
||||
rootNode.addLight(al); |
||||
|
||||
DirectionalLight dl = new DirectionalLight(); |
||||
dl.setDirection(new Vector3f(1,-1,-1).normalizeLocal()); |
||||
dl.setColor(new ColorRGBA(0.92f, 0.85f, 0.8f, 1.0f)); |
||||
rootNode.addLight(dl); |
||||
} |
||||
|
||||
@Override |
||||
public void simpleUpdate(float tpf){ |
||||
angle += tpf * 0.25f; |
||||
angle %= FastMath.TWO_PI; |
||||
|
||||
pl.setPosition(new Vector3f(FastMath.cos(angle) * 4f, 0.5f, FastMath.sin(angle) * 4f)); |
||||
lightMdl.setLocalTranslation(pl.getPosition()); |
||||
} |
||||
|
||||
} |
@ -1,35 +0,0 @@ |
||||
package jme3test.android; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.math.Quaternion; |
||||
import com.jme3.math.Vector3f; |
||||
import com.jme3.scene.Node; |
||||
import com.jme3.scene.Spatial; |
||||
import com.jme3.scene.Spatial.CullHint; |
||||
|
||||
public class TestSceneLoading extends SimpleApplication { |
||||
|
||||
private void setState(Spatial s) { |
||||
s.setCullHint(CullHint.Never); |
||||
if (s instanceof Node) { |
||||
Node n = (Node) s; |
||||
for (int i = 0; i < n.getQuantity(); i++) { |
||||
Spatial s2 = n.getChild(i); |
||||
setState(s2); |
||||
} |
||||
} |
||||
} |
||||
|
||||
public void simpleInitApp() { |
||||
/* XXX: does not compile */ |
||||
|
||||
/* Spatial scene = inputManager.loadModel("FINAL_LEVEL2.j3o"); |
||||
// setState(scene);
|
||||
rootNode.attachChild(scene); |
||||
|
||||
cam.setLocation(new Vector3f(-18.059685f, 34.64228f, 4.5048084f)); |
||||
cam.setRotation(new Quaternion(0.22396432f, 0.5235024f, -0.1448922f, 0.8091919f)); |
||||
cam.update(); |
||||
*/ |
||||
} |
||||
} |
@ -0,0 +1,71 @@ |
||||
/* |
||||
* Copyright (c) 2009-2010 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
|
||||
package jme3test.android; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.scene.Spatial; |
||||
import com.jme3.texture.Texture; |
||||
import com.jme3.util.SkyFactory; |
||||
import com.jme3.util.android.AndroidSkyFactory; |
||||
|
||||
public class TestSkyLoadingLagoon extends SimpleApplication { |
||||
|
||||
public static void main(String[] args){ |
||||
TestSkyLoadingLagoon app = new TestSkyLoadingLagoon(); |
||||
app.start(); |
||||
} |
||||
|
||||
public void simpleInitApp() { |
||||
|
||||
Texture west = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_west.jpg"); |
||||
Texture east = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_east.jpg"); |
||||
Texture north = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_north.jpg"); |
||||
Texture south = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_south.jpg"); |
||||
Texture up = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_up.jpg"); |
||||
Texture down = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_down.jpg"); |
||||
|
||||
|
||||
/* |
||||
Texture west = assetManager.loadTexture("Textures/Sky/Primitives/primitives_positive_x.png"); |
||||
Texture east = assetManager.loadTexture("Textures/Sky/Primitives/primitives_negative_x.png"); |
||||
Texture north = assetManager.loadTexture("Textures/Sky/Primitives/primitives_negative_z.png"); |
||||
Texture south = assetManager.loadTexture("Textures/Sky/Primitives/primitives_positive_z.png"); |
||||
Texture up = assetManager.loadTexture("Textures/Sky/Primitives/primitives_positive_y.png"); |
||||
Texture down = assetManager.loadTexture("Textures/Sky/Primitives/primitives_negative_y.png"); |
||||
*/ |
||||
|
||||
Spatial sky = AndroidSkyFactory.createSky(assetManager, west, east, north, south, up, down); |
||||
rootNode.attachChild(sky); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,69 @@ |
||||
/* |
||||
* Copyright (c) 2009-2010 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
|
||||
package jme3test.android; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.scene.Spatial; |
||||
import com.jme3.texture.Texture; |
||||
import com.jme3.util.SkyFactory; |
||||
import com.jme3.util.android.AndroidSkyFactory; |
||||
|
||||
public class TestSkyLoadingPrimitives extends SimpleApplication { |
||||
|
||||
public static void main(String[] args){ |
||||
TestSkyLoadingPrimitives app = new TestSkyLoadingPrimitives(); |
||||
app.start(); |
||||
} |
||||
|
||||
public void simpleInitApp() { |
||||
/* |
||||
Texture west = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_west.jpg"); |
||||
Texture east = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_east.jpg"); |
||||
Texture north = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_north.jpg"); |
||||
Texture south = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_south.jpg"); |
||||
Texture up = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_up.jpg"); |
||||
Texture down = assetManager.loadTexture("Textures/Sky/Lagoon/lagoon_down.jpg"); |
||||
*/ |
||||
|
||||
Texture west = assetManager.loadTexture("Textures/Sky/Primitives/primitives_positive_x.png"); |
||||
Texture east = assetManager.loadTexture("Textures/Sky/Primitives/primitives_negative_x.png"); |
||||
Texture north = assetManager.loadTexture("Textures/Sky/Primitives/primitives_negative_z.png"); |
||||
Texture south = assetManager.loadTexture("Textures/Sky/Primitives/primitives_positive_z.png"); |
||||
Texture up = assetManager.loadTexture("Textures/Sky/Primitives/primitives_positive_y.png"); |
||||
Texture down = assetManager.loadTexture("Textures/Sky/Primitives/primitives_negative_y.png"); |
||||
|
||||
Spatial sky = AndroidSkyFactory.createSky(assetManager, west, east, north, south, up, down); |
||||
rootNode.attachChild(sky); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,44 @@ |
||||
package jme3test.android; |
||||
|
||||
import com.jme3.app.SimpleApplication; |
||||
import com.jme3.light.AmbientLight; |
||||
import com.jme3.light.PointLight; |
||||
import com.jme3.material.Material; |
||||
import com.jme3.math.ColorRGBA; |
||||
import com.jme3.math.Vector3f; |
||||
import com.jme3.scene.Geometry; |
||||
import com.jme3.scene.shape.Sphere; |
||||
import com.jme3.util.TangentBinormalGenerator; |
||||
|
||||
public class TestUnshadedModel extends SimpleApplication { |
||||
|
||||
public static void main(String[] args){ |
||||
TestUnshadedModel app = new TestUnshadedModel(); |
||||
app.start(); |
||||
} |
||||
|
||||
@Override |
||||
public void simpleInitApp() { |
||||
Sphere sphMesh = new Sphere(32, 32, 1); |
||||
sphMesh.setTextureMode(Sphere.TextureMode.Projected); |
||||
sphMesh.updateGeometry(32, 32, 1, false, false); |
||||
TangentBinormalGenerator.generate(sphMesh); |
||||
|
||||
Geometry sphere = new Geometry("Rock Ball", sphMesh); |
||||
Material mat = assetManager.loadMaterial("Textures/Terrain/Pond/Pond.j3m"); |
||||
mat.setColor("Ambient", ColorRGBA.DarkGray); |
||||
mat.setColor("Diffuse", ColorRGBA.White); |
||||
mat.setBoolean("UseMaterialColors", true); |
||||
sphere.setMaterial(mat); |
||||
rootNode.attachChild(sphere); |
||||
|
||||
PointLight pl = new PointLight(); |
||||
pl.setColor(ColorRGBA.White); |
||||
pl.setPosition(new Vector3f(4f, 0f, 0f)); |
||||
rootNode.addLight(pl); |
||||
|
||||
AmbientLight al = new AmbientLight(); |
||||
al.setColor(ColorRGBA.White); |
||||
rootNode.addLight(al); |
||||
} |
||||
} |
@ -1,171 +0,0 @@ |
||||
package jme3test.android; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
import android.app.Activity; |
||||
import android.os.Bundle; |
||||
|
||||
import android.content.Intent; |
||||
|
||||
import android.view.View; |
||||
import android.view.MenuInflater; |
||||
import android.view.Menu; |
||||
import android.view.MenuItem; |
||||
import android.view.MotionEvent; |
||||
|
||||
import android.widget.TextView; |
||||
import android.widget.Button; |
||||
import android.widget.EditText; |
||||
import android.widget.CheckBox; |
||||
import android.widget.TableLayout; |
||||
import android.widget.LinearLayout; |
||||
import android.widget.TableRow; |
||||
|
||||
import android.hardware.SensorManager; |
||||
//import android.hardware.SensorListener;
|
||||
|
||||
import jme3test.android.AndroidActivity; |
||||
|
||||
import java.net.URI; |
||||
|
||||
public class TestsActivity extends Activity { |
||||
|
||||
private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger(TestsActivity.class.getName()); |
||||
|
||||
public static class Test { |
||||
|
||||
private String name = null; |
||||
private String className = null; |
||||
|
||||
public Test(String name, String className) { |
||||
this.name = name; |
||||
this.className = className; |
||||
} |
||||
|
||||
public String getName() { |
||||
return name; |
||||
} |
||||
|
||||
public String getClassName() { |
||||
return className; |
||||
} |
||||
} |
||||
private final static Test[] tests = { |
||||
new Test("SimpleTextured", "jme3test.android.SimpleTexturedTest"), |
||||
new Test("light.TestLightRadius", "jme3test.light.TestLightRadius"), |
||||
new Test("bullet.TestSimplePhysics", "jme3test.bullet.TestSimplePhysics"), |
||||
new Test("helloworld.HelloJME3", "jme3test.helloworld.HelloJME3"), |
||||
new Test("helloworld.HelloLoop", "jme3test.helloworld.HelloLoop"), |
||||
new Test("helloworld.HelloNode", "jme3test.helloworld.HelloNode"), |
||||
new Test("helloworld.HelloEffects", "jme3test.helloworld.HelloEffects"), |
||||
new Test("helloworld.HelloTerrain", "jme3test.helloworld.HelloTerrain") |
||||
}; |
||||
private boolean useVA; |
||||
|
||||
@Override |
||||
public void onCreate(Bundle savedInstanceState) { |
||||
logger.info("onCreate(" + savedInstanceState + ")"); |
||||
|
||||
super.onCreate(savedInstanceState); |
||||
|
||||
//setContentView(R.layout.tests);
|
||||
|
||||
try { |
||||
|
||||
useVA = true; |
||||
|
||||
//LinearLayout buttonsContainer = (LinearLayout) findViewById(R.id.buttonsContainer);
|
||||
|
||||
|
||||
for (Test test : tests) { |
||||
final Button button = new Button(this); |
||||
final String finalName = test.getName(); |
||||
final String finalClassName = test.getClassName(); |
||||
|
||||
button.setText(test.getName()); |
||||
// button.setTextSize(10.0f);
|
||||
// button.setTextColor(Color.rgb(100, 200, 200));
|
||||
//buttonsContainer.addView(button);
|
||||
|
||||
button.setOnClickListener( |
||||
new View.OnClickListener() { |
||||
|
||||
@Override |
||||
public void onClick(View view) { |
||||
Intent intent = new Intent(view.getContext(), AndroidActivity.class); |
||||
intent.putExtra(AndroidActivity.class.getName() + ".TEST_CLASS_NAME", finalClassName); |
||||
intent.putExtra(AndroidActivity.class.getName() + ".USE_VA", useVA); |
||||
startActivityForResult(intent, 0); |
||||
} |
||||
}); |
||||
} |
||||
} catch (Exception exception) { |
||||
logger.warning("exception: " + exception); |
||||
exception.printStackTrace(System.err); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void onDestroy() { |
||||
logger.info("onDestroy()"); |
||||
super.onDestroy(); |
||||
} |
||||
|
||||
@Override |
||||
protected void onResume() { |
||||
super.onResume(); |
||||
} |
||||
|
||||
@Override |
||||
protected void onStart() { |
||||
super.onStart(); |
||||
} |
||||
|
||||
@Override |
||||
protected void onStop() { |
||||
super.onStop(); |
||||
} |
||||
|
||||
@Override |
||||
public boolean onCreateOptionsMenu(Menu menu) { |
||||
MenuInflater inflater = getMenuInflater(); |
||||
//inflater.inflate(R.menu.options, menu);
|
||||
return true; |
||||
} |
||||
|
||||
@Override |
||||
public boolean onOptionsItemSelected(MenuItem item) { |
||||
/* |
||||
switch (item.getItemId()) { |
||||
case R.id.about_button: |
||||
about(); |
||||
return true; |
||||
case R.id.quit_button: |
||||
quit(); |
||||
return true; |
||||
default: |
||||
return super.onOptionsItemSelected(item); |
||||
} |
||||
*/ |
||||
return false; |
||||
} |
||||
|
||||
private void quit() { |
||||
finish(); |
||||
} |
||||
|
||||
private void about() { |
||||
// Intent intent = new Intent(getView().getContext(), AboutActivity.class);
|
||||
try { |
||||
Intent intent = new Intent(); |
||||
intent.setClassName( |
||||
"jme3test.android", |
||||
"jme3test.android.AboutActivity"); |
||||
startActivity(intent); |
||||
} catch (Exception exception) { |
||||
logger.warning("exception: " + exception); |
||||
exception.printStackTrace(System.err); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue