开发者

my coding indicate error? [closed]

开发者 https://www.devze.com 2023-02-11 13:43 出处:网络
This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time,or an extraordinarily narrow situation that is not generally applic
This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center. Closed 10 years ago.

Hi now i am create one sample game...but its indicate error...now i am post my error please tell how to clear this error....explain me.....pls...

The method addEntity(Sprite) is undefined for the type Layer    
andengine.java    /andengine/src/org/anddev/andengine/examples    line 95    Java Problem
The method addShapeModifier(SequenceShapeModifier) is undefined for the type Sprite    
andengine.java    /andengine/src/org/anddev/andengine/examples    line 105    Java Problem
The method setVelocity(float, float) is undefined for the type Sprite    
andengine.java    /andengine/src/org/anddev/andengine/examples    line 100    Java Problem

how to solve this error pls tell me...

This is for my coding

package org.anddev.andengine.examples;

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.BaseOnScreenControl;
import org.anddev.andengine.engine.camera.hud.controls.AnalogOnScreenControl
.IAnalogOnScreenControlListener;
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.shape.modifier.ScaleModifier;
import org.anddev.andengine.entity.shape.modifier.SequenceShapeModifier;
import org.anddev.andengine.entity.sprite.Sprite;
import org.anddev.andengine.entity.util.FPSLogger;
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 android.widget.Toast;

/**
* @author Nicolas Gramlich
* @since 00:06:23 - 11.07.2010
*/
public class andengine extends BaseExample {
    // ===========================================================
    // 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;

    // ===========================================================
    // Constructors
    // ===========================================================

    // ===========================================================
    // Getter & Setter
    // ===========================================================

    // ===========================================================
    // Methods for/from SuperClass/Interfaces
    // ===========================================================

    @Override
    public Engine onLoadEngine() {
            Toast.makeText(this, "Also try tapping this AnalogOnScreenControl!", Toast.LENGTH_LONG).show();
            this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
          开发者_如何学C  return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
    }

    @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);

            scene.getTopLayer().addEntity(face);

            final AnalogOnScreenControl analogOnScreenControl = new AnalogOnScreenControl(0, CAMERA_HEIGHT - this.mOnScreenControlBaseTextureRegion.getHeight(), this.mCamera, this.mOnScreenControlBaseTextureRegion, this.mOnScreenControlKnobTextureRegion, 0.1f, 200, new IAnalogOnScreenControlListener() {
                    @Override
                    public void onControlChange(final BaseOnScreenControl pBaseOnScreenControl, final float pValueX, final float pValueY) {
                            face.setVelocity(pValueX * 100, pValueY * 100);
                    }

                    @Override
                    public void onControlClick(final AnalogOnScreenControl pAnalogOnScreenControl) {
                            face.addShapeModifier(new SequenceShapeModifier(new ScaleModifier(0.25f, 1, 1.5f), new ScaleModifier(0.25f, 1.5f, 1)));
                    }
            });
            analogOnScreenControl.getControlBase().setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
            analogOnScreenControl.getControlBase().setAlpha(0.5f);
            analogOnScreenControl.getControlBase().setScaleCenter(0, 128);
            analogOnScreenControl.getControlBase().setScale(1.25f);
            analogOnScreenControl.getControlKnob().setScale(1.25f);
            analogOnScreenControl.refreshControlKnobPosition();

            scene.setChildScene(analogOnScreenControl);

            return scene;
    }

    @Override
    public void onLoadComplete() {

    }

    // ===========================================================
    // Methods
    // ===========================================================

    // ===========================================================
    // Inner and Anonymous Classes
    // ===========================================================
   }


You're trying to call the following methods, but they do not exist:

Layer.addEntity(Sprite); //andengine.java, line 95
Sprite.addShapeModifier(SequenceShapeModifier); //andengine.java, line 105
Sprite.setVelocity(float, float); //andengine.java, line 100

Just read the error messages. They are clear enough.


@mdrg is right, but I think that may be more to this than meets the eye. I was browsing the sources, and the Layer class does appear to have an addEntity(IEntity) method, and Sprite does appear to implement IEntity.

I suspect that the OP might be using a checkout or JAR that doesn't match the examples he has based his code on.


@Stephen C is correct. @raja has installed the latest version of the AndEngine .jar in which getTopLayer() is a deprecated method.

scene.getTopLayer().addEntity(face);

With the latest version of AndEngine, this should be:

scene.getLastChild().attachChild(face);

Sprite composition was added recently which modified how entities are added to the scene graph.

0

精彩评论

暂无评论...
验证码 换一张
取 消