上一篇 弹球小游戏(预备篇)

       这是一个用JAVA写的弹球游戏,适合于刚学习的awt编程的萌新,由于Nick也是刚刚学习,所以写的很简陋,大家多多见谅!

弹球小游戏

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class PinBall {//创建窗口对象private Frame frame = new Frame("Nick的弹球游戏");//桌面宽度private final int TABLE_WIDTH = 300;//桌面高度private final int TABLE_HEIGHT = 400;//球拍的高度和宽度private final int RACKET_HEIGHT = 20;private final int RACKET_WIDTH = 60;//小球直径大小private final int BALL_SIZE = 16;//定义变量,记录小球的坐标private int ballX = 120;private int ballY = 20;//定义变量小球x和y方向上分别移动的速度private int speedY = 15;private int speedX = 10;//定义变量,记录球拍的坐标private int racketX = 120;private final int racketY = 340;//定义变量,标识当前游戏是否结束private boolean isOver = false;//声明一个定时器private Timer timer;//自定义一个类,继承canvas,充当画布private class MyCanvas extends Canvas{@Overridepublic void paint(Graphics g) {//在这里绘制内容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.BLACK);g.fillRect(racketX,racketY,RACKET_WIDTH,RACKET_HEIGHT);}}}//创建绘画区域MyCanvas drawArea = new MyCanvas();public void init(){//组装视图,游戏逻辑的控制KeyListener listener=new KeyAdapter() {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 < (TABLE_WIDTH-RACKET_WIDTH)) {racketX+=10;}}}};//给 Frame 和 drawArea 注册监听器frame.addKeyListener(listener);drawArea.addKeyListener(listener);//小球坐标控制ActionListener task = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//根据边界范围,修正速度if(ballX<=0 || ballX>=(TABLE_WIDTH-BALL_SIZE)){speedX = -speedX;}if(ballY<=0 || ballY>racketY-BALL_SIZE && 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(95,task);timer.start();drawArea.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));frame.add(drawArea);//设置frame最佳大小,并可视frame.pack();frame.setVisible(true);}public static void main(String[] args) {new PinBall().init();}
}

[AWT] 弹球小游戏(实现篇)相关推荐

  1. 弹弹球小游戏(Java)

    游戏规则:利用键盘上的->或者<-控制方向,用球拍接住小球,否则游戏结束! 该代码主要利用了GUI的绘图,用Timer保证球拍和小球位置的更新,用适配器KeyAdapter获取用户的指令, ...

  2. 用Processing编写弹球小游戏

    Processing的编码逻辑和Java很像,我在学习Java之前拿Processing练习过一段时间,在这篇文章中我用processin制作了一个弹球小游戏.有两名玩家,player1和player ...

  3. 大一下期末javaGUI课设之swing+MYSQL实现“弹珠传说”弹球小游戏

    目录 一.游戏概述 二.需求分析 三.运行环境 四.详细设计 1.游戏初始化界面 2.单人闯关模式的设计 3.双人合作模式 4.数据库连接与操作 5.数据库连接,排行榜 五.总结 说明 该课设一共分成 ...

  4. 弹球小游戏(Java)

    用键盘"<--"和"-->"方向键控制黑板的左右移动,从而实现接住小球使小球反弹回去 效果图显示 当掉下去时显示"游戏结束" 代 ...

  5. 弹球小游戏附全源代码

    GUI实现弹球小游戏 先看一下游戏效果图. 一个简单的Demo.也比较简单,新手试着做一做完善改进. 源代码 import Com.Style.FontStyle; import javax.swin ...

  6. 弹球小游戏(Java实现)

    详细代码(GBK格式编码) package com.draw;import javax.swing.Timer; import java.awt.Canvas; import java.awt.Col ...

  7. JAVA_AWT 实现简单弹球小游戏

    学习AWT中的绘图功能的小案例:教程位置:这里 package com.lzy.pinballgame;import java.awt.*; import java.awt.event.*;/*** ...

  8. 用Java写一个弹球小游戏

    目录 一.前言 二.弹球小游戏 (1)分析游戏 (2)游戏代码 一.前言 想做出这个游戏,最好是已经学习过了AWT或者Swing编程,知道了图形界面的知识,也知道绘图.这个游戏可以帮你更好的打牢基础. ...

  9. python小游戏编程实例-Python实现的弹球小游戏示例

    本文实例讲述了Python实现的弹球小游戏.分享给大家供大家参考,具体如下: 弹球 1. Ball 类 draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.Paddle类 draw ...

最新文章

  1. Cisco交换机解决网络蠕虫病毒***问题
  2. Linux基础知识99问(一)
  3. java 修改ip_如何用脚本快速修改IP地址(Netsh)
  4. 对学校的希望和寄语_放飞青春梦,奋斗十四五——2020年福州文教职业中专学校寄宿生联欢晚会...
  5. boost::hana::none用法的测试程序
  6. 如何提高天猫入驻成功率?掌握这两点即可
  7. Intellij IDEA 配置
  8. 华为Mate30 Pro高清渲染图曝光:后置四摄+挖孔全面屏
  9. Android开发笔记(一百七十)给App的应用页面注册快捷方式
  10. 微信x漫威首款小程序公开!揭露未来“看展”趋势
  11. CentOS向日葵安装
  12. volte的sip信令流程_VOLTE-SIP完整信令解析
  13. 【淘宝商家应用接口】拼多多平台流量解析,如何充分利用平台分配的流量?
  14. CAD的图层过滤器有什么用?
  15. 计算机组成原理复习提纲六(CPU结构和功能)
  16. HTML+CSS+JS大作业——汽车租赁(47页) 加特效 web期末作业设计网页_汽车大学生网页设计作业成品
  17. String字符串的最大长度是多少?
  18. c# winform 反射 动态创建窗口
  19. golang mysql 诊断之旅(2000万开房数据被曝光引发的血案)
  20. 用模拟退火算法解旅行商问题

热门文章

  1. sh执行文件 参数传递_详解shell中脚本参数传递的两种方式
  2. 月薪2万~3万元是一种怎样的人生体验?
  3. 关于Open SSL高危漏洞整改操作 -- AIX 整改措施
  4. 成都盛铭轩:如何提升店铺权重
  5. cocos studio 制作csd动画文件 并 加载使用嵌套动画
  6. Reactive programming之bulb panel
  7. 前端学习之HTML基础(一)
  8. 2018年6月计算机语言排行榜,TIOBE:2018年5月全球编程语言排行榜
  9. VCS和UVM常用编译选项
  10. OpenSergo 正式开源,多家厂商共建微服务治理规范和实现