public void initGame() { String cfgname = null; if (isApplet()) { cfgname = getParameter("configfile"); } else { JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new File(System.getProperty("user.dir"))); chooser.setDialogTitle("Choose a config file"); int returnVal = chooser.showOpenDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { cfgname = chooser.getSelectedFile().getAbsolutePath(); } else { System.exit(0); } // XXX read this as resource! // cfgname = "mygeneratedgame.appconfig"; } gamecfg = new AppConfig("Game parameters", this, cfgname); gamecfg.loadFromFile(); gamecfg.defineFields("gp_", "", "", ""); gamecfg.saveToObject(); initMotionPars(); // unpause and copy settingswhen config window is closed gamecfg.setListener( new ActionListener() { public void actionPerformed(ActionEvent e) { start(); requestGameFocus(); initMotionPars(); } }); defineMedia("simplegeneratedgame.tbl"); setFrameRate(35, 1); }
public static void main(String[] args) { try { SynthesizerModeDesc desc = new SynthesizerModeDesc(Locale.ENGLISH); synth = Central.createSynthesizer(desc); synth.addEngineListener(new TestEngineListener()); synth.addSpeakableListener(new TestSpeakableListener()); synth.addEngineListener( new SynthesizerAdapter() { public void queueUpdated(SynthesizerEvent e) { System.out.println("wait till queue empty..."); try { synth.waitEngineState(synth.QUEUE_EMPTY); } catch (InterruptedException ex) { ex.printStackTrace(); } System.out.println("...waiting ended"); } }); synth.allocate(); synth.resume(); synth.waitEngineState(Synthesizer.ALLOCATED); SynthesizerProperties props = synth.getSynthesizerProperties(); // SAPI5 engine... // Voice v = new Voice("Microsoft Mary",Voice.GENDER_FEMALE, Voice.AGE_DONT_CARE, null); // ...or SAPI4 engine Voice v = new Voice("Mary", Voice.GENDER_FEMALE, Voice.AGE_DONT_CARE, null); props.setVoice(v); // This starts all events for this Synthesizer in the current Thread. // With this call, the waitEngineState call will prevent *any* other // speech events from being sent since it will halt the current thread ((CGEngineProperties) props).setEventsInNewThread(true); synth.speak("Hello World!", null); synth.waitEngineState(synth.QUEUE_EMPTY); System.out.println("all done"); } catch (Exception e) { e.printStackTrace(System.out); } catch (Error e1) { e1.printStackTrace(System.out); } finally { try { synth.deallocate(); synth.waitEngineState(synth.DEALLOCATED); } catch (Exception e2) { } System.exit(0); } }