桌面小游戏

下面分成四个步骤来实现项目
第一步:创建项目和窗口。
第二步:加载两张图片(ball.png和desk.jpg)。
第三步:实现动画,让小球沿水平方向移动并做边界检测。
第四步:实现小球沿着任意角度飞行。

第一步:创建项目和窗口。
创建项目名称"桌面小球",再新建images文件夹,将ball.png和desk.jpg图片拷贝。
图片图片如下:


然后在src下新建类BallGame.java,项目结构如下:


第一步:创建项目和窗口代码如下:

package 桌面游戏;import javax.swing.JFrame;public class BallGame extends JFrame{//加载窗口void launchFrame(){setSize(300,300);   //窗口大小setLocation(400,400);//窗口的起始位置setVisible(true);}public static void main(String[] args) {System.out.println("被调用");BallGame game=new BallGame();game.launchFrame();}}

运行结果:

第二步:加载两张图片
详细内容见注释

package 桌面游戏;import java.awt.*;
import java.awt.Toolkit;import javax.swing.JFrame;public class BallGame2 extends JFrame{//添加小球和桌面图片路径Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.jpg");//指定小球的初始位置double x=100;//小球横坐标double y=100;//小球纵坐标//画窗口的方法:加载小球与桌面public void paint(Graphics g){System.out.println("窗口被画了一次!!");g.drawImage(desk, 0, 0, null);//画出桌面图片g.drawImage(ball, (int)x,(int)y, null);//画出小球图片}//加载窗口void launchFrame(){setSize(856,500); //窗口大小setLocation(50,50);//窗口的起始位置setVisible(true);}public static void main(String[] args) {System.out.println("被调用");BallGame2 game=new BallGame2();game.launchFrame();}}

运行结果:

第三步:实现动画

package 桌面游戏;import java.awt.*;
import java.awt.Toolkit;import javax.swing.JFrame;public class BallGame3 extends JFrame{//添加小球和桌面图片路径Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.jpg");//指定小球的初始位置double x=100;//小球横坐标double y=100;//小球纵坐标boolean right=true;//判断小球方向//画窗口的方法:加载小球与桌面public void paint(Graphics g){System.out.println("窗口被画了一次!!");g.drawImage(desk, 0, 0, null);//画出桌面图片g.drawImage(ball, (int)x,(int)y, null);//画出小球图片//改变小球坐标if(right){x=x+10;}else{x=x-10;}//边界检测//856是窗口宽度,40是桌子边框的宽度,30是小球的直径if(x>856-40-30){right=false;}if(x<40){right=true;}}//加载窗口void launchFrame(){setSize(856,500);   //窗口大小setLocation(50,50);//窗口的起始位置setVisible(true);while(true){repaint();try{Thread.sleep(40);}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {System.out.println("被调用");BallGame3 game=new BallGame3();game.launchFrame();}}

运行结果:

第四步:桌面游戏代码——实现任意角度飞行

package 桌面游戏;import java.awt.*;
import java.awt.Toolkit;import javax.swing.JFrame;public class BallGame4 extends JFrame{//添加小球和桌面图片路径Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.jpg");//指定小球的初始位置double x=100;//小球横坐标double y=100;//小球纵坐标double degree=3.14/3;//弧度:小球运动的角度,此处是60度boolean right=true;//判断小球方向//画窗口的方法:加载小球与桌面public void paint(Graphics g){System.out.println("窗口被画了一次!!");g.drawImage(desk, 0, 0, null);//画出桌面图片g.drawImage(ball, (int)x,(int)y, null);//画出小球图片//根据degree改变小球坐标x=x+10*Math.cos(degree);y=y+10*Math.sin(degree);//边界检测:碰上下边界//500是窗口高度,40是桌子边框的宽度,30是小球的直径;40是标题栏高度if(y>500-40-30||y<40+40){degree=-degree;}//边界检测:碰左右边界//856是窗口宽度,40桌子边框,30是小球直径if(x<40||x>856-40-30){degree=3.14-degree;}}//加载窗口void launchFrame(){setSize(856,500);   //窗口大小setLocation(50,50);//窗口的起始位置setVisible(true);while(true){repaint();try{Thread.sleep(40);//40ms,1s=1000ms.大约1秒25画次}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {System.out.println("被调用");BallGame4 game=new BallGame4();game.launchFrame();}}

运行结果:

5分钟完成桌面小游戏项目相关推荐

  1. 30分钟java桌球小游戏_30分钟完成桌球小游戏项目

    桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回. 练手项目加速度控制 //添加速度控制的台球游戏 import java.awt.*; import javax.swing.*; public ...

  2. 30分钟完成桌球小游戏项目

    桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回. http://www.sxt.cn/Java_jQuery_in_action/Billiards_Games.html; 练手项目加速度控制 ...

  3. 老司机带你飞——DIY桌面小电视

    桌面小电视 本期福利 活动规则: [1]添加客服微信(xutoubee)领取作品开源资料 [2]转发该篇文章到朋友圈,并停留30分钟,凭截图联系客服微信,进群参与抽奖(免费送作品)     活动截止时 ...

  4. WinForm制作定时显示基金净值的桌面小工具

    基金网每隔一分钟会更新净值估算,每次要打开网站看挺麻烦的,于是制作了一个桌面小工具,在桌面顶层并且透明显示,每隔一分钟抓取数据显示. 净值估算例子如下: http://fund.eastmoney.c ...

  5. 开发数字时钟桌面小控件

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 所谓桌面小控件,就是指能直接显示在Android系统桌面的小程序,比如模拟时钟等.桌面小控件是通过Broadc ...

  6. Android之RemoteViews篇上————通知栏和桌面小控件

    Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 文章目录 Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 二.RemoteViews的概 ...

  7. Android桌面小组件时钟实现

    进来需要做一个桌面小组件的项目,其中当然包括了时钟.度娘一下发现所有的文章都是说自己放表盘.分钟.时针三张图片,用service做个定时器控制指针旋转时间相对应的角度来更新小组件,然后需要前台serv ...

  8. 【物联网】基于MQTT实现通信的ESP32桌面小电视(异地恋必备神器)

    [物联网]ESP32桌面小电视之异地恋必备神器 一. 前言 之前在B站看到ESP32小电视,主要是时间气象显示,就想着也可以做恋爱纪念日显示于是就有了纪念日显示页面,女朋友有个要求,就是我们两个能够呼 ...

  9. 实践--桌面小组件之天气小组件

    首先感谢这篇博客的博主,通过他的博客才学会的如何使用小组件. 效果图如下 关于小组件的原理已经在 UI控件–桌面小组件(1)介绍过了,又需要的自行去浏览. 1.在res/xml下创建配置文件appwi ...

最新文章

  1. 女性护理品牌Honeymate获8000万A+轮融资,将与美图公司深度合作
  2. 前端学PHP之正则表达式基础语法
  3. jquery 插件
  4. unix,linux,windows 哪个更好,更适合做服务器
  5. 斗地主程序设计c语言,C语言斗地主游戏v0.1
  6. Function宝典
  7. rails应用中各数据平台的对接
  8. 通用单向链表设计(一)——接口的设计
  9. nginx +php-fpm 发挥更大的php作用
  10. heatmap(热图)
  11. Flash CS3无法导出测试影片问题解决
  12. 太牛了!阿里p8全面透彻剖析《Netty权威指南》,程序员必看!
  13. 世界上著名的三大检索工具
  14. 操作系统语言包在c盘哪里,win10系统通过卸载语言包释放c盘空间的具体教程
  15. 设计一款给爸爸妈妈用的手机
  16. Excel打印时完整显示合并的单元格区域
  17. 【笔记】C#学习笔记
  18. Json使用详解(配合Ajax异步请求)
  19. Windows日志查看工具分享
  20. Java线程状态及转换

热门文章

  1. 单片机串口全双工C语言,C系列单片机有一个全双工的串行口.ppt
  2. 科大讯飞 唤醒python_用科大讯飞API实现本地语音文件识别
  3. 使用ObjectARX在AutoCAD2002中画直线
  4. centos安装nginx详细教程及配置虚拟机域名重定向
  5. python数据逆透视_Python数据神器pandas,轻松搞定嵌套表头——透视与逆透视
  6. centos6配置DNS
  7. 【校招VIP】产品项目分析之系统策划
  8. 最简单的阿拉伯数字转大写(财务专用)存储过程实现
  9. Python——cv2图片识别
  10. transmac装黑苹果_TransMac(dmg文件打开工具) v12.5官方版 使用教程:制作mac os 黑苹果启动盘...