您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术如何制作JAVA手机的N800的音乐播放功能 正文
如何制作JAVA手机的N800的音乐播放功能

如何制作JAVA手机的N800的音乐播放功能

点击数:7584 次   录入时间:03-04 11:43:15   整理:http://www.55dianzi.com   嵌入式系统-技术

    }elseif(barX+BAR_WIDTH>getWidth()){

    barX=getWidth()-BAR_WIDTH;

    }

    }

    ex.8

    以下表示的是按键处理。(ex.9)

    /*****************************************

    *按键处理

    *****************************************/

    /**

    *按按键时

    */

    protectedvoidkeyPressed(intkey){

    if(state==ACTIVE){//正在运动

    if(getGameAction(key)==Canvas.RIGHT){

    barMovCodeExample=6;

    }elseif(getGameAction(key)==Canvas.LEFT){

    barMovCodeExample=-6;

    }

    repaint();

    }else{//停止运动后

    //再次启动

    this.initialize();

    }

    }

    /**

    *释放按键时

    */

    protectedvoidkeyReleased(intkey){

    barMovCodeExample=0;

    }

    ex.9

    5.球的反弹

    下面是球的反弹。

    球的反弹形式有以下3种。

    ·碰边壁后反弹

    ·碰小棒后反弹

    ·碰彩球后反弹

    记述了每个moveBall方法。(ex.10)

    碰彩球的反弹时

    bLOCk[i][j]=false;

    blockCount--;

    彩球立刻就破碎。彩球破碎后余下的彩球数量blockCount将有所减少。

    另外,球掉落时,改变游戏状态后游戏结束。

    /**

    //使球运动

    */

    publicvoidmoveBall(){

    ballX+=ballMovCodeExample;

    ballY+=ballMoveY;

    //反弹

    //碰边壁后反弹

    if(ballX<0){

    ballMovCodeExample*=-1;

    ballX=0;

    }elseif(getWidth()

    ballX=getWidth()-BALL_HEIGHT;

    ballMovCodeExample*=-1;

    }

    if(ballY<0){

    ballMoveY*=-1;

    ballY=0;

    }elseif(ballY>getHeight()){//球落下后

    //游戏结束

    state=GAME_OVER;

    }

    //碰上小棒后反弹

    if(ballY+BALL_HEIGHT>barY

    &&ballX+BALL_WIDTH>barX

    &&ballX

    ballMoveY*=-1;

    ballY=barY-BALL_HEIGHT;

    if(barMovCodeExample<0){

    ballMovCodeExample-=2;

    }elseif(barMovCodeExample>0){

    ballMovCodeExample+=2;

    }

    }

    //碰上彩球后反弹

    for(inti=0;i

    for(intj=0;j

    if(block[i][j]){

    if(ballX+BALL_WIDTH>i*BLOCK_WIDTH

    &&ballX<(i+1)*BLOCK_WIDTH){

    if(ballY+BALL_HEIGHT>(j+1)*BLOCK_HEIGHT

    &&ballY<(j+2)*BLOCK_HEIGHT){

    //清除彩球

    block[i][j]=false;

    blockCount--;

    ballMoveY*=-1;}

    }

    }

    }

    }

    }

    }

    ex.10

    碰小棒后反弹情况如下所示:向右按键时,球就会让右方快速移动,反之,向左按键时,球则向左方快速移动。(ex.11)

    if(barMoveX<0){

    ballMoveX-=2;

    }elseif(barMoveX>0){

    ballMoveX+=2;

    }

    ex.11

    ·清除检查

    至此安装完毕游戏就有雏形了。但是,在现在的程序中即使彩球全部消失,游戏也不能清除。那么,球与彩球相撞时,数出彩球的剩余数。当该数值为0时,则游戏清除。以下记述的是该处理。(ex.12)

    //清除彩球

    block[i][j]=false;

    blockCount--;

    ballMoveY*=-1;

    //播放音效

    blockSound.play();

    //检查游戏清除

    if(blockCount==0){

    state=CLEAR;

    }

    ex.12

    6.音乐播放

    在本讲中的泡泡龙游戏的应用程序中最好使用BGM和音效。游戏开始的同时演奏BGM,音效则是球在碰壁、碰小棒反弹时,以及彩球破碎时才播放的。

    ·读取

    用BlockApplication构造函数读取音乐数据。而且,这里的BGM能够循环播放,所以可以使用音频事件处理。(ex.13)

    //声音数据的读取

    bgm=Media.getAudioClip("/bgm.mid");//背景音乐

    ballSound=Media.getAudioClip("/ball.mid");//球反弹后的音效

www.55dianzi.com

    bLOCkSound=Media.getAudioClip("/block.mid");//球破碎的音效

    bgm.addAudioListener(this);//增加AudioListener

    ex.13

    ·播放

    读取音乐数据后,接下来进行播放。BGM在游戏开始的同时能够播放,所以在AudioCANvas类的start方法中记述播放处理并能够播放出来。

    球的音效:用moveBall方法进行下面反弹判断时,能够播放音效。(ex.14)

    //反弹

    //碰边壁后反弹

    if(ballX<0){

    ballMoveX*=-1;

    ballX=0;

    //播放音效

    ballSound.play();

    }elseif(getWidth()

    ballX=getWidth()-BALL_HEIGHT;

    ballMoveX*=-1;

    //播放音效

    ballSound.play();

    }

    if(ballY<0){

    ballMoveY*=-1;

    ballY=0;

    //播放音效

    ballSound.play();

    }elseif(ballY>getHeight()){//球落下后

    //游戏结束

    state=GAME_OVER;

    }

    //碰上小棒反弹

    if(ballY+BALL_HEIGHT>barY

上一页  [1] [2] [3] [4]  下一页


本文关键字:如何  制作  手机  音乐播放  Java  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术