资源简介
一个超级强悍的游戏,可以帮助你们做课程设计用的,觉得可以,当年我也是这样过来的,老师给很高分!
代码片段和文件信息
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.Timer;
public class PinBall
{
//桌面宽度
private final int TABLE_WIDTH = 300;
//桌面高度
private final int TABLE_HEIGHT = 400;
//球拍的垂直位置
private final int RACKET_Y = 340;
//球拍高度
private final int RACKET_HEIGHT = 20;
//球拍宽度
private final int RACKET_WIDTH = 60;
//球的大小
private final int BALL_SIZE = 16;
//实例化一个窗口
private frame f = new frame(“zzc*弹球游戏“);
//实例化一个随机数生成器
Random rand = new Random();
//小球的纵向运动数度
private int ySpeed = 10;
//返回一个-0.5到0.5之间的比率用控制小球运动方向
private double xyRate = rand.nextDouble() - 0.5;
//这个横向速度在-10到10之间,产生左右摆动运动效果
private int xSpeed = (int)(ySpeed*xyRate*2);
//小球开始的横坐标位置,200表示产生0到100之间的随机数
private int ballX = rand.nextInt(200)+20;
//小球开始的纵坐标位置
private int ballY = rand.nextInt(10)+20;
//球拍开始时的横坐标位置
private int racketX = rand.nextInt(200);
//实力化一个画布工具,集成Canvas类
private MyCanvas tableArea = new MyCanvas();
//保存需要绘制图形的字符串属性
private String shape = ““;
//声明一个时间变量
Timer timer;
//表示游戏是否结束
private boolean isLose = false;
public void init()
{
//定义画布大小
tableArea.setPreferredSize(new Dimension(TABLE_WIDTHTABLE_HEIGHT));
//添加画布到窗口
f.add(tableArea);
//实例化一个键盘监听事件适配器
KeyAdapter keyProcessor = new KeyAdapter()
{
//重写适配器里面的按下某键盘方法
public void keyPressed(KeyEvent ke)
{
//按下键盘左键时
if(ke.getKeyCode()==KeyEvent.VK_LEFT)
{
//球拍左边框不能出画布的左边框
if(racketX > 0)
//按一左键次向左移动10个像素
racketX -=10;
}
//按下键盘右键时
if(ke.getKeyCode()==KeyEvent.VK_RIGHT)
{
//球拍右边框不能出画布的右边框
if(racketX < TABLE_WIDTH - RACKET_WIDTH)
//按一次右键移动向右移动10个像素
racketX +=10;
}
}
};
//给窗口添加键盘监听器
f.addKeyListener(keyProcessor);
//给画布添加键盘监听器
tableArea.addKeyListener(keyProcessor);
//这里是实例化了一个监听接口
ActionListener taskPerformer = new ActionListener()
{
//重写这个接口里面的方法,判断小球的位置
public void actionPerformed(ActionEvent evt)
{
//保证小球横向上在画布之内运动
if(ballX<=0 || ballX>=TABLE_WIDTH-BALL_SIZE)
{
//触发反方向运动
xSpeed = -xSpeed;
}
//出了球拍的可击打范围
if(ballY>=RACKET_Y-BALL_SIZE&&(ballXracketX+RACKET_WIDTH))
{
//停止对监听器的触发
timer.stop();
isLose=true;
//调用画布的重绘方法
tableArea.repaint();//调用画布的重绘方法
}
//小球在球拍之内,而其到达球拍的高度
else if(ballY<=0||(ballY>=RACKET_Y-BALL_SIZE&&ballY>racketX&&ballX<=racketX+RACKET_WIDTH))
{
//上下方向改变,小球反弹
ySpeed=-ySpeed;
}
//小球的坐标在纵向上增加
ballY+=ySpeed;
//小球的坐标在横向上的增加
ballX+=xSpeed;
//调用画布的重绘方法3
tableArea.repaint();
}
};
timer = new Timer(100taskPerformer);//每隔0.1秒运行一次监听器
timer.start();//计时器开始运行
f.addWindowListener(new MyListener());//关闭窗口事件
f.pack();//设置窗口最佳大小
f.setVisible(true);//显示窗口
}
class MyListener extends WindowAdapter//关闭窗口的类
{
public void windowClosing(Window
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4560 2009-06-06 18:09 课程设计\PinBall.java
文件 160256 2009-06-06 18:11 课程设计\ZZC.ppt
目录 0 2009-06-06 18:11 课程设计
----------- --------- ---------- ----- ----
164816 3
- 上一篇:手把手教会你微信公众平台自定义菜单开发——创建菜单
- 下一篇:cef.txt
相关资源
- 51单片机课程设计——智能电风扇
- 课程设计 51单片机温度PID调节打包k
- 六路 抢答器 课程设计
- 数据结构散列表电话号码查询系统课
- 数据库 课程设计 合同订单
- 出租车计价器 proteus
- 广工最新2020操作系统课程设计
- 宿舍管理数据库系统的设计与实现-
- 直流PWM可逆调速系统设计与仿真
- 大三通信系统课程设计_语音信号线性
- 数据挖掘大作业.docx
- 计网文件传输协议课设.rar
- CC2530 的 ZigBee 的温度监控系统 课程设
- 广州大学计算机大四上专业方向课程
- 用24C04与1602LCD设计电子密码锁课程设
- 基于ARM的一些课程设计
- 解析IP数据包课程设计报告
- 锅炉课程设计计算用表.xlsm
- 教师工资管理系统课程设计
- 操作系统课程设计-简单字符设备和块
- 电子技术课程设计彩灯控制器
- 物流管理信息系统课程设计
- 中南大学微机原理与接口技术课程设
- 数据结构 课程设计 排序算法的比较
- 数字逻辑课程设计 交通信号控制器的
- 数据结构课程设计-图的存储与遍历
- 华科计算机组成原理课程设计--扩展指
- 9散列表源程序+文档+说明+总结
- 7文本编辑数据结构课程设计 源程序
- 1运动会分数统计问题源程序+文档+说
评论
共有 条评论