我正在尝试通过扩展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如果所有按钮一直在更新方法中在我的按钮字段上释放鼠标?
答案 0 :(得分:0)
我建议你在buckys视频上快速登顶,为你提供有关使用光滑2d制作东西的有用提示。
http://www.youtube.com/watch?v=AXNDBQfCd08&feature=share&list=PL22EF3E3752768216
这是他教程播放列表的链接。其中一个视频讲述了制作按钮和切换状态。祝你好运,我希望你能做出一个了不起的计划:)