2016-01-28 8 views
-1

Я не могу понять, почему я не могу видеть свой тахометр, который я создал, но он работает. Вот кодLIBGDX - Touchpad

package com.mygdx.game; 

import com.badlogic.gdx.graphics.Texture; 
import com.badlogic.gdx.scenes.scene2d.ui.Skin; 
import com.badlogic.gdx.scenes.scene2d.ui.Touchpad; 
import com.badlogic.gdx.scenes.scene2d.utils.Drawable; 


public class AnalogStick extends Touchpad { 

    private static Touchpad.TouchpadStyle touchpadStyle; 
    private static Skin touchpadSkin; 
    private static Drawable touchBackground; 
    private static Drawable touchKnob; 

    public AnalogStick(float x, float y) { 

     super(10, getTouchpadStyle()); 
     setBounds(15, 15, 200, 200); 
     setPosition(x,y); 

    } 

    private static Touchpad.TouchpadStyle getTouchpadStyle() { 

     touchpadSkin = new Skin(); 
     touchpadSkin.add("touchBackground", new Texture("touchBackground.png")); 

     touchpadSkin.add("touchKnob", new Texture("touchKnob.png")); 

     touchpadStyle = new Touchpad.TouchpadStyle(); 

     touchBackground = touchpadSkin.getDrawable("touchBackground"); 
     touchKnob = touchpadSkin.getDrawable("touchKnob"); 

     touchpadStyle.background = touchBackground; 
     touchpadStyle.knob = touchKnob; 

     return new TouchpadStyle(); 
    } 
} 

И в моем Создать класс Я использую этот код для добавления его в стадию

 asMove = new AnalogStick(15,15); 

     Gdx.input.setInputProcessor(stage); 

     playerTexture = new Texture(Gdx.files.internal("player.png")); 
     playerSprite = new Sprite(playerTexture); 

     stage = new Stage(new ScreenViewport(), batch); 
     stage.addActor(asMove); 
     Gdx.input.setInputProcessor(stage); 

И в методе визуализации этого кода

 stage.act(Gdx.graphics.getDeltaTime()); 
     stage.draw(); 

ответ

1

Там, кажется, проблема с вашим методом getTouchpadStyle: он инициализирует touchpadStyle, но вместо того, чтобы возвращать его, он возвращает новый и пустой объект style. Другими словами, заменить

return new TouchpadStyle(); 

с

return touchpadStyle; 
+0

Спасибо! :). Сейчас он работает –

+0

@ Armin-AryAlagic Я рад, что смогу помочь. Не забудьте проголосовать и пометить этот ответ как принято. – asherbar