本文实例为大家分享了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) {

//

if (racketX>0) {

racketX -= 10;

}

}

if (keyCode == KeyEvent.VK_RIGHT) {

//-> 应该向右移动

if (racketX

racketX += 10;

}

}

}

};

//给Frame和drawArea注测监听器

frame.addKeyListener(listener);

drawArea.addKeyListener(listener);

//小球坐标的控制

ActionListener task = new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

//根据边界范围,修正速度

if (ballX<=0 || ballX>=(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实力弹弹球实现代码

    先看看效果图: 直接上代码了. 微调按钮加画布画几个圆,再实现监听... package cn.hncu.threadDemo.thread2; import java.awt.Canvas; imp ...

  2. java弹球游戏代码_Java实现简单的弹球游戏

    本文实例为大家分享了Java实现简单的弹球游戏的具体代码,供大家参考,具体内容如下 该程序主要是用于对java图形化界面编程进行联系,程序实现全部采用的是AWT包下的类. 程序仅做参考,供学习使用. ...

  3. java弹球游戏弹到顶会得分_java实现简单的弹球游戏

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

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

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

  5. pygame6 弹球游戏

    一.事件: 1.鼠标事件: pygame.mouse.get_pos(): 获取鼠标当前点的坐标 pygame.mouse.get_pressed()[0]: 获取鼠标左键是否为点击 二.复习碰撞精灵 ...

  6. python弹球游戏实验报告_弹珠小游戏课程设计实验报告

    摘要: 这个小程序是关于弹珠的小游戏, 游戏比较简单, 以小球的速度来区分游戏的难易. 该小程序是用左右键控制游戏的开始和挡板的方向,不让小球落到底端,当然,小球的 速度越快,该游戏的难度也就越大.此 ...

  7. 前端技术搭建弹珠小游戏(内附源码)

    The sand accumulates to form a pagoda ✨ 写在前面 ✨ 功能介绍 ✨ 页面搭建 ✨ 样式设置 ✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了小人逃脱,当 ...

  8. 《Arduino开发实战指南:LabVIEW卷》6.6 基于Arduino的弹珠游戏

    6.6 基于Arduino的弹珠游戏 6.6.1 实现的功能 本节将使用LabVIEW及Arduino设计实现一个简单的弹珠游戏.该弹珠游戏规则为,左右移动挡板,使弹珠在矩形区域内运动而不掉落到矩形区 ...

  9. 使用Scratch制作项目《弹珠游戏》

    不知道大家有没有听说过这样一句话,"80后玩弹珠,90后玩游戏,00后怎么消遣业余时间?不是王者就是吃鸡." 作为一名90后,我们对打弹珠在熟悉不过了,今天,我们就来了解以下如果使 ...

  10. 【洛谷】P2356 弹珠游戏 c++

    题目背景 元宵节不放假挺郁闷的,于是时间机智的改到了星期6一整天! 题目描述 MedalPluS 和他的小伙伴 NOIRP 发掘了一个骨灰级别的游戏--超级弹珠. 游戏的内容是:在一个 n*n 的矩阵 ...

最新文章

  1. hdu 2028 Lowest Common Multiple Plus
  2. 哈希表处理冲突的方法
  3. HackerRank Super Six Substrings dp
  4. python 使用requests模块进行 视频文件的下载
  5. IntelliJ IDEA下git版本回退,版本还原
  6. 2022数据库排行榜新鲜出炉!MySQL大势已去,PostgreSQL即将崛起!
  7. 通过kubernetes release制作k8s rpm包
  8. Web Api 内部数据思考 和 利用http缓存优化 Api
  9. 如何在Windows下安装zookeeper?
  10. PMP考试重点总结八——监控过程组(2)
  11. 【吐血整理】Java项目源码分享
  12. 学python必备的英语单词(终身受益)
  13. 动手写一个二叉平衡树
  14. iphone5s显示被停用了解决办法
  15. 2022年最新年终奖个人所得税计算计算方法及扣税标准
  16. Qt2D游戏开发引擎QtGameEngine使用入门10——游戏中如何响应用户输入(鼠标/键盘输入)
  17. java如果是晴天如果是男人_三、没有测光表时的曝光:“晴天 f/16”法则(转自 色影无忌)...
  18. 无线路由器怎么做一个家庭服务器,家庭路由器怎么做DHCP服务器
  19. 坚持写博客以来的感受和改变
  20. Hive使用必知必会系列

热门文章

  1. win下处理器组概念
  2. 【Task02】Pandas之基础
  3. 怎么让程序运行结果里不出现ans(两个特殊例子)
  4. 小胡学python【1】
  5. 计算机考试没来得及关掉文档,计算机二级考试挽回受损WORD文档的方法
  6. 处理样本分布不平衡,偏斜比较厉害的方法总结
  7. 为什么要进行网站流量分析?从6个方面告诉你答案
  8. mergeField解析(构造函数)
  9. 我的世界电脑服务器怎么显示键盘,我的世界电脑版操作按键
  10. spring boot基于Java的电影院售票与管理系统毕业设计源码011449