您现在的位置是:主页 > news > 申请域名后怎么做网站/下载手机百度最新版

申请域名后怎么做网站/下载手机百度最新版

admin2025/6/3 23:25:49news

简介申请域名后怎么做网站,下载手机百度最新版,网站更改域名,电商门户网站建设方案最近因为做毕业设计需要,学习安卓开发,看书只能学一些基本东西,真正面对自己的项目还是不知道该怎么做。我决定做一个弹球游戏。看教程良久无果,在参照了网上各种资料之后,自己勉强做了一个。游戏很简单,现…

申请域名后怎么做网站,下载手机百度最新版,网站更改域名,电商门户网站建设方案最近因为做毕业设计需要,学习安卓开发,看书只能学一些基本东西,真正面对自己的项目还是不知道该怎么做。我决定做一个弹球游戏。看教程良久无果,在参照了网上各种资料之后,自己勉强做了一个。游戏很简单,现…

最近因为做毕业设计需要,学习安卓开发,看书只能学一些基本东西,真正面对自己的项目还是不知道该怎么做。我决定做一个弹球游戏。看教程良久无果,在参照了网上各种资料之后,自己勉强做了一个。

游戏很简单,现在贴出代码如下。布局就用默认布局即可。

package com.example.pinball;

import java.util.Random;

import java.util.Timer;

import java.util.TimerTask;

import android.app.Activity;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.DisplayMetrics;

import android.view.Display;

import android.view.KeyEvent;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnKeyListener;

import android.view.Window;

import android.view.WindowManager;

public class MainActivity extends Activity {

// 桌面的宽度

private int tableWidth;

// 桌面的高度

private int tableHeight;

// 球拍的垂直位置

private int racketY;

// 下面定义球拍的高度和宽度

private final int RACKET_HEIGHT = 20;

private final int RACKET_WIDTH = 70;

// 小球的大小

private final int BALL_SIZE = 12;

// 小球纵向的运行速度

private int ySpeed = 10;

Random rand = new Random();

// 返回一个-0.5~0.5的比率,用于控制小球的运行方向。

private double xyRate = rand.nextDouble() - 0.5;

// 小球横向的运行速度

private int xSpeed = (int) (ySpeed * xyRate * 2);

// ballX和ballY代表小球的座标

private int ballX = rand.nextInt(200) + 20;

private int ballY = rand.nextInt(10) + 20;

// racketX代表球拍的水平位置

private int racketX = rand.nextInt(200);

// 游戏是否结束的旗标

private boolean isLose = false;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

// 去掉窗口标题

requestWindowFeature(Window.FEATURE_NO_TITLE);

// 全屏显示

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

// 创建GameView组件

final GameView gameView = new GameView(this);

setContentView(gameView);

// 获取窗口管理器

WindowManager windowManager = getWindowManager();

Display display = windowManager.getDefaultDisplay();

DisplayMetrics metrics = new DisplayMetrics();

display.getMetrics(metrics);

// 获得屏幕宽和高

tableWidth = metrics.widthPixels;

tableHeight = metrics.heightPixels;

racketY = tableHeight - 80;

final Handler handler = new Handler()

{

public void handleMessage(Message msg)

{

if (msg.what == 0x123)

{

gameView.invalidate();

}

}

};

final Timer timer = new Timer();

timer.schedule(new TimerTask() //

{

@Override

public void run()

{

// 如果小球碰到左边边框

if (ballX <= 0 || ballX >= tableWidth - BALL_SIZE)

{

xSpeed = -xSpeed;

}

// 如果小球高度超出了球拍位置,且横向不在球拍范围之内,游戏结束。

if (ballY >= racketY - BALL_SIZE && (ballX  racketX

+ RACKET_WIDTH))

{

timer.cancel();

// 设置游戏是否结束的旗标为true。

isLose = true;

}

// 如果小球位于球拍之内,且到达球拍位置,小球反弹

else if (ballY <= 0  || (ballY >= racketY - BALL_SIZE && ballX > racketX && ballX <= racketX

+ RACKET_WIDTH))

{

ySpeed = -ySpeed;

}

// 小球座标增加

ballY += ySpeed;

ballX += xSpeed;

// 发送消息,通知系统重绘组件

handler.sendEmptyMessage(0x123);

}

}, 0, 100);

}

class GameView extends View

{

Paint paint = new Paint();

public GameView(Context context)

{

super(context);

setFocusable(true);

}

// 重写View的onDraw方法,实现绘画

public void onDraw(Canvas canvas)

{

paint.setStyle(Paint.Style.FILL);

// 设置去锯齿

paint.setAntiAlias(true);

// 如果游戏已经结束

if (isLose)

{

paint.setColor(Color.RED);

paint.setTextSize(30);

canvas.drawText("游戏已结束", 50, 200, paint);

}

// 如果游戏还未结束

else

{

// 设置颜色,并绘制小球

paint.setColor(Color.rgb(240, 240, 80));

canvas.drawCircle(ballX, ballY, BALL_SIZE, paint);

// 设置颜色,并绘制球拍

paint.setColor(Color.rgb(80, 80, 200));

canvas.drawRect(racketX, racketY, racketX + RACKET_WIDTH,

racketY + RACKET_HEIGHT, paint);

}

}

//触摸屏拖动球拍,只能左右拖动。

@Override

public boolean onTouchEvent(MotionEvent event) {

// TODO Auto-generated method stub

switch(event.getAction() & MotionEvent.ACTION_MASK){

case MotionEvent.ACTION_MOVE:

int x=(int)event.getX(1);

racketX = x-(int)(0.5*RACKET_WIDTH);

if(racketX<0)

racketX=0;

if(racketX>(tableWidth-RACKET_WIDTH))

racketX = tableWidth-RACKET_WIDTH;

this.invalidate();

break;

default:

break;

}

return true;

}

}

}

我参考了这个,http://www.2cto.com/kf/201404/291457.html,自己只改了响应函数。