2014-02-27 4 views
2

저는이 놀라운 튜토리얼 (http://www.kilobolt.com/day-11-supporting-iosandroid--splashscreen-menus-and-tweening.html)을 기반으로 libgdx로 첫 안드로이드 게임을 개발 중입니다. 내 "회사"의 로고를 표시하기 위해 스플래시 화면에서 사용하는 트위닝을 제외하고 모든 것이 제대로 작동합니다. 이상한 부분은 로고가 데스크톱 버전에서 잘 작동하지만 안드로이드 버전에서는 보이지 않는다는 것입니다.Libgdx 트윈이 안드로이드에서 작동하지 않습니다.

저는이 튜토리얼에서 개발 한 앱에서 사용한 것과 같은 클래스를 사용하고 있습니다. 그건 그렇고,이 애플 리케이션의 스플래시 화면은 두 버전 모두에서 잘 작동합니다.

나는 내 응용 프로그램과 자습서의 응용 프로그램을 비교했지만 패키지 탐색기에서는 차이점을 발견하지 못했습니다.

package com.victor.Screens; 

import aurelienribon.tweenengine.BaseTween; 
import aurelienribon.tweenengine.Tween; 
import aurelienribon.tweenengine.TweenCallback; 
import aurelienribon.tweenengine.TweenEquations; 
import aurelienribon.tweenengine.TweenManager; 

import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.Screen; 
import com.badlogic.gdx.graphics.GL10; 
import com.badlogic.gdx.graphics.g2d.Sprite; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 
import com.victor.TweenAccessors.SpriteAccessor; 
import com.victor.FZHelpers.AssetLoader; 
import com.victor.FZombies.FZGame; 

public class SplashScreen implements Screen 
{ 

    private TweenManager manager; 
    private SpriteBatch batcher; 
    private Sprite sprite; 
    private FZGame game; 

    public SplashScreen(FZGame game) 
    { 
     this.game = game; 
    } 

    @Override 
    public void show() 
    { 
     sprite = new Sprite(AssetLoader.logo); 
     sprite.setColor(1, 1, 1, 0); 

     float width = Gdx.graphics.getWidth(); 
     float height = Gdx.graphics.getHeight(); 
     float desiredWidth = width * .4f; 
     float scale = desiredWidth/sprite.getWidth(); 

     sprite.setSize(sprite.getWidth() * scale, sprite.getHeight() * scale); 
     sprite.setPosition((width/2) - (sprite.getWidth()/2), (height/2) - (sprite.getHeight()/2)); 
     setupTween(); 
     batcher = new SpriteBatch(); 

    } 

    private void setupTween() 
    { 
     Tween.registerAccessor(Sprite.class, new SpriteAccessor()); 
     manager = new TweenManager(); 

     TweenCallback cb = new TweenCallback() 
     { 
      @Override 
      public void onEvent(int type, BaseTween<?> source) 
      { 
       game.setScreen(new GameScreen()); 
      } 
     }; 

     Tween.to(sprite, SpriteAccessor.ALPHA, .8f).target(1).ease(TweenEquations.easeInOutQuad).repeatYoyo(1, .4f).setCallback(cb).setCallbackTriggers(TweenCallback.COMPLETE).start(manager); 
    } 

    @Override 
    public void render(float delta) 
    { 
     manager.update(delta); 
     Gdx.gl.glClearColor(1, 0, 0, 1); 
     Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 
     batcher.begin(); 
     sprite.draw(batcher); 
     batcher.end(); 
    } 
} 

http://i1223.photobucket.com/albums/dd507/victormmenendez/tut.jpg는 당신의 도움을 주셔서 감사합니다 : 뭔가를 의미 있을지 모르겠어요. 어떤 순간에 나 자신을 설명 할 수 없다면 유감이지만 영어는 제 1 차 언어가 아닙니다. 추가 코드가 필요하면 추가 할 수 있습니다.

답변

2

빌드 경로에서 트윈 병 파일을 내보내도록해야합니다. Eclipse의 경우 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "빌드 경로"> "빌드 경로 구성"을 선택하고 오른쪽의 "순서 및 내보내기"탭으로 이동하여 트윈 jar 파일이 거기에 나열하십시오.

+0

답장을 보내 주셔서 감사합니다. 그걸 확인하고 실제로 jar 파일 중 하나는 검사하지 않았지만 해결하지 못했습니다. – VictorMen

+0

실제로 내 자신의 프로젝트에 그러한 파일이없는 것처럼 보였으므로 문제가 아닌 것 같습니다. 바탕 화면에서 작동하지만 안드로이드가 아니라면 텍스쳐 너비와 높이가 16, 32, 64 등과 같이 2의 거듭 제곱임을 확인하는 것이 좋습니다. 때로는 OpenGL의 버전에 따라 안드로이드 장치가 사용하는 텍스처에 2의 제곱이 필요합니다. 이로 인해 Nexus 7에서 나에게 렌더링되지 않거나 흰색 블록으로 렌더링되지 않습니다. 먼저 확인하십시오. – Barodapride

+0

마지막으로, 나는 이걸로 2 일간 도청당했습니다. 정말 고맙습니다!!! –

관련 문제