-9

こんにちは、私は 1 つのサンプル ゲームを作成しています...しかし、それはエラーを示しています...今、私は私のエラーを投稿しています このエラーをクリアする方法を教えてください....説明してください.....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

このエラーを解決する方法を教えてください...

これは私のコーディング用です

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);
            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
    // ===========================================================
   }
4

3 に答える 3

4

次のメソッドを呼び出そうとしていますが、存在しません:

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

エラーメッセージを読んでください。それらは十分に明確です。

于 2011-02-16T10:27:51.417 に答える
4

@mdrgは正しいですが、これは目に見える以上のものかもしれないと思います. 私はソースを閲覧していましたが、クラスにLayerメソッドaddEntity(IEntity)があり、Sprite実装されているようIEntityです。

OPは、彼がコードに基づいた例と一致しないチェックアウトまたはJARを使用している可能性があると思われます。

于 2011-02-16T11:29:39.527 に答える
1

@スティーブンCは正しいです。@raja は最新バージョンの AndEngine .jar をインストールしました。その中で getTopLayer() は非推奨のメソッドです。

scene.getTopLayer().addEntity(face);

AndEngine の最新バージョンでは、これは次のようになります。

scene.getLastChild().attachChild(face);

スプライト構成が最近追加され、エンティティをシーン グラフに追加する方法が変更されました。

于 2011-04-08T03:57:58.533 に答える