⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bball.java

📁 Audio demo
💻 JAVA
字号:
/* * * Copyright (c) 2007, Sun Microsystems, Inc. * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *  * Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. *  * Neither the name of Sun Microsystems nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */package example.audiodemo;import javax.microedition.lcdui.*;import javax.microedition.midlet.*;/* * this is a sample program to show ring tones synchronized with * selected background music. * It is based on the manyballs midlet. When a ball hits a wall, * a ring tone is heard. * * Usage: Use right arrow key to add one more ball (5 is the maximum). *        Use left arrow key to delete one ball *        Use up   arrow key to increase the speed of ball *        Use down arrow key to reduce the speed of ball * * @version */public class BBall extends MIDlet implements CommandListener, Runnable {    private static final String[] bgs =        { "no background", "wave background", "tone seq background", "MIDI background" };    static String wavbgUrl;    static String midbgUrl;    private static final Object gameLock = new Object();    private Command exitCommand = new Command("Exit", Command.EXIT, 1);    private Command playCommand = new Command("Play", Command.ITEM, 1);    private Display display;    private int idx = 0;    private List theList;    private BallCanvas game;    // if this MIDlet's startApp method is started    // for the first time    private boolean firstTime = true;    // pause/resume support    private boolean restartOnResume = false;    public BBall() {        display = Display.getDisplay(this);        theList = new List("Bouncing Ball", Choice.IMPLICIT);        for (int i = 0; i < bgs.length; i++) {            theList.append(bgs[i], null);        }        wavbgUrl = getAppProperty("BBall-wav-URL");        midbgUrl = getAppProperty("BBall-MIDI-URL");        theList.addCommand(playCommand);        theList.addCommand(exitCommand);        theList.setCommandListener(this);    }    // also called from BallCanvas    public void displayList() {        display.setCurrent(theList);    }    /**     * Called when this MIDlet is started for the first time,     * or when the MIDlet returns from paused mode.     *     * If it is the first time, display the menu list.     *     * Otherwise, wake up the thread. If music was playing     * when the MIDlet was paused, call the game's     * start method.     */    public void startApp() {        if (firstTime) {            displayList();            firstTime = false;        } else {            SmallBall.paused = false;            if ((game != null) && restartOnResume) {                game.start();            }            restartOnResume = false;        }    }    /**     * Called when this MIDlet is paused.     * Pause the thread.     * If the game is not already paused, call its pause method.     * For consistency across different VM's,     * it's a good idea to stop the player if     * it's currently playing.     */    public void pauseApp() {        SmallBall.paused = true;        restartOnResume = ((game != null) && !game.isPaused());        if (restartOnResume) {            game.pause();        }    }    /**     * Destroy must cleanup everything not handled     * by the garbage collector.     */    public void destroyApp(boolean unconditional) {        synchronized (gameLock) {            if (game != null) {                game.destroy();            }        }    }    /*     * Respond to commands, including exit     * On the exit command, cleanup and notify that the MIDlet has     * been destroyed.     */    public void commandAction(Command c, Displayable s) {        if (c == exitCommand) {            synchronized (gameLock) {                if (game != null) {                    game.destroy();                    game = null;                }            }            destroyApp(false);            notifyDestroyed();        } else if (((s == theList) && (c == List.SELECT_COMMAND)) || (c == playCommand)) {            idx = theList.getSelectedIndex();            new Thread(this).start();        }    }    public void run() {        synchronized (gameLock) {            if (game == null) {                game = new BallCanvas(this);            }            display.setCurrent(game);            game.init(8, idx);            if (game.needAlert()) {                Alert alert = new Alert("Warning", "Cannot create player", null, null);                alert.setTimeout(1000);                display.setCurrent(alert, game);            }            game.start();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -