弹力弹珠java_Java实现简单的弹球游戏
本文实例为大家分享了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实现简单的弹球游戏相关推荐
- 弹力弹珠java_Java实力弹弹球实现代码
先看看效果图: 直接上代码了. 微调按钮加画布画几个圆,再实现监听... package cn.hncu.threadDemo.thread2; import java.awt.Canvas; imp ...
- java弹球游戏代码_Java实现简单的弹球游戏
本文实例为大家分享了Java实现简单的弹球游戏的具体代码,供大家参考,具体内容如下 该程序主要是用于对java图形化界面编程进行联系,程序实现全部采用的是AWT包下的类. 程序仅做参考,供学习使用. ...
- java弹球游戏弹到顶会得分_java实现简单的弹球游戏
弹球游戏实现原理: 隔一定时间(小于1秒)重新绘制图像,因为graphics类是一个抽象类,创建子类的时候需要把所有涉及的方法都得重写,所以这里使用的是创建canvas的子类,只需要重写它的paint ...
- 弹球小游戏java代码_java实现简单的弹球游戏
弹球游戏实现原理: 隔一定时间(小于1秒)重新绘制图像,因为Graphics类是一个抽象类,创建子类的时候需要把所有涉及的方法都得重写,所以这里使用的是创建Canvas的子类,只需要重写它的paint ...
- pygame6 弹球游戏
一.事件: 1.鼠标事件: pygame.mouse.get_pos(): 获取鼠标当前点的坐标 pygame.mouse.get_pressed()[0]: 获取鼠标左键是否为点击 二.复习碰撞精灵 ...
- python弹球游戏实验报告_弹珠小游戏课程设计实验报告
摘要: 这个小程序是关于弹珠的小游戏, 游戏比较简单, 以小球的速度来区分游戏的难易. 该小程序是用左右键控制游戏的开始和挡板的方向,不让小球落到底端,当然,小球的 速度越快,该游戏的难度也就越大.此 ...
- 前端技术搭建弹珠小游戏(内附源码)
The sand accumulates to form a pagoda ✨ 写在前面 ✨ 功能介绍 ✨ 页面搭建 ✨ 样式设置 ✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了小人逃脱,当 ...
- 《Arduino开发实战指南:LabVIEW卷》6.6 基于Arduino的弹珠游戏
6.6 基于Arduino的弹珠游戏 6.6.1 实现的功能 本节将使用LabVIEW及Arduino设计实现一个简单的弹珠游戏.该弹珠游戏规则为,左右移动挡板,使弹珠在矩形区域内运动而不掉落到矩形区 ...
- 使用Scratch制作项目《弹珠游戏》
不知道大家有没有听说过这样一句话,"80后玩弹珠,90后玩游戏,00后怎么消遣业余时间?不是王者就是吃鸡." 作为一名90后,我们对打弹珠在熟悉不过了,今天,我们就来了解以下如果使 ...
- 【洛谷】P2356 弹珠游戏 c++
题目背景 元宵节不放假挺郁闷的,于是时间机智的改到了星期6一整天! 题目描述 MedalPluS 和他的小伙伴 NOIRP 发掘了一个骨灰级别的游戏--超级弹珠. 游戏的内容是:在一个 n*n 的矩阵 ...
最新文章
- hdu 2028 Lowest Common Multiple Plus
- 哈希表处理冲突的方法
- HackerRank Super Six Substrings dp
- python 使用requests模块进行 视频文件的下载
- IntelliJ IDEA下git版本回退,版本还原
- 2022数据库排行榜新鲜出炉!MySQL大势已去,PostgreSQL即将崛起!
- 通过kubernetes release制作k8s rpm包
- Web Api 内部数据思考 和 利用http缓存优化 Api
- 如何在Windows下安装zookeeper?
- PMP考试重点总结八——监控过程组(2)
- 【吐血整理】Java项目源码分享
- 学python必备的英语单词(终身受益)
- 动手写一个二叉平衡树
- iphone5s显示被停用了解决办法
- 2022年最新年终奖个人所得税计算计算方法及扣税标准
- Qt2D游戏开发引擎QtGameEngine使用入门10——游戏中如何响应用户输入(鼠标/键盘输入)
- java如果是晴天如果是男人_三、没有测光表时的曝光:“晴天 f/16”法则(转自 色影无忌)...
- 无线路由器怎么做一个家庭服务器,家庭路由器怎么做DHCP服务器
- 坚持写博客以来的感受和改变
- Hive使用必知必会系列