2015-08-31 74 views
-2

我想在Android Studio中使用LibGDX創建一個Space Shooter遊戲。 其他一切工作正常,直到我嘗試使用javafx.animation.Animation類創建動畫。編譯我的代碼時,出現以下3個錯誤和1個警告!錯誤:(11,24)錯誤:程序包javafx.animation不存在。 (Android Studio,Libgdx,Javafx)

Warning:[options] bootstrap class path not set in conjunction with -source 1.6 

Error:(11, 24) error: package javafx.animation does not exist 

Error:(22, 13) error: cannot find symbol class Animation 

Error:(44, 26) error: cannot find symbol class Animation 

我檢查了我的android studio確實有javafx的插件!

我有兩個班在我的代碼Shootergame.javaAnimatedSprite.java

問題在於AnimatedSprite.java類和該類的代碼如下!

package com.ahmed.nullapointershooter; 

import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.graphics.Texture; 
import com.badlogic.gdx.graphics.g2d.Sprite; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 
import com.badlogic.gdx.graphics.g2d.TextureRegion; 



import javafx.animation.Animation; 


/** 
* Created by Hafeez ur Rehman on 8/30/2015. 
**/ 
public class AnimatedSprite { 
    private static final int FRAMES_COL = 2; 
    private static final int FRAMES_ROW = 2; 

    private Sprite sprite; 
    private Animation animation; 
    private TextureRegion[] frames; 
    private TextureRegion currentFrame; 

    private float stateTime; 

    public AnimatedSprite(Sprite sprite) { 
     this.sprite = sprite; 
     Texture texture = sprite.getTexture(); 
     TextureRegion[][] temp = TextureRegion.split(texture, texture.getWidth()/FRAMES_COL, 
       texture.getHeight()/FRAMES_ROW); 
     frames = new TextureRegion[FRAMES_COL * FRAMES_ROW]; 
     int index = 0; 
     for (int i = 0; i < FRAMES_ROW; i++) { 
      for (int j = 0; j < FRAMES_COL; j++) { 
       frames[index++] = temp[i][j]; 
      } 
     } 


     /** 
     * THE PROBLEM LIES HERE . I WANT TO DO THIS ---- 
     *           
     */ 

     //animation = new Animation(0.1f, frames); 
     animation = new Animation() { 
      @Override 
      public void impl_playTo(long l, long l1) { 

      } 

      @Override 
      public void impl_jumpTo(long l, long l1) { 

      } 
     }; 
     stateTime = 0f; 
    } 

    public void setPosition(float x, float y){ 
     float widthOffset = sprite.getWidth()/FRAMES_COL; 
     sprite.setPosition(x - widthOffset/2, y); 
    } 


    public void draw(SpriteBatch spriteBatch){ 
     stateTime += Gdx.graphics.getDeltaTime(); 
     //currentFrame = animation.getKeyFrame(stateTime, true); 

     spriteBatch.draw(currentFrame, sprite.getX(), sprite.getY()); 
    } 


} 

而且代碼Shootergame.java只是我在做什麼參考!

package com.ahmed.nullapointershooter; 

import com.badlogic.gdx.ApplicationAdapter; 
import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.graphics.GL20; 
import com.badlogic.gdx.graphics.OrthographicCamera; 
import com.badlogic.gdx.graphics.Texture; 
import com.badlogic.gdx.graphics.g2d.Sprite; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 

public class ShooterGame extends ApplicationAdapter { 
    private OrthographicCamera camera; 
    private SpriteBatch batch; 
    private Texture background; 
    private AnimatedSprite spaceshipAnimated; 


    @Override 
    public void create() { 
     //Texture.setEnforcePotImages(false); 

     camera = new OrthographicCamera(); 
     camera.setToOrtho(false, 800, 480); 

     batch = new SpriteBatch(); 

     background = new Texture(Gdx.files.internal("NullapointerBackground.png")); 
     Texture spaceshipTexture = new Texture(Gdx.files.internal("Spaceshipcanvas.png")); 
     Sprite spaceshipSprite = new Sprite(spaceshipTexture); 
     spaceshipAnimated = new AnimatedSprite(spaceshipSprite); 
     spaceshipAnimated.setPosition(800/2, 0); 

    } 


    @Override 
    public void dispose() { 
     batch.dispose(); 
    } 

    @Override 
    public void render() { 
     Gdx.gl.glClearColor(1, 1, 1, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

     batch.setProjectionMatrix(camera.combined); 
     batch.begin(); 
     batch.draw(background, 0, 0); 
     spaceshipAnimated.draw(batch); 
     batch.end(); 
    } 

    @Override 
    public void resize(int width, int height) { 

    } 
} 
+5

Android上沒有javafx包 –

+0

我正在使用Libgdx爲Android,Java(桌面)多平臺創建遊戲。我應該用什麼來代替javafx來執行動畫? –

+0

我只使用了一點javafx,但不是動畫,不知道你需要什麼,我想你應該開始一個新的問題,具體詢問你需要什麼動畫以及使用哪些android類。 –

回答

-1

我的問題解決了。我正在使用Javafx導入動畫類,因爲在android中沒有javafx包,所以首先出現錯誤。相反,我不得不導入 import com.badlogic.gdx.graphics.g2d.Animation;現在它的工作!

相關問題