Slick2D GUI按钮监听器

时间:2013-07-31 12:30:56

标签: button user-interface slick2d

我正在尝试通过扩展AbstractComponent来创建按钮:

公共类StandardButton扩展AbstractComponent {

protected int x;
protected int y;
protected int Width;
protected int Height;
protected String Text;

public StandardButton(GUIContext container,int x, int y, String Text, int Width, int Height,ComponentListener listener) {
    super(container);
    this.Text=Text;
    setLocation(x, y);
    this.Width=Width;
    this.Height=Height;
    addListener(listener);



}

@Override 
public void render(GUIContext container, Graphics g) throws SlickException {
    g.setColor(Color.white);
    g.setLineWidth(2f);
    g.drawRect(x, y, Width, Height);
    g.drawString(Text, x+5, y+(Height/2-4));

}
 [...]

在我的州:

public class UpdaterState extends BasicGameState实现ComponentListener {      private StandardButton buttonPlay;

@Override
public void init(GameContainer container, final StateBasedGame game)
        throws SlickException {
        buttonPlay=new StandardButton(container,100,100,"Graj",60,30,new ComponentListener(){

            @Override
            public void componentActivated(AbstractComponent source) {
                State.nextState(0, game);

            }

        });

但没有任何反应。单击我的按钮时,我的nestState方法不会运行。我怎么能正确地做到这一点?我只是希望我的程序在componentActivated方法中执行阻止。这是可能的还是我只需要chceck如果所有按钮一直在更新方法中在我的按钮字段上释放鼠标?

1 个答案:

答案 0 :(得分:0)

我建议你在buckys视频上快速登顶,为你提供有关使用光滑2d制作东西的有用提示。

http://www.youtube.com/watch?v=AXNDBQfCd08&feature=share&list=PL22EF3E3752768216

这是他教程播放列表的链接。其中一个视频讲述了制作按钮和切换状态。祝你好运,我希望你能做出一个了不起的计划:)