From a13e1ff2c4c3887d71b85f7dc0ad6d2641fb27f5 Mon Sep 17 00:00:00 2001 From: Nicolas Gramlich Date: Fri, 10 Feb 2012 12:12:21 -0800 Subject: [PATCH 01/17] Added ScriptingExample. --- assets/js/scriptingexample.js | 33 ++++ assets/js/scriptingexample_rhino.js | 126 ++++++++++++ res/layout/scriptingexample.xml | 29 +++ .../andengine/examples/ScriptingExample.java | 179 ++++++++++++++++++ .../andengine/examples/launcher/Example.java | 2 + .../examples/launcher/ExampleGroup.java | 2 +- 6 files changed, 370 insertions(+), 1 deletion(-) create mode 100644 assets/js/scriptingexample.js create mode 100644 assets/js/scriptingexample_rhino.js create mode 100644 res/layout/scriptingexample.xml create mode 100644 src/org/andengine/examples/ScriptingExample.java diff --git a/assets/js/scriptingexample.js b/assets/js/scriptingexample.js new file mode 100644 index 0000000..55bd788 --- /dev/null +++ b/assets/js/scriptingexample.js @@ -0,0 +1,33 @@ +var scaleUp = true; + +function onUpdate(pSecondsElapsed) { + mSprite.setRotation(mSprite.getRotation() + 90 * pSecondsElapsed); + + var scale = mSprite.getScaleX(); + if(scaleUp) { + if(scale < 2) { + mSprite.setScale(scale + 1 * pSecondsElapsed); + } else { + scaleUp = false; + } + } else { + if(scale > 1) { + mSprite.setScale(scale - 2 * pSecondsElapsed); + } else { + scaleUp = true; + } + } +} + +//function onClick() { +// var widgets = Packages.android.widget; +// var view = new widgets.TextView(mContext); +// mContext.setContentView(view); +// var text = 'Hello Android!\\nThis is JavaScript in action!'; +// view.append(text); +// if(mSprite.isAnimationRunning()) { +// mSprite.stopAnimation(); +// } else { +// mSprite.animate(100); +// } +//} diff --git a/assets/js/scriptingexample_rhino.js b/assets/js/scriptingexample_rhino.js new file mode 100644 index 0000000..2918a74 --- /dev/null +++ b/assets/js/scriptingexample_rhino.js @@ -0,0 +1,126 @@ +var AndEnginePackages = JavaImporter( + // ########### + // ENGINE + // ########### + + // Widgets + Packages.android.widget, + + // ########### + // ENGINE + // ########### + + // Engine + Packages.org.andengine.engine, + Packages.org.andengine.engine.options, + + // Handlers + Packages.org.andengine.engine.handler, + Packages.org.andengine.engine.handler.collision, + Packages.org.andengine.engine.handler.physics, + Packages.org.andengine.engine.handler.runnable, + Packages.org.andengine.engine.handler.timer, + + // Camera + Packages.org.andengine.engine.camera, + + // Touch + Packages.org.andengine.input.touch, + Packages.org.andengine.input.touch.controller, + Packages.org.andengine.input.touch.detector, + + // ########### + // OPENGL + // ########### + + // Textures + Packages.org.andengine.opengl.texture, + Packages.org.andengine.opengl.texture.atlas, + Packages.org.andengine.opengl.texture.atlas.bitmap, + Packages.org.andengine.opengl.texture.atlas.bitmap.source, + Packages.org.andengine.opengl.texture.atlas.buildable, + Packages.org.andengine.opengl.texture.bitmap, + Packages.org.andengine.opengl.texture.compressed.etc1, + Packages.org.andengine.opengl.texture.compressed.pvr, + Packages.org.andengine.opengl.texture.region, + Packages.org.andengine.opengl.texture.render, + + // Util + Packages.org.andengine.opengl.texture.util, + + // ########### + // ENTITY + // ########### + + // Entity + Packages.org.andengine.entity.sprite, + Packages.org.andengine.entity.primitive, + Packages.org.andengine.entity.scene, + Packages.org.andengine.entity.shape, + Packages.org.andengine.entity.sprite, + Packages.org.andengine.entity.sprite.batch, + Packages.org.andengine.entity.text, + + // Modifier + Packages.org.andengine.entity.modifier, + Packages.org.andengine.util.modifier.ease, + + // Util + Packages.org.andengine.entity.util, + + // ########### + // UTIL + // ########### + Packages.org.andengine.util, + Packages.org.andengine.util.math, + Packages.org.andengine.util.spatial, + Packages.org.andengine.util.spatial.adt.bounds, + Packages.org.andengine.util.spatial.adt.bounds.util, + Packages.org.andengine.util.spatial.quadtree, + + Packages.android.graphics +); + +with(AndEnginePackages) { + var engine = mContext.getEngine(); + var scene = engine.getScene(); + var camera = engine.getCamera(); + + var size = 100; + + var x = MathUtils.random(0, camera.getWidth()) - size / 2; + var y = MathUtils.random(0, camera.getHeight()) - size / 2; + + /* + var rectangle = new Rectangle(x, y, size, size, engine.getVertexBufferObjectManager()); + */ + + var bounds = new AbstractIntBounds(0, 1, 2, 3) { + getXMin: function() { + return 4; + } + } + + var point = new AbstractPoint(0, 1) { + set: function(pX, pY) { + return; + } + } + + var rectangle = new AbstractRectangle(x, y, size, size, engine.getVertexBufferObjectManager()) { + onAreaTouched: function(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY) { + pTouchArea.setColor(1, 1, 0, 1); + } + }; + + rectangle.setColor(1, 0, 0, 1); + scene.attachChild(rectangle); + scene.registerTouchArea(rectangle); + scene.setOnAreaTouchListener(new Packages.org.andengine.entity.scene.Scene.IOnAreaTouchListener() { + onAreaTouched: function(pSceneTouchEvent, pTouchArea, pTouchAreaLocalX, pTouchAreaLocalY) { + pTouchArea.setColor(0, 1, 0, 1); + pTouchArea.registerEntityModifier(new LoopEntityModifier(new RotationModifier(6, 0, 360, EaseExponentialInOut.getInstance()))); + return true; + } + }); +} diff --git a/res/layout/scriptingexample.xml b/res/layout/scriptingexample.xml new file mode 100644 index 0000000..71e4c89 --- /dev/null +++ b/res/layout/scriptingexample.xml @@ -0,0 +1,29 @@ + + + + + + +