Both the andengine and multitouchextension libs are added to the build path, and the AndroidManifest has been edited to allow everything the example does...
Whats really throwing me off is I think the debugger is saying the error is in...
if(MultiTouch.isSupported(this))
As if it doesn't know what 'this' is... anyone know why this would be any different then in the example?
Using java Syntax Highlighting
- package org.anddev.andengine.finalFrontier;
- import javax.microedition.khronos.opengles.GL10;
- import org.anddev.andengine.engine.Engine;
- import org.anddev.andengine.engine.camera.Camera;
- import org.anddev.andengine.engine.camera.hud.controls.AnalogOnScreenControl;
- import org.anddev.andengine.engine.camera.hud.controls.AnalogOnScreenControl.IAnalogOnScreenControlListener;
- import org.anddev.andengine.engine.camera.hud.controls.BaseOnScreenControl;
- import org.anddev.andengine.engine.handler.physics.PhysicsHandler;
- import org.anddev.andengine.engine.options.EngineOptions;
- import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
- import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
- import org.anddev.andengine.entity.scene.Scene;
- import org.anddev.andengine.entity.scene.background.ColorBackground;
- import org.anddev.andengine.entity.sprite.Sprite;
- import org.anddev.andengine.entity.util.FPSLogger;
- import org.anddev.andengine.extension.input.touch.controller.MultiTouch;
- import org.anddev.andengine.extension.input.touch.controller.MultiTouchController;
- import org.anddev.andengine.extension.input.touch.exception.MultiTouchException;
- import org.anddev.andengine.opengl.texture.Texture;
- import org.anddev.andengine.opengl.texture.TextureOptions;
- import org.anddev.andengine.opengl.texture.region.TextureRegion;
- import org.anddev.andengine.opengl.texture.region.TextureRegionFactory;
- import org.anddev.andengine.ui.activity.BaseGameActivity;
- import org.anddev.andengine.util.MathUtils;
- import android.widget.Toast;
- public class finalFrontier extends BaseGameActivity {
- // ===========================================================
- // Constants
- // ===========================================================
- private static final int CAMERA_WIDTH = 480;
- private static final int CAMERA_HEIGHT = 320;
- // ===========================================================
- // Fields
- // ===========================================================
- private Camera mCamera;
- private Texture mTexture;
- private TextureRegion mFaceTextureRegion;
- private Texture mOnScreenControlTexture;
- private TextureRegion mOnScreenControlBaseTextureRegion;
- private TextureRegion mOnScreenControlKnobTextureRegion;
- private boolean mPlaceOnScreenControlsAtDifferentVerticalLocations = false;
- // ===========================================================
- // Constructors
- // ===========================================================
- // ===========================================================
- // Getter & Setter
- // ===========================================================
- // ===========================================================
- // Methods for/from SuperClass/Interfaces
- // ===========================================================
- @Override
- public Engine onLoadEngine() {
- this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
- final Engine engine = new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
- try {
- if(MultiTouch.isSupported(this)) {
- engine.setTouchController(new MultiTouchController());
- if(MultiTouch.isSupportedDistinct(this)) {
- Toast.makeText(this, "MultiTouch detected --> Both controls will work properly!", Toast.LENGTH_LONG).show();
- } else {
- this.mPlaceOnScreenControlsAtDifferentVerticalLocations = true;
- Toast.makeText(this, "MultiTouch detected, but your device has problems distinguishing between fingers.\n\nControls are placed at different vertical locations.", Toast.LENGTH_LONG).show();
- }
- } else {
- Toast.makeText(this, "Sorry your device does NOT support MultiTouch!\n\n(Falling back to SingleTouch.)\n\nControls are placed at different vertical locations.", Toast.LENGTH_LONG).show();
- }
- } catch (final MultiTouchException e) {
- Toast.makeText(this, "Sorry your Android Version does NOT support MultiTouch!\n\n(Falling back to SingleTouch.)\n\nControls are placed at different vertical locations.", Toast.LENGTH_LONG).show();
- }
- return engine;
- }
- @Override
- public void onLoadResources() {
- TextureRegionFactory.setAssetBasePath("gfx/");
- this.mTexture = new Texture(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
- this.mFaceTextureRegion = TextureRegionFactory.createFromAsset(this.mTexture, this, "face_box.png", 0, 0);
- this.mOnScreenControlTexture = new Texture(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
- this.mOnScreenControlBaseTextureRegion = TextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_base.png", 0, 0);
- this.mOnScreenControlKnobTextureRegion = TextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_knob.png", 128, 0);
- this.mEngine.getTextureManager().loadTextures(this.mTexture, this.mOnScreenControlTexture);
- }
- @Override
- public Scene onLoadScene() {
- this.mEngine.registerUpdateHandler(new FPSLogger());
- final Scene scene = new Scene(1);
- scene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));
- final int centerX = (CAMERA_WIDTH - this.mFaceTextureRegion.getWidth()) / 2;
- final int centerY = (CAMERA_HEIGHT - this.mFaceTextureRegion.getHeight()) / 2;
- final Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion);
- final PhysicsHandler physicsHandler = new PhysicsHandler(face);
- face.registerUpdateHandler(physicsHandler);
- scene.getLastChild().attachChild(face);
- /* Velocity control (left). */
- final int x1 = 0;
- final int y1 = CAMERA_HEIGHT - this.mOnScreenControlBaseTextureRegion.getHeight();
- final AnalogOnScreenControl velocityOnScreenControl = new AnalogOnScreenControl(x1, y1, this.mCamera, this.mOnScreenControlBaseTextureRegion, this.mOnScreenControlKnobTextureRegion, 0.1f, new IAnalogOnScreenControlListener() {
- @Override
- public void onControlChange(final BaseOnScreenControl pBaseOnScreenControl, final float pValueX, final float pValueY) {
- physicsHandler.setVelocity(pValueX * 100, pValueY * 100);
- }
- @Override
- public void onControlClick(final AnalogOnScreenControl pAnalogOnScreenControl) {
- /* Nothing. */
- }
- });
- velocityOnScreenControl.getControlBase().setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
- velocityOnScreenControl.getControlBase().setAlpha(0.5f);
- scene.setChildScene(velocityOnScreenControl);
- /* Rotation control (right). */
- final int y2 = (this.mPlaceOnScreenControlsAtDifferentVerticalLocations) ? 0 : y1;
- final int x2 = CAMERA_WIDTH - this.mOnScreenControlBaseTextureRegion.getWidth();
- final AnalogOnScreenControl rotationOnScreenControl = new AnalogOnScreenControl(x2, y2, this.mCamera, this.mOnScreenControlBaseTextureRegion, this.mOnScreenControlKnobTextureRegion, 0.1f, new IAnalogOnScreenControlListener() {
- @Override
- public void onControlChange(final BaseOnScreenControl pBaseOnScreenControl, final float pValueX, final float pValueY) {
- if(pValueX == x1 && pValueY == x1) {
- /*face.setRotation(x1); */
- }
- else {
- face.setRotation(MathUtils.radToDeg((float)Math.atan2(pValueX, -pValueY)));
- }
- }
- @Override
- public void onControlClick(final AnalogOnScreenControl pAnalogOnScreenControl) {
- /* Nothing. */
- }
- });
- rotationOnScreenControl.getControlBase().setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
- rotationOnScreenControl.getControlBase().setAlpha(0.5f);
- velocityOnScreenControl.setChildScene(rotationOnScreenControl);
- return scene;
- }
- @Override
- public void onLoadComplete() {
- }
- // ===========================================================
- // Methods
- // ===========================================================
- // ===========================================================
- // Inner and Anonymous Classes
- // ===========================================================
- }
Parsed in 0.055 seconds, using GeSHi 1.0.8.4
Thanks in advance for all the help!
