JMenuBar bar = new JMenuBar();
bar.add(file);
setJMenuBar(bar);
game = new ParticleGame(this);
final CanvasGameContainer container = new CanvasGameContainer(game);
container.getContainer().setAlwaysRender(true);
container.setSize(500,600);
JPanel controls = new JPanel();
controls.setLayout(null);
emitters.setBounds(0,0,300,150);
emitters.setBorder(BorderFactory.createTitledBorder("Emitters"));
controls.add(emitters);
JTabbedPane tabs = new JTabbedPane();
tabs.setBounds(0,150,300,350);
controls.add(tabs);
tabs.add("Settings", settingsPanel);
tabs.add("Emission", emissionControls);
tabs.add("Position", positionControls);
tabs.add("Rendering", colorPanel);
tabs.add("Limit", limitPanel);
tabs.add("Whiskas", whiskasPanel);
JPanel panel = new JPanel();
panel.setLayout(null);
container.setBounds(0,0,500,600);
controls.setBounds(500,20,300,575);
reset.setBounds(90,500,90,25);
controls.add(reset);
systemMove.setBounds(180,500,120,25);
controls.add(systemMove);
pause.setBounds(0,500,90,25);
controls.add(pause);
additive.setBounds(500,0,150,25);
panel.add(additive);
pointsEnabled.setBounds(650,0,150,25);
panel.add(pointsEnabled);
panel.add(container);
panel.add(controls);
systemMove.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
game.setSystemMove(systemMove.getValue(),false);
}
});
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
additive.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
updateBlendMode();
}
});
pointsEnabled.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
game.getSystem().setUsePoints(pointsEnabled.isSelected());
}
});
reset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
game.resetCounts();
}
});
pause.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
game.setPaused(!game.isPaused());
}
});
ConfigurableEmitter test = new ConfigurableEmitter("Default");
emitters.add(test);
game.addEmitter(test);
additive.setSelected(true);
setContentPane(panel);
setSize(800,600);
setResizable(false);
setVisible(true);
InputListener listener = new InputAdapter() {
public void mousePressed(int x, int y, int button) {
if (button != 0) {
positionControls.setPosition(0,0);
}
systemMove.setValue(0);
game.setSystemMove(0,true);
}
public void mouseMoved(int x, int y, int nx, int ny) {
if (container.getContainer().getInput().isMouseButtonDown(0)) {
int xp = nx - 250;
int yp = ny - 300;
positionControls.setPosition(xp,yp);
systemMove.setValue(0);
game.setSystemMove(0,true);
}
}
};
game.setListener(listener);
// init graph window
initGraphEditorWindow();
emitters.setSelected(0);
try {
container.start();
} catch (SlickException e1) {
Log.error(e1);
}
}