以前松下手机的游戏 可以用手机摇杆控制器驱动程序的弹球游戏是什么?叫什么名

Android弹球游戏
import java.util.R
import java.util.T
import java.util.TimerT
import android.app.A
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.os.B
import android.os.H
import android.os.M
import android.util.DisplayM
import android.view.D
import android.view.KeyE
import android.view.V
import android.view.View.OnKeyL
import android.view.W
import android.view.WindowM
public class PinBall extends Activity
// 桌面的宽度
private int tableW
// 桌面的高度
private int tableH
// 球拍的垂直位置
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 =
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.widthP
tableHeight = metrics.heightP
racketY = tableHeight - 80;
final Handler handler = new Handler()
public void handleMessage(Message msg)
if (msg.what == 0x123)
gameView.invalidate();
gameView.setOnKeyListener(new OnKeyListener() //
public boolean onKey(View source, int keyCode, KeyEvent event)
// 获取由哪个键触发的事件
switch (event.getKeyCode())
// 控制挡板左移
case KeyEvent.KEYCODE_A:
if (racketX > 0) racketX -= 10;
// 控制挡板右移,D右移
case KeyEvent.KEYCODE_D:
if (racketX < tableWidth - RACKET_WIDTH) racketX += 10;
// 通知gameView组件重绘
gameView.invalidate();
final Timer timer = new Timer();
timer.schedule(new TimerTask() //
public void run()
// 如果小球碰到左边边框
if (ballX = tableWidth - BALL_SIZE)
xSpeed = -xS
// 如果小球高度超出了球拍位置,且横向不在球拍范围之内,游戏结束。
if (ballY >= racketY - BALL_SIZE && (ballX
+ RACKET_WIDTH))
timer.cancel();
// 设置游戏是否结束的旗标为true。
// 如果小球位于球拍之内,且到达球拍位置,小球反弹
else if (ballY = racketY - BALL_SIZE && ballX > racketX && ballX <= racketX
+ RACKET_WIDTH))
ySpeed = -yS
// 小球座标增加
ballY += yS
ballX += xS
// 发送消息,通知重绘组件
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);
// 如果游戏还未结束
// 设置颜色,并绘制小球
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);有没有推荐的手机弹球游戏【手机游戏吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
有没有推荐的手机弹球游戏收藏
无聊玩电脑上的三维弹球,结果莫名上瘾了
ios版的就推荐 Smash Hit
登录百度帐号推荐应用}

我要回帖

更多关于 摇杆控制器驱动程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信