android-Android打砖块代码 其中系统说格式错误 求帮助

问题描述

Android打砖块代码 其中系统说格式错误 求帮助
我这边有一个打砖块代码,我将它移植到我的按钮事件触发里 提示我格式错误 下面前两个是打砖块代码 ,后两个是转到我的里面之后的, 标注了,请帮忙。
package ab.cc;

import android.app.Activity;

import android.os.Bundle;

import android.util.DisplayMetrics;

import android.view.KeyEvent;

import android.view.MotionEvent;

import android.view.Window;
import android.view.WindowManager;

public class BaomingActivity extends Activity
{

BallView myView;

static int screenWidth;

static int screenHeight;

/** Called when the activity is first created. */
@Override

public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);/* 定义DisplayMetrics对象 */

DisplayMetrics dm = new DisplayMetrics();

/* 取得窗口属性 */

getWindowManager().getDefaultDisplay().getMetrics(dm);

/* 窗口的宽度 */

screenWidth = dm.widthPixels;

    /* 窗口的高度 */

screenHeight = dm.heightPixels;
//

setTitle(""宽""+screenWidth+"" 高""+screenHeight);

    /* 设置为无标题栏 */

requestWindowFeature(Window.FEATURE_NO_TITLE);

/* 设置为全屏模式 */ 

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREENWindowManager.LayoutParams.FLAG_FULLSCREEN);

myView = new BallView(this);

   //设置显示GameSurfaceView视图

setContentView(myView);
}//end of onCreate()

   //触笔事件

public boolean onTouchEvent(MotionEvent event)
{

return true;}   //按键按下事件

public boolean onKeyDown(int keyCode KeyEvent event)
{

switch (keyCode)    {//菜单按键-设为初始菜单

case KeyEvent.KEYCODE_MENU:

myView.resetGame();    //重新开始break;//中间按键case KeyEvent.KEYCODE_DPAD_CENTER:myView.ball_isRun = !myView.ball_isRun;//开始//暂停    break;

//左方向键

case KeyEvent.KEYCODE_DPAD_LEFT:

        if(myView.ball_isRun){    if(myView.board_left<=myView.board_x_move)        {myView.board_left=0;    myView.board_right=myView.board_length;    }else{    myView.board_left-=myView.board_x_move;            myView.board_right-=myView.board_x_move;}

}

             break;

//右方向键

case KeyEvent.KEYCODE_DPAD_RIGHT:
if(myView.ball_isRun){

    if(screenWidth-myView.board_right<=myView.board_x_move )

{
myView.board_left=screenWidth-myView.board_length;

                                myView.board_right=screenWidth;}else{                myView.board_left+=myView.board_x_move;                                    myView.board_right+=myView.board_x_move;        }        }        break;        //上方向键case KeyEvent.KEYCODE_DPAD_UP:    if(myView.ball_isRun){    if( myView.board_alterable_top==myView.board_default_top)

{

    myView.board_alterable_top-=myView.boardYadd;            myView.board_alterable_bottom-=myView.boardYadd;            }        }        break;      //下方向键   case KeyEvent.KEYCODE_DPAD_DOWN:if(myView.ball_isRun){if( myView.board_alterable_top==myView.board_default_top-myView.boardYadd ){                myView.board_alterable_top=myView.board_default_top;myView.board_alterable_bottom=myView.board_alterable_top+myView.board_thickness;            }        }break;  

//返回键
case KeyEvent.KEYCODE_BACK:

this.finish();break;  

}//end switch
return false;
}

//按键弹起事件

public boolean onKeyUp(int keyCode KeyEvent event)
{

    return true;}

public boolean onKeyMultiple(int keyCode int repeatCount KeyEvent event)
{

return true;}

}

package ab.cc;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RadialGradient;
import android.graphics.Shader;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class BallView extends SurfaceView implements
SurfaceHolder.Callback Runnable {

//线程延时控制 final int ball_sleep=1;//毫秒,延时越大,球速越慢final int ball_r= 8;//小球半径final float ball2_r= 8;//底下滚珠小球半径final int ballXorYadd = 4;//小球的基本位移。测试可行值:2,4//获取屏幕宽度和高度int screen_width;//320;int screen_height;//480;//砖的属性int brick_width;//每块砖宽int brick_height;//每块砖高boolean brick_exist[];//砖是否存在int k ;// 列//到for循环里才初始化int j ;// 行int brick_left = brick_width*(k-1);//到判断语句才初始化int brick_right = brick_width*k;int brick_top = brick_height*j;int brick_bottom = brick_height*(j+1);//挡板的属性int board_length;//挡板长度:80比较合适,可以随意修改但别超过screen_widthfinal int boardYadd = 16;//按上下键时挡板y方向位移量。经验证4、8、16可以,12不行final int board_x_move = 30;//挡板x方向位移量:可以随意自定义int board_left;//挡板左侧(可变)int board_right;//挡板右侧(可变)int board_thickness;//挡板厚度int board_default_top;//即435挡板的top面初始位置int board_alterable_top;//挡板上侧(可变)int board_alterable_bottom;//挡板下侧(可变)int ball_default_x;//球的初始x坐标int ball_default_y;//球的初始y坐标//球的即时坐标(可变):int ball_x;//球心横坐标int ball_y;//球心纵坐标//球的前一步的y坐标int ball_previous_y;int ball_x_speed;//球的横向偏移量//可变int ball_y_speed;//球的纵向偏移量//可变boolean ball_isRun;//球是否在动// 控制循环boolean mbLoop;// 定义SurfaceHolder对象SurfaceHolder mSurfaceHolder = null;//获得分数int score;/* 唤醒渐变渲染 */Shader mRadialGradient = null;

//------------------------------------------------------------------------------------------------------//
public BallView(Context context) {
super(context);
// 实例化SurfaceHolder
mSurfaceHolder = this.getHolder();
// 添加回调
mSurfaceHolder.addCallback(this);
this.setFocusable(true);

    //获取屏幕宽度和高度    screen_width = BaomingActivity.screenWidth;//320    screen_height = BaomingActivity.screenHeight;//480    //砖的属性    brick_width = screen_width/5;//每块砖宽64    brick_height = screen_height/15;//每块砖高32    //挡板的属性    board_length = screen_width/4;//挡板长度:80比较合适,可以随意修改但别超过screen_width    board_left = (screen_width-board_length)/2;//挡板左侧(可变)    board_right = (screen_width+board_length)/2;//挡板右侧(可变)    board_thickness = 5;//挡板厚度    board_default_top = 13*screen_height/15;//即435挡板的top面初始位置    board_alterable_top = board_default_top;//挡板上侧(可变)    board_alterable_bottom = board_alterable_top+board_thickness;//挡板下侧(可变)    ball_default_x = screen_width/2;//球的初始x坐标    ball_default_y = board_default_top - ball_r;//球的初始y坐标    //球的即时坐标(可变):    ball_x = ball_default_x;    ball_y = ball_default_y;    //球的前一步的y坐标    ball_previous_y = 0;    ball_x_speed = ballXorYadd;//球的横向偏移量    ball_y_speed = ballXorYadd;//球的纵向偏移量    mbLoop = true;    ball_isRun = false;    score=0;    brick_exist = new boolean[25];    for (int i = 0; i < 25; i++) {        brick_exist[i] = true;    }    /* 构建RadialGradient对象,设置半径的属性 */    mRadialGradient = new RadialGradient(ball_x ball_y ball_r//球中心坐标xy半径r            new int[]{Color.WHITEColor.BLUEColor.GREENColor.REDColor.YELLOW}//颜色数组            null//颜色数组中每一种颜色对应的相对位置,为空的话就是平均分布,由中心向外排布            Shader.TileMode.REPEAT);//渲染模式:重复}public void resetGame(){    ball_isRun = false;    score =0;//分数    ball_x_speed = ballXorYadd;//球的横向偏移量    ball_y_speed = ballXorYadd;//球的纵向偏移量    ball_x = screen_width/2;//球心起始横坐标    ball_y = board_default_top - ball_r;//球心起始纵坐标    board_left = (screen_width-board_length)/2;//挡板左侧    board_right = (screen_width+board_length)/2;//挡板右侧    board_alterable_top = board_default_top;//挡板上侧    board_alterable_bottom = board_alterable_top+board_thickness;//挡板下侧    for (int i = 0; i < 25; i++) {        brick_exist[i] = true;    }}//---------------------------------绘图循环开始----------------------------------public void run() {    while (mbLoop&&!Thread.currentThread().isInterrupted()) {        try {            Thread.sleep(ball_sleep);        }        catch (InterruptedException e) {            Thread.currentThread().interrupt();        }        //球的前一步y坐标        ball_previous_y = ball_y;        if (ball_isRun) {            ballRunning();// 让小球移动            boardPositionCheck();//检测挡板是否处于“中线”位置,是就随小球上升一步,直至到“上线”            hitWallCheck();//墙壁碰撞检测            hitBoardCheck();//挡板碰撞检测            hitBrickCheck();//砖块碰撞检测        }        synchronized (mSurfaceHolder)         {            Draw();        }    }}//---------------------------------绘图循环结束----------------------------------//------------------------------------------------------------------------------//让小球移动public void ballRunning() {    ball_x += ball_x_speed;    ball_y -= ball_y_speed;}//朝左或朝右碰撞后小球水平方向逆向public void ballLeftOrRightHit() {    ball_x_speed *= -1;}//朝上或朝下碰撞后小球竖直方向逆向public void ballUpOrDownHit() {    ball_y_speed *= -1;}public void ballcornerHit() {    ball_x_speed *= -1;    ball_y_speed *= -1;}public void ballStraightUp() {//功能没实现,这是多余代码    ball_x_speed = 0;//注意在其他地方恢复    ball_y_speed *= -1;}//-------------------墙壁碰撞检测开始-------------------------------------public void hitWallCheck() {    // 左碰墙    if (ball_x <= ball_r &&         ball_y >= ball_r && ball_y <= screen_height)     {        ballLeftOrRightHit();    // 右碰墙    }    if (ball_x >= screen_width - ball_r && //不能写为 else if因为可能恰好碰到角落。               ball_y >= ball_r && ball_y <= screen_height)     {        ballLeftOrRightHit();    }    // 上碰墙    if (ball_x >= ball_r && ball_x <= screen_width - ball_r &&              ball_y <= ball_r + brick_height) //、、、、、、、、、、、、、、、25号修改    {        ballUpOrDownHit();    }    // 下碰墙    if (ball_x >= ball_r && ball_x <= screen_width - ball_r &&              ball_y >= screen_height-ball_r)     {        ballUpOrDownHit();        if(score<=10){            score = 0;        }        else score-=10;    }}//-------------------墙壁碰撞检测结束-------------------------------------//-----------------------------挡板碰撞检测开始---------------------------public void hitBoardCheck() {    // 下碰挡板正面    if (ball_x >= ball_r && ball_x <= screen_width - ball_r && //在屏幕内,起码条件        ball_x >= board_left && ball_x <= board_right && //在挡板X域上方        ball_y == board_alterable_top - ball_r &&//球面与挡板相切        ball_previous_y <= board_alterable_top - ball_r  //确定球是从上方下落        )    {        if(board_alterable_top==board_default_top-boardYadd ){//如果弹簧伸张,挡板位于上线            ballHitBoardlower();//作用:ball_y_move减小;挡板被打下;小球Y向运动反向        }        else if(board_alterable_top==board_default_top){//如果弹簧压缩,挡板位于下线            boardHitBallHigher();//作用:ball_y_move增加;挡板弹上;小球Y向运动反向        }    }    //斜碰挡板右上角//经验证有效    else if(Math.pow(board_right-ball_x 2)+Math.pow(board_alterable_top-ball_y2)<=Math.pow(ball_r 2)&&            ball_x>board_right && ball_y<board_alterable_top)    {        ballcornerHit();    }    //斜碰挡板的左上角//经验证有效    else if(Math.pow(board_left-ball_x 2)+Math.pow(board_alterable_top-ball_y2)<=Math.pow(ball_r 2)&&            ball_x<board_left && ball_y<board_alterable_top)    {        ballcornerHit();    }}//-----------------------------挡板碰撞检测结束--------------------------private void boardHitBallHigher() {//增强    ballUpOrDownHit();//小球Y方向反向ball_y_speed变为正数    if(ball_y_speed == ballXorYadd ){        ball_y_speed += ballXorYadd;//离开挡板后小球Y方向速度增强    }    if( boardYadd > ball_y_speed ){//在线程这一轮,小球上升多少,挡板就上升多少。        board_alterable_top = board_default_top - ball_y_speed;        board_alterable_bottom= board_alterable_top+board_thickness;//挡板下层面    }}//检测挡板是否处于“中线”位置,是就随小球上升一步,直至到“上线”private void boardPositionCheck() {//还可直接利用球的位置刷新,board_top与球心相差ball_r    if(board_alterable_top < board_default_top && board_alterable_top > board_default_top-boardYadd){        //挡板随球上升        if(board_alterable_top - ball_y_speed >= board_default_top-boardYadd){            board_alterable_top -= ball_y_speed;//挡板上层面            board_alterable_bottom= board_alterable_top+board_thickness;//挡板下层面        }        else{            board_alterable_top = board_default_top-boardYadd;//挡板上层面            board_alterable_bottom= board_alterable_top+board_thickness;//挡板下层面        }    }}private void ballHitBoardlower() {//减弱    board_alterable_top=board_default_top;    board_alterable_bottom=board_default_top+board_thickness;//挡板被打退    ballUpOrDownHit();//小球Y方向反向    if(ball_y_speed==2*ballXorYadd){        ball_y_speed -= ballXorYadd;//小球Y方向速度减弱    }}//砖块碰撞检测开始-----------------------------------------------------------public void hitBrickCheck() {    for (int i = 0; i <25 ; i++) {    if (brick_exist[i]) {        k = i % 5+1;// 12345循环        j = i / 5+1;// 11111;22222;...;55555        brick_left = brick_width*(k-1);        brick_right = brick_width*k;        brick_top = brick_height*j;        brick_bottom = brick_height*(j+1);        //朝下碰砖的top面 AAAAAAAAAAAAAAAAAAAAA        if(ball_x >= brick_left && ball_x <= brick_right &&           ball_y >= brick_top-ball_r && ball_y < brick_top)         {            ballUpOrDownHit();            brick_exist[i] = false;            score+=4;            //朝下正碰2砖中间,i砖右上角检测            if(k!=5 && ball_x == brick_right)//如果不是第5列砖的右侧边            {                //如果砖[i+1]存在                if(brick_exist[i+1]){                    brick_exist[i+1] = false;                    score+=4;                }            }            //朝下正碰2砖中间,i砖左上角检测            else if(k!=1 && ball_x == brick_left)//如果不是第1列砖的左侧边            {                //如果砖[i-1]存在                if(brick_exist[i-1]){                    brick_exist[i-1] = false;                    score+=4;                }            }        }        //朝上碰砖的bottom面 BBBBBBBBBBBBBBBBB        else if(ball_x >= brick_left && ball_x <= brick_right &&                ball_y > brick_bottom&& ball_y <= brick_bottom + ball_r )        {            ballUpOrDownHit();            brick_exist[i] = false;            score+=4;            //朝上正碰2块砖中间--i砖的右下角检测            if(k!=5 && ball_x == brick_right) //如果不是第5列砖的右侧边            {                if(brick_exist[i+1]){//如果砖[i+1]存在                    brick_exist[i+1] = false;                    score+=4;                }            }            //朝上正碰2块砖中间--i砖的左下角检测            else if(k!=1 && ball_x == brick_left) //如果不是第1列砖的左侧边            {                if(brick_exist[i-1]){//如果砖[i-1]存在                    brick_exist[i-1] = false;                    score+=4;                }            }        }        //朝右碰砖的left面CCCCCCCCCCCCCCCCC        else if(ball_x >= brick_left -ball_r&&ball_x < brick_left&&           ball_y >= brick_top && ball_y <= brick_bottom)        {            ballLeftOrRightHit();            brick_exist[i] = false;            score+=4;            //朝右正碰2块砖中间,左下角检测            if(j!=5 && ball_y == brick_bottom)//如果不是第5行砖的下侧边            {                if(brick_exist[i+5]){//如果砖[i+5]存在                    brick_exist[i+5] = false;                    score+=4;                }            }            //朝右正碰2块砖中间,左上角检测            else if(j!=1 && ball_y == brick_top)//如果不是第1行砖的上侧边            {                if(brick_exist[i-5]){//如果砖[i-5]存在                    brick_exist[i-5] = false;                    score+=4;                }            }        }        //朝左碰砖的right面DDDDDDDDDDDDDDDDDD        else if(ball_x >= brick_right && ball_x <= brick_right+ball_r&&           ball_y >= brick_top && ball_y <= brick_bottom)        {            ballLeftOrRightHit();            brick_exist[i] = false;            score+=4;            //朝左正碰2块砖中间,右下角检测            if(j!=5 && ball_y == brick_bottom )//如果不是第5行砖的下侧边            {                if(brick_exist[i+5]){//如果砖[i+5]存在                    brick_exist[i+5] = false;                    score+=4;                }            }             //朝左正碰2块砖中间,右上角检测            else if(j!=1 && ball_y == brick_top )//如果不是第1行砖上侧边            {                if(brick_exist[i-5]){//如果砖[i-5]存在                    brick_exist[i-5] = false;                    score+=4;                }            }        }        /////////////////////////////////////////        //斜碰i砖的左下角EEEEEEEEEEEEEEEEEEEEEEEE        else if(( i-1<0||(i-1>=0&&!brick_exist[i-1]) ) &&                (i+5>=25||(i+5<25&&!brick_exist[i+5]) )&&                Math.pow(brick_left-ball_x 2)+Math.pow(brick_bottom-ball_y2)<=Math.pow(ball_r 2)&&                ball_x>brick_left-ball_r && ball_x<brick_left &&                 ball_y>brick_bottom && ball_y<brick_bottom+ball_r )        {            ballcornerHit();            brick_exist[i] = false;            score+=4;        }        //斜碰i砖的右下角FFFFFFFFFFFFFFFFFFFFFFFFFF        else if( (i+1>=25||(i+1<25&&!brick_exist[i+1]) )&&                 (i+5>=25||(i+5<25&&!brick_exist[i+5]) )&&                Math.pow(brick_right-ball_x 2)+Math.pow(brick_bottom-ball_y2)<=Math.pow(ball_r 2)&&                ball_x>brick_right&&ball_x<brick_right+ball_r&&                ball_y>brick_bottom&&ball_y<brick_bottom+ball_r )        {            Log.v(""----------""right bottom hit""+i+"":""+brick_exist[i]);            ballcornerHit();             brick_exist[i] = false;            score+=4;        }        //斜碰i砖的右上角GGGGGGGGGGGGGGGGGGGGGGGG        else if( (i+1>=25||(i+1<25&&!brick_exist[i+1]) )&&                (i-5<0||(i-5>0&&!brick_exist[i-5]) )&&                Math.pow(brick_right-ball_x 2)+Math.pow(brick_top-ball_y2)<=Math.pow(ball_r 2)&&                ball_x>brick_right && ball_x<brick_right+ball_r&&                ball_y>brick_top-ball_r && ball_y<brick_top)                  {            ballcornerHit();            brick_exist[i] = false;            score+=4;        }        //斜碰i砖的左上角HHHHHHHHHHHHHHHHHHHHHHHHHH        else if((i-1<0||(i-1>=0&&!brick_exist[i-1])) &&                (i-5<0||(i-5>=0&&!brick_exist[i-5])) &&                Math.pow(brick_left-ball_x 2)+Math.pow(brick_top-ball_y2)<=Math.pow(ball_r 2)&&                ball_x>brick_left-ball_x && ball_x<brick_left &&                ball_y>brick_top-ball_r && ball_y<brick_top )        {            ballcornerHit();            brick_exist[i] = false;            score+=4;        }    }//end if    }//end for  }//end hitBrickCheck()//砖块碰撞检测结束-----------------------------------------------------------//------------------------------------------public boolean gameOver(){    int count = 0;    for(boolean s:brick_exist){        if(!s){            count++;        }    }    if(count == 25){        return true;    }else{        return false;    }}//------------------------------------------//---------------绘图方法开始------------------------public void Draw() {    // 锁定画布,得到canvas    Canvas canvas = mSurfaceHolder.lockCanvas();    if (mSurfaceHolder == null || canvas == null) {        return;    }    // 绘图    Paint mPaint = new Paint();    // 设置取消锯齿效果    mPaint.setAntiAlias(true);    mPaint.setColor(Color.BLACK);    // 绘制矩形--背景    canvas.drawRect(0 0 screen_width brick_height-2 mPaint);    mPaint.setColor(Color.GREEN);    // 绘制矩形--背景    canvas.drawRect(0 brick_height-2 screen_width screen_height mPaint);    mPaint.setColor(Color.RED);//设置字体颜色    mPaint.setTextSize(brick_height-7);//设置字体大小    canvas.drawText(""得分:""+score 0 brick_height-7 mPaint);    // 绘制顶层挡板````````````````````````````````````````````````````````25号修改    mPaint.setColor(Color.BLACK);//设置颜色     mPaint.setStrokeWidth(4);//设置粗细    canvas.drawLine(0 brick_height-2 screen_width brick_height-2 mPaint);    for (int i = 0; i <25 ; i++) {        if (brick_exist[i]) {            k = i % 5+1;// 12345循环            j = i / 5+1;// 11111;22222;...;55555            brick_left = brick_width*(k-1);            brick_right = brick_width*k;            brick_top = brick_height*j;            brick_bottom = brick_height*(j+1);            mPaint.setStyle(Paint.Style.FILL);// 设置实心画笔            mPaint.setColor(Color.YELLOW);            canvas.drawRect(brick_left+1 brick_top+1 brick_right-1brick_bottom-1 mPaint);            mPaint.setStyle(Paint.Style.STROKE);// 设置空心画笔            mPaint.setStrokeWidth(2);//设置粗细            mPaint.setColor(Color.BLUE);            canvas.drawRect(brick_left+3 brick_top+3 brick_right-3brick_bottom-3 mPaint);        }    }    // 设置实心画笔    mPaint.setStyle(Paint.Style.FILL);    {        mPaint.setShader(mRadialGradient);        canvas.drawCircle(ball_x ball_y ball_r mPaint);    }       Paint mPaint2 = new Paint();        // 设置取消锯齿效果    mPaint2.setAntiAlias(true);     // 设置实心画笔    mPaint2.setStyle(Paint.Style.FILL);    {       mPaint2.setColor(Color.BLACK);    /* 绘制矩形挡板 */    canvas.drawRect(board_left board_alterable_top board_right board_alterable_bottommPaint2);    float board2_bottom = screen_height - 2*ball2_r;//164    float board2_top = board2_bottom - 4;//160    //线段端点坐标数组    float x0 = board_left+(board_right-board_left)/4;    float y0 = board_alterable_bottom;//440或者444    float springAdd = (board2_top- board_alterable_bottom)/8;//即2.5或者2:弹簧小线段的y向长度    float springWidth = 5.0f;//弹簧小线段的x向长度    float x1 = x0 - springWidth;    float y1 = y0 + springAdd;    float x2 = x0 + springWidth;    float y2 = y0 + 3*springAdd;    float x3 = x1 ;    float y3 = y0 + 5*springAdd;    float x4 = x2;    float y4 = y0 + 7*springAdd;    float x5 = x0 ;    float y5 = board2_top;//即460     float between_spring = (board_right-board_left)/2;    float pts[] = { x0y0x1y1                    x1y1x2y2                    x2y2x3y3                    x3y3x4y4                    x4y4x5y5};    float pts2[] = {x0+between_springy0 x1+between_springy1                    x1+between_springy1 x2+between_springy2                    x2+between_springy2 x3+between_springy3                    x3+between_springy3 x4+between_springy4                    x4+between_springy4 x5+between_springy5};    mPaint2.setStrokeWidth(2);//设置弹簧粗细    //绘制2个弹簧    canvas.drawLines(pts mPaint2);    canvas.drawLines(pts2 mPaint2);    //绘制下层挡板    canvas.drawRect(board_left board2_top board_right board2_bottommPaint2);    mPaint2.setColor(Color.BLACK);//    // 绘制最下面的两个“轮子”(圆心x圆心y半径rp)     canvas.drawCircle(board_left+ball2_r screen_height-ball2_r ball2_r mPaint2);//圆    canvas.drawCircle(board_right-ball2_r screen_height-ball2_r ball2_r mPaint2);    mPaint2.setColor(Color.WHITE);//    canvas.drawPoint(board_left+ball2_r screen_height-ball2_r mPaint2);//绘制左轮轮心    canvas.drawPoint(board_right-ball2_r screen_height-ball2_r mPaint2);//绘制右轮轮心    }//实心画笔mPaint2结束    if(gameOver()){ 

// mbLoop = false;//注释掉的话GAME OVER后也可重启
ball_isRun = false;
mPaint2.setColor(Color.BLACK);//设置字体颜色
mPaint2.setTextSize(40.0f);//设置字体大小
canvas.drawText(""GAME OVER"" screen_width/32+40 screen_height/16*9-70 mPaint2);
mPaint2.setTextSize(20.0f);//设置字体大小
canvas.drawText(""Press ""MENU"" button to restart
screen_width/32 //320/32=10
screen_height/16*9 //480/16=3030*9=270
mPaint2);
canvas.drawText(""Press ""BACK"" button to exit.""
screen_width/32 //320/32=10
screen_height/16*10 //480/16=3030*10=300
mPaint2);
}
// 绘制后解锁,绘制后必须解锁才能显示
mSurfaceHolder.unlockCanvasAndPost(canvas);
}// end of Draw()
//---------------------绘图方法结束-----------------------------------------------

// 在surface的大小发生改变时激发public void surfaceChanged(SurfaceHolder holder int format int width        int height) {}// 在surface创建时激发public void surfaceCreated(SurfaceHolder holder) {    new Thread(this).start();// 开启绘图线程}// 在surface销毁时激发public void surfaceDestroyed(SurfaceHolder holder) {    // 停止循环    mbLoop = false;}

}

package sen.tan;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class dazhuankuaiActivity extends Activity {
BallView myview;
public static int screenWidth ;
public static int screenHeight;
private TextView textview;
Button kaishijieshuguanyu;
ImageView image;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String string = ""欢迎进入疯狂打砖块游戏"";
image = (ImageView) this.findViewById(R.id.image);
image.setImageResource(R.drawable.img1);
textview =(TextView) this.findViewById(R.id.textview);
textview.setTextSize(20);
textview.setTextColor(Color.GREEN);
textview.setBackgroundColor(Color.RED);
textview.setText(string);
kaishi=(Button)findViewById(R.id.button1);
guanyu=(Button)findViewById(R.id.button2);
jieshu=(Button)findViewById(R.id.button3);
kaishi.setWidth(250);
guanyu.setWidth(200);
jieshu.setWidth(150);
kaishi.setTextSize(35);
guanyu.setTextSize(29);
jieshu.setTextSize(24);

    jieshu.setOnClickListener(new Button.OnClickListener(){        public void onClick(View v)        {            dazhuankuaiActivity.this.finish();        }    });    guanyu.setOnClickListener(new Button.OnClickListener(){        public void onClick(View v){            textview.setText(""本游戏由邵明森和谭明星制作,此游戏控制左右按键,来回移动挡板,不让小球掉落,当小球把上方砖块全部打完时,游戏胜利"");        }    });    kaishi.setOnClickListener(new Button.OnClickListener(){        public void onClick(View v){            public void onCreate(Bundle savedInstanceState)这里显示的错误 显示的是上面两个括号标示不对。            {            super.onCreate(savedInstanceState);            DisplayMetrics dm = new DisplayMetrics();            getWindowManager().getDefaultDisplay().getMetrics(dm);            screenWidth = dm.widthPixels;            screenHeight = dm.heightPixels;                         setTitle(""宽""+screenWidth+""  高""+screenHeight);            requestWindowFeature(Window.FEATURE_NO_TITLE);             getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREENWindowManager.LayoutParams.FLAG_FULLSCREEN);             myview = new BallView(this);            setContentView(myview);            }        }        public boolean onTouchEvent(MotionEvent event)        {        return true;        }     public boolean onKeyDown(int keyCode KeyEvent event)        {       switch (keyCode)            {    case KeyEvent.KEYCODE_MENU:        myview.resetGame();        break;        case KeyEvent.KEYCODE_DPAD_CENTER:        myview.ball_isRun = !myview.ball_isRun;            break;    case KeyEvent.KEYCODE_DPAD_LEFT:            if(myview.ball_isRun){            if(myview.board_left<=myview.board_x_move)                {        myview.board_left=0;            myview.board_right=myview.board_length;            }else{            myview.board_left-=myview.board_x_move;                    myview.board_right-=myview.board_x_move;}    }                     break;    case KeyEvent.KEYCODE_DPAD_RIGHT:    if(myview.ball_isRun){            if(screenWidth-myview.board_right<=myview.board_x_move )     {                        myview.board_left=screenWidth-myview.board_length;                                        myview.board_right=screenWidth;            }else{                        myview.board_left+=myview.board_x_move;                        myview.board_right+=myview.board_x_move;                }                }             break;         case KeyEvent.KEYCODE_DPAD_UP:            if(myview.ball_isRun){            if( myview.board_alterable_top==myview.board_default_top)    {            myview.board_alterable_top-=myview.boardYadd;            myview.board_alterable_bottom-=myview.boardYadd;                    }                }            break;           case KeyEvent.KEYCODE_DPAD_DOWN:        if(myview.ball_isRun){        if( myview.board_alterable_top==myview.board_default_top-myview.boardYadd )        {                        myview.board_alterable_top=myview.board_default_top;        myview.board_alterable_bottom=myview.board_alterable_top+myview.board_thickness;                    }                }        break;          case KeyEvent.KEYCODE_BACK:        this.finish();        break;      }        return false;        }     public boolean onKeyUp(int keyCode KeyEvent event)        {            return true;        }    public boolean onKeyMultiple(int keyCode int repeatCount KeyEvent event)        {        return true;        }    }    );    }

}

时间: 2024-10-03 22:16:38

android-Android打砖块代码 其中系统说格式错误 求帮助的相关文章

android-所做Android打砖块代码其中 出错 求教

问题描述 所做Android打砖块代码其中 出错 求教 下面是代码 可其中出现了一个错误(做了标记),不知道怎么解决,可否有高手帮我看看,能不能稍作修改一下,做成正确的.就是这句错了 myview = new BallView(this); package sen.tan;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.util.DisplayMet

android中如何用代码设置激活输入法?已经获取到系统已安装的输入法列表,求大神解答

问题描述 android中如何用代码设置激活输入法?已经获取到系统已安装的输入法列表,求大神解答 android中如何用代码设置激活输入法?已经获取到系统已安装的输入法列表,求大神解答 解决方案 Android初学------系统设置之设置输入法

Android动态显示当前年月日时分秒系统时间(示例代码)

在布局文件中放一个TextView用来显示时间,如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="

Android使用Intent启动其他非系统应用程序的方法_Android

本文实例讲述了Android使用Intent启动其他非系统应用程序的方法.分享给大家供大家参考,具体如下: android应用程序内部通过Intent来实现Activity间的跳转.也知道通过Intent调用系统程序.但若想在应用程序A内开启应用程序B(前提是A.B均已安装),该如何去实现? 记录下实现过程. 在应用程序A内添加如下代码: Intent i = new Intent(); i.setClassName("com.example.a", "com.example

Android支付宝支付封装代码_Android

在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装. 封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用. public class Alipay { // 商户PID public static final String PARTNER = "123456789"; // 商户收款账号 public static final String SELLER = "qibin0506@gmail.co

android studio-Android studio 大部分系统方法报红 让我setup jdk 代码提示也出不来 求解答

问题描述 Android studio 大部分系统方法报红 让我setup jdk 代码提示也出不来 求解答 Android studio 大部分系统方法报红 让我setup jdk 代码提示也出不来 求解答 解决方案 前段时间还好好的 今天弄个程序弄一般突然这样了 求大大解答 解决方案二: 我今天也碰到了同样的问题,希望能帮助到你,其实你只要更新你的SDK就可以了,或者你点击右下角的eventlog中报错的信息中的报错信息 系统会判断你应该升级或者安装缺少的组件,你点击就行了.我就是这样解决问

Android应用程序框架层和系统运行库层日志系统源代码分析

    在开发Android应用程序时,少不了使用Log来监控和调试程序的执行.在上一篇文章Android日志系统驱动程序Logger源代码分析中,我们分析了驱动程序Logger的源代码,在前面的文章浅谈Android系统开发中Log的使用一文,我们也简单介绍在应用程序中使Log的方法,在这篇文章中,我们将详细介绍Android应用程序框架层和系统运行库存层日志系统的源代码,使得我们可以更好地理解Android的日志系统的实现.         我们在Android应用程序,一般是调用应用程序框

利用 Android Stagefright 漏洞的代码公开

在 Google 及其合作伙伴忙着将补丁推送到终端用户的设备时,允许攻击者在用户不知情下控制 Android 设备的攻击代码正式公开. 名叫 Stagefright 的高危漏洞位于 Android 处理媒体格式的代码库内,攻击者可以发送特制的 MMS 格式短信利用该漏洞,悄悄执行恶意代码控制 设备.该漏洞影响9.5亿部 Android 设备.Stagefright 是安全公司 Zimperium 最早发现的,虽然 Google 及其合作伙伴请求该公 司暂缓公开攻击概念验证代码,但该公司最终在周三

Android支付宝支付封装代码

在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装. 封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用. public class Alipay { // 商户PID public static final String PARTNER = "123456789"; // 商户收款账号 public static final String SELLER = "qibin0506@gmail.co