|
GTGE API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
com.golden.gamedev.funbox.GameSettings
public abstract class GameSettings
GameSettings
is a dialog UI to show the user the basic game
options for the player to choose of.
The options includes :
Option to play between fullscreen or windowed mode, option to play using
bufferstrategy or not, and option turn on or turn off the sound.
To give the user more options or remove some options, subclass this class and
override the initSettings()
method.
Example of how-to-use GameSettings
class :
GameSettings settings = new GameSettings() { public void start() { // here goes the usual game initialization GameLoader game = new GameLoader(); game.setup(new RoboticsWarGame() { protected void initEngine() { super.initEngine(); // set active sound base on user setting bsSound.setActive(sound.isSelected()); bsMusic.setActive(sound.isSelected()); } }, new Dimension(640,480), fullscreen.isSelected(), bufferstrategy.isSelected()); game.start(); } // example removing bufferstrategy option from the list // then adding new option to use OpenGL or not JCheckBox opengl; protected JPanel initSettings() { JPanel pane = super.initSettings(); // remove bufferstrategy option pane.remove(bufferstrategy); // add opengl option opengl = new JCheckBox("OpenGL", true); pane.add(opengl, 0); } };
initSettings()
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JDialog |
---|
JDialog.AccessibleJDialog |
Nested classes/interfaces inherited from class java.awt.Dialog |
---|
Dialog.AccessibleAWTDialog |
Nested classes/interfaces inherited from class java.awt.Window |
---|
Window.AccessibleAWTWindow |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
protected JButton |
btnCancel
The Cancel button, clicking this button will abort the game. |
protected JButton |
btnOK
The OK button, clicking this button will launch the game. |
protected JCheckBox |
bufferstrategy
Check box UI for bufferstrategy option. |
protected JCheckBox |
fullscreen
Check box UI for fullscreen option. |
protected JCheckBox |
sound
Check box UI for sound option. |
protected URL |
splashImage
The splash image URL, null if the game has no splash image. |
Fields inherited from class javax.swing.JDialog |
---|
accessibleContext, rootPane, rootPaneCheckingEnabled |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface javax.swing.WindowConstants |
---|
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
GameSettings()
Builds up the game settings/options dialog for the player without splash image. |
|
GameSettings(boolean fullscreen)
Skips the option dialog, and directly init the game with specified mode and using bufferstrategy by default. |
|
GameSettings(boolean fullScreen,
boolean bufferStrategy)
Skips the option dialog, and start the game with specified mode and bufferstrategy. |
|
GameSettings(URL splashImage)
Builds up the game settings/options dialog for the user with specified splash image URL or null . |
Method Summary | |
---|---|
void |
actionPerformed(ActionEvent e)
Notified when the user press 'OK' or 'Cancel' button. |
protected JPanel |
initGUI()
Initializes the content of the settings, by default consists of splash image (if any), settings panel, and launch panel. |
protected JPanel |
initSettings()
Initializes and return the settings GUI, override this method to insert new option or remove some options. |
void |
run()
Thread implementation when the user pressing 'OK' button, directly called start() method. |
abstract void |
start()
Starts the game with all the defined settings, the game is actually created in this method. |
Methods inherited from class java.awt.Dialog |
---|
addNotify, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected JCheckBox fullscreen
protected JCheckBox bufferstrategy
protected JCheckBox sound
protected JButton btnOK
actionPerformed(ActionEvent)
protected JButton btnCancel
actionPerformed(ActionEvent)
protected URL splashImage
Constructor Detail |
---|
public GameSettings(URL splashImage)
For example :
new GameSettings(YourGame.class.getResource("splash.jpg")) { public void start() { // create the actual game in here } };
GameLoader
public GameSettings()
public GameSettings(boolean fullScreen, boolean bufferStrategy)
Used for direct play without specifying the game option everytime running the game while in developing stage.
public GameSettings(boolean fullscreen)
Used in game development, so no need to always specify the game option everytime running the game while in developing stage.
Method Detail |
---|
protected JPanel initGUI()
Example of modifying some UI components :
The first component is splash image (JLabel), settings panel (JPanel),
and launch panel (JPanel), using BorderLayout
protected JPanel initGUI() { JPanel pane = super.initGUI(); // modify launch panel, add Credits button JPanel launchPane = (JPanel) pane.getComponent(2); launchPane.add(new JButton("Credits"), 0); // remove splash image pane.remove(0); // insert splash image pane.add(new JButton("Splash Image"), BorderLayout.NORTH); }
GameSettings
content pane.initSettings()
protected JPanel initSettings()
For example :
JCheckBox opengl; protected JPanel initSettings() { JPanel pane = super.initSettings(); // add opengl option opengl = new JCheckBox("OpenGL"); // remove bufferstrategy option pane.remove(bufferstrategy); // set windowed mode by default fullscreen.setSelected(false); }
public void actionPerformed(ActionEvent e)
Pressing 'OK' will launch the game, while pressing 'Cancel' will immediatelly close the app.
actionPerformed
in interface ActionListener
public void run()
start()
method.
run
in interface Runnable
public abstract void start()
This method is called when the user is pressing the 'OK' button.
|
GTGE API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |