电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java實(shí)現(xiàn)簡單的彈球游戲

瀏覽:6日期:2022-08-18 18:44:09

本文實(shí)例為大家分享了Java實(shí)現(xiàn)簡單的彈球游戲的具體代碼,供大家參考,具體內(nèi)容如下

該程序主要是用于對java圖形化界面編程進(jìn)行聯(lián)系,程序?qū)崿F(xiàn)全部采用的是AWT包下的類。程序僅做參考,供學(xué)習(xí)使用。

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 { //創(chuàng)建窗口對象 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; //定義變量,記錄小球的坐標(biāo) private int ballX = 120; private int ballY = 20; //定義變量,記錄小球在x和y方向上分別移動(dòng)的速度 private int speedY = 10; private int speedX = 5; //定義變量,記錄球拍的坐標(biāo) private int racketX = 120; private final int racketY = 340; //定義變量,標(biāo)識(shí)當(dāng)前游戲是否已結(jié)束 private boolean isOver = false; //聲明一個(gè)定時(shí)器 private Timer timer; //自定義一個(gè)類,繼承Canvas,充當(dāng)畫布 @SuppressWarnings('serial') private class MyCanvas extends Canvas{ @Override public void paint(Graphics g) { //TODO 在這里繪制內(nèi)容 if (isOver) { //游戲結(jié)束 g.setColor(Color.BLUE); g.setFont(new Font('Times',Font.BOLD,30)); g.drawString('游戲結(jié)束!', 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); } } } //創(chuàng)建繪畫區(qū)域 MyCanvas drawArea = new MyCanvas(); public void init() { //組裝視圖,游戲邏輯的控制 //完成球拍坐標(biāo)的變化 KeyListener listener = new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { //獲取當(dāng)前按下的鍵 int keyCode = e.getKeyCode(); if (keyCode == KeyEvent.VK_LEFT) { //<- 應(yīng)該向左移動(dòng) if (racketX>0) { racketX -= 10; } } if (keyCode == KeyEvent.VK_RIGHT) { //-> 應(yīng)該向右移動(dòng) if (racketX <(TABLE_WTDTH - RACKET_WIDTH)) { racketX += 10; } } } }; //給Frame和drawArea注測監(jiān)聽器 frame.addKeyListener(listener); drawArea.addKeyListener(listener); //小球坐標(biāo)的控制 ActionListener task = new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { //根據(jù)邊界范圍,修正速度 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)) { //當(dāng)前小球超出了球拍的范圍,游戲結(jié)束 //停止定時(shí)器 timer.stop(); //修改游戲是否結(jié)束的標(biāo)記 isOver = true; //重繪界面 drawArea.repaint(); } //更新小球的坐標(biāo),重繪界面 ballX += speedX; ballY += speedY; //重繪界面 drawArea.repaint(); } }; timer = new Timer(100, task); timer.start(); drawArea.setPreferredSize(new Dimension(TABLE_WTDTH,TABLE_HEIGHT)); frame.add(drawArea); //設(shè)置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(); }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 打孔器,打孔钳厂家【温州新星德牌五金工具】 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | 便携式谷丙转氨酶检测仪|华图生物科技百科 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 安徽合肥格力空调专卖店_格力中央空调_格力空调总经销公司代理-皖格制冷设备 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 横河变送器-横河压力变送器-EJA变送器-EJA压力变送器-「泉蕴仪表」 | 精密模具-双色注塑模具加工-深圳铭洋宇通| 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 高速混合机_锂电混合机_VC高效混合机-无锡鑫海干燥粉体设备有限公司 | 广州/东莞小字符喷码机-热转印打码机-喷码机厂家-广州瑞润科技 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 真空泵厂家_真空泵机组_水环泵_旋片泵_罗茨泵_耐腐蚀防爆_中德制泵 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 内窥镜-工业内窥镜厂家【上海修远仪器仪表有限公司】 | 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 查分易-成绩发送平台官网 |