使用Intent使用AngEngine GLES2启动课程

时间:2014-02-13 16:53:26

标签: android android-intent andengine

我有这样简单的java类:

    public class MainActivity extends Activity implements OnClickListener {

    TextView view;
    TextView view2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        view = (TextView) findViewById(R.id.baka);
        view.setOnClickListener(this);

        view2 = (TextView) findViewById(R.id.textView1);
        view2.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (v==view) {
            Intent instrumen = new Intent(MainActivity.this,SoundExample.class);
            startActivity(instrumen);
            finish();
        }
        else 
        {
            Intent instrumen = new Intent(MainActivity.this,SoundExample.class);
            startActivity(instrumen);
            finish();
        }
    }

}

我想创建一个程序,如果单击View1或View2,它将转到SoundExample.java的新活动。我使用AndEngine GLES2创建了SoundExample.java。但我发现错误,所以请帮我解决......

这是SoundExample.java

    public class SoundExample extends SimpleBaseGameActivity {
    // ===========================================================
    // Constants
    // ===========================================================

    private static final int CAMERA_WIDTH = 720;
    private static final int CAMERA_HEIGHT = 480;

    // ===========================================================
    // Fields
    // ===========================================================

    private BitmapTextureAtlas mBitmapTextureAtlas;
    private ITextureRegion mTankTextureRegion;

    private Sound mExplosionSound;

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

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

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

    @Override
    public EngineOptions onCreateEngineOptions() {
        Toast.makeText(this, "Touch the tank to hear an explosion sound.", Toast.LENGTH_LONG).show();

        final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);

        final EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
        engineOptions.getAudioOptions().setNeedsSound(true);

        return engineOptions;
    }

    @Override
    public void onCreateResources() {
        BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");

        this.mBitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 128, 256, TextureOptions.BILINEAR);
        this.mTankTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "tank.png", 0, 0);
        this.mBitmapTextureAtlas.load();

        SoundFactory.setAssetBasePath("mfx/");
        try {
            this.mExplosionSound = SoundFactory.createSoundFromAsset(this.mEngine.getSoundManager(), this, "miss.ogg");
        } catch (final IOException e) {
            Debug.e(e);
        }
    }

    @Override
    public Scene onCreateScene() {
        this.mEngine.registerUpdateHandler(new FPSLogger());

        final Scene scene = new Scene();
        scene.setBackground(new Background(0.09804f, 0.6274f, 0.8784f));

        final float centerX = (CAMERA_WIDTH - this.mTankTextureRegion.getWidth()) / 2;
        final float centerY = (CAMERA_HEIGHT - this.mTankTextureRegion.getHeight()) / 2;
        final Sprite tank = new Sprite(centerX, centerY, this.mTankTextureRegion, this.getVertexBufferObjectManager());
        scene.attachChild(tank);

        scene.registerTouchArea(tank);
        scene.setOnAreaTouchListener(new IOnAreaTouchListener() {
            @Override
            public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final ITouchArea pTouchArea, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
                if(pSceneTouchEvent.isActionDown()) {
                    SoundExample.this.mExplosionSound.play();
                }
                return true;
            }
        });

        return scene;
    }
}

这是它的清单

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

      <uses-permission android:name="android.permission.WAKE_LOCK" />
       <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

    <uses-permission android:name="android.permission.BLUETOOTH" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >

        <activity
            android:name=".Splash"
            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="SoundExample" >
            <intent-filter>
                <category android:name="android.intent.action.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.example.test.MainActivity" />

    </application>

</manifest>

0 个答案:

没有答案