本文实例为大家分享了Java实现简单的弹球游戏的具体代码,供大家参考,具体内容如下

该程序主要是用于对java图形化界面编程进行联系,程序实现全部采用的是AWT包下的类。

程序仅做参考,供学习使用。

import java.awt.Canvas;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.Timer;

public class PinBallGame {

//创建窗口对象

private Frame frame = new Frame("弹球游戏");

//桌面宽度

private final int TABLE_WTDTH = 300;

//桌面高度

private final int TABLE_HEIGHT = 400;

//球拍的高度和宽度

private final int RACKET_WIDTH = 60;

private final int RACKET_HETGHT = 20;

//小球的大小

private final int BALL_SIZE = 16;

//定义变量,记录小球的坐标

private int ballX = 120;

private int ballY = 20;

//定义变量,记录小球在x和y方向上分别移动的速度

private int speedY = 10;

private int speedX = 5;

//定义变量,记录球拍的坐标

private int racketX = 120;

private final int racketY = 340;

//定义变量,标识当前游戏是否已结束

private boolean isOver = false;

//声明一个定时器

private Timer timer;

//自定义一个类,继承Canvas,充当画布

@SuppressWarnings("serial")

private class MyCanvas extends Canvas{

@Override

public void paint(Graphics g) {

//TODO 在这里绘制内容

if (isOver) {

//游戏结束

g.setColor(Color.BLUE);

g.setFont(new Font("Times",Font.BOLD,30));

g.drawString("游戏结束!", 50, 200);

}else{

//游戏中

//绘制小球

g.setColor(Color.RED);

g.fillOval(ballX, ballY, BALL_SIZE, BALL_SIZE);

//绘制球拍

g.setColor(Color.PINK);

g.fillRect(racketX, racketY, RACKET_WIDTH, RACKET_HETGHT);

}

}

}

//创建绘画区域

MyCanvas drawArea = new MyCanvas();

public void init() {

//组装视图,游戏逻辑的控制

//完成球拍坐标的变化

KeyListener listener = new KeyAdapter() {

@Override

public void keyPressed(KeyEvent e) {

//获取当前按下的键

int keyCode = e.getKeyCode();

if (keyCode == KeyEvent.VK_LEFT) {

//0) {

racketX -= 10;

}

}

if (keyCode == KeyEvent.VK_RIGHT) {

//-> 应该向右移动

if (racketX =(TABLE_WTDTH-BALL_SIZE)) {

speedX = -speedX;

}

if (ballY <= 0 || (ballY > racketY-BALL_SIZE && ballX>racketX && ballX < racketX+RACKET_WIDTH)) {

speedY = -speedY;

}

if (ballY > racketY-BALL_SIZE && (ballX < racketX || ballX > racketX+RACKET_WIDTH)) {

//当前小球超出了球拍的范围,游戏结束

//停止定时器

timer.stop();

//修改游戏是否结束的标记

isOver = true;

//重绘界面

drawArea.repaint();

}

//更新小球的坐标,重绘界面

ballX += speedX;

ballY += speedY;

//重绘界面

drawArea.repaint();

}

};

timer = new Timer(100, task);

timer.start();

drawArea.setPreferredSize(new Dimension(TABLE_WTDTH,TABLE_HEIGHT));

frame.add(drawArea);

//设置frame最佳大小,并可视

frame.pack();

frame.setVisible(true);

frame.setLocationRelativeTo(null);

frame.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

public static void main(String[] args) {

new PinBallGame().init();

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java弹球游戏代码_Java实现简单的弹球游戏相关推荐

  1. java猜拳游戏代码_Java实现简单猜拳游戏

    本文实例为大家分享了java实现简单猜拳游戏的具体代码,供大家参考,具体内容如下 看网上的猜拳游戏那么多,但都是用switch输入数字,所以用if嵌套,写一个简单的猜拳游戏 package game; ...

  2. 象棋联机java代码_java实现简单网络象棋游戏

    本文实例为大家分享了java实现网络象棋游戏的具体代码,供大家参考,具体内容如下 游戏规则: 1.将/帅:不能出田字格,不能走斜线,只能前进后退向左向右,每次只走一格: 2.士/仕:不能出田字格,只能 ...

  3. java做小窗体_java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​坐标.大小.颜色.方向.速度 2.抽象类:Ball ​设计类:BallMain-创建窗体 ​BallJPanel-画小球 ...

  4. 弹球小游戏java代码_java实现简单的弹球游戏

    弹球游戏实现原理: 隔一定时间(小于1秒)重新绘制图像,因为Graphics类是一个抽象类,创建子类的时候需要把所有涉及的方法都得重写,所以这里使用的是创建Canvas的子类,只需要重写它的paint ...

  5. java大嘴鱼游戏代码_Java编写大嘴怪游戏--原创

    第一步:大嘴鱼类 package fish; import java.awt.Color; import java.awt.Graphics; import java.awt.event.Action ...

  6. java猜数字游戏代码_Java如何编写猜数字游戏

    在看到这个小游戏的时候,首先想到的是: 1.电脑会随机生成一个数字. 2.我们需要去猜测生成的这个数字,并输入我们猜测的值. 3.电脑生成的随机数需要和我们猜测的值相比较. 4.比较的结果需要体现出来 ...

  7. mysql拼图游戏代码_Java小项目之拼图游戏

    首先声明,代码是自创的,如有雷同,不胜荣幸! 先谈谈思路: 1.设计界面. 2.素材的处理. 3.设计图片加载区域的图片加载处理类. 4.设计按钮组中的按钮初始化方法. 5.设计按钮组中的随机图片加载 ...

  8. 推箱子java下载_Java实现简单推箱子游戏

    本文实例为大家分享了Java实现简单推箱子游戏的具体代码,供大家参考,具体内容如下 *编写一个简易的推箱子游戏,使用10*8的二维字符数据表示游戏画面,H表示墙壁; &表示玩家角色: o表示箱 ...

  9. java2d游戏代码_JAVA游戏编程学习笔记(三)Java 2D游戏底层绘图框架

    前二篇记录了java如何绘制图形与动画,今天打算总结复习一下,把这些知识点集合起来,制作一个Java2D小游戏框架(暂且这么叫,好像挺牛逼似的!). Java AWT 下边提供一个 class Can ...

最新文章

  1. FileUpload生成图片水印,文字水印(转载)
  2. Springboot之YAML语法
  3. 沉迷游戏自学编程,创建游戏帝国,却黯然退场的“鬼才程序员”
  4. windowslive writer 发布问题
  5. 计算机约束措施是参考,【计算机应用论文】高校计算机机房管理问题与改进策略(共4460字)...
  6. stl-map/set
  7. Go赋值使用:类型{} 定位使用.
  8. Spark 1.2 发布,开源集群计算系统
  9. Windows在当前目录(文件)打开cmd窗口
  10. Leetcode算法题(C语言)4--旋转数组
  11. 红米手机 android 版本,#MIUI#关于红米手机4高配版 Android版本适配的说明【miui9吧】_百度贴吧...
  12. zblog php 安装,如何安装Zblog?ZBlogPHP安装图文教程
  13. Java排序之归并排序
  14. A ndroid 获取屏幕高度、标题高度、状态栏高度详解
  15. 金陵科技学院计算机科学与技术,计算机科学与技术专业考试大纲-金陵科技学院.DOC...
  16. String的startWith()和endWith()
  17. 【POJ】【2125】Destroying the Graph
  18. 喧喧发布 2.5.1 版本,支持移动版和桌面端同时登录
  19. 数据即服务(DaaS)
  20. mysql mmm write vip_MySQLHAbyusingMysql-mmm

热门文章

  1. mysql text not null_【20181101】MySQL text类型的column设置为NOT NULL 导致主从1364
  2. git与github之降龙十八掌
  3. xp桌面显示计算机,xp系统电脑开机后不显示桌面
  4. php artisan migrate error: Laravel Base table or view already exists: 1050 Table
  5. CCF大数据竞赛-面向电信行业存量用户的智能套餐个性化匹配模型
  6. android aidl进程间的通讯(笔记)
  7. eclipse查看web项目下classes文件夹的方法
  8. java 通讯机_java 上位机与单片机通过串口485通讯
  9. 线程:生产者与消费者模式
  10. Spring Cloud(10)——新一代网关Spring Cloud Gateway