Java桌球小游戏(兴趣制作)
两张图片放在src的同级目录下
版本一、出现窗口
package cn.xjion.game;
/**
* 出现窗口
* @author xjion
*
*/
import java.awt.*;
import javax.swing.*;
//继承窗口类
public class BallGame extends JFrame{
// 窗口加载的方法
void launchFrame(){
// 窗口的大小,宽高
setSize(300,300);
// 窗口的位置,距离窗口左上角的位置
setLocation(400,200);
// 窗口可见
setVisible(true);
}
// main方法,执行入口
public static void main(String[] args) {
// 新建对象
BallGame bg = new BallGame();
// 调用方法
bg.launchFrame();
}
}
版本二、加载图片
这儿的加载图片有个缓存问题,需要最小化窗口再打开
package cn.xjion.game;
/**
* 加载图片
* @author xjion
*
*/
import java.awt.*;
import javax.swing.*;
//继承窗口类
public class BallGame extends JFrame{
// 创建两个图片的对象,代表两个图片
Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
// 画窗口的方法
public void paint(Graphics g){
// 画桌面
g.drawImage(desk, 0, 0, null);
// 画ball对象,坐标100,100
g.drawImage(ball, 100, 100, null);
}
// 窗口加载的方法
void launchFrame(){
// 窗口的大小,宽高
setSize(856,500);
// 窗口的位置,距离窗口左上角的位置
setLocation(50,50);
// 窗口可见
setVisible(true);
}
// main方法,执行入口
public static void main(String[] args) {
// 新建对象
BallGame bg = new BallGame();
// 调用方法
bg.launchFrame();
}
}
版本三、使小球动起来
package cn.xjion.game;
/**
* 水平滚动
* @author xjion
*
*/
import java.awt.*;
import javax.swing.*;
//继承窗口类
public class BallGame extends JFrame{
// 创建两个图片的对象,代表两个图片
Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
int x = 100;
int y = 100;
boolean right = true;
// 画窗口的方法
public void paint(Graphics g){
// 画桌面
g.drawImage(desk, 0, 0, null);
// 画ball对象,坐标100,100
g.drawImage(ball, x, y, null);
// 如果向右走就加10,否则减10
if (right) {
x = x + 10;
}else{
x = x - 10;
}
// 当球跑到头了就返回
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 catch抛异常
try {
// 40ms重画一次,1秒25次
Thread.sleep(40);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// main方法,执行入口
public static void main(String[] args) {
// 新建对象
BallGame bg = new BallGame();
// 调用方法
bg.launchFrame();
}
}
版本四、使小球沿任意角度滚动
package cn.xjion.game;
/**
* 任意滚动
* @author xjion
*
*/
import java.awt.*;
import javax.swing.*;
//继承窗口类
public class BallGame2 extends JFrame{
// 创建两个图片的对象,代表两个图片
Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
// 在窗口上的坐标
double x = 100;
double y = 100;
double degree = 3.14 / 3;//弧度,60°
// 画窗口的方法
public void paint(Graphics g){
// 画桌面
g.drawImage(desk, 0, 0, null);
// 画ball对象,坐标100,100
g.drawImage(ball,(int) x,(int) y, null);
// x和y坐标的变化
x = x + 10*Math.cos(degree);
y = y + 10*Math.sin(degree);
/*判断什么时候碰到边界回弹*/
// 碰到上下边界回弹
if (y>500-40-30 || y<40 + 40) {
degree = -degree;
}
// 碰到左右边界回弹
if (x>856-40-30 || x<30) {
degree = 3.14-degree;
}
}
// 窗口加载的方法
void launchFrame(){
// 窗口的大小,宽高
setSize(856,500);
// 窗口的位置,距离窗口左上角的位置
setLocation(50,50);
// 窗口可见
setVisible(true);
// 重画窗口,无限重画
while(true){
// 重画方法
repaint();
// try catch抛异常
try {
// 40ms重画一次,1秒25次
Thread.sleep(40);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// main方法,执行入口
public static void main(String[] args) {
// 新建对象
BallGame2 bg = new BallGame2();
// 调用方法
bg.launchFrame(http://www.my516.com);
}
}
---------------------
Java桌球小游戏(兴趣制作)的更多相关文章
- Java桌球小游戏1
版本三.使小球动起来package cn.xjion.game;/** * 水平滚动 * @author xjion * */import java.awt.*;import javax.swing. ...
- Java桌球小游戏
版本一.出现窗口package cn.xjion.game;/** * 出现窗口 * @author xjion * */import java.awt.*;import javax.swing.*; ...
- Java太阳系小游戏分析和源代码
Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...
- Java五子棋小游戏(控制台纯Ai算法)
Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看 ...
- Java猜拳小游戏(剪刀、石头、布)
1.第一种实现方法,调用Random数据包,直接根据“1.2.3”输出“剪刀.石头.布”.主要用了9条输出判断语句. import java.util.Random; import java.util ...
- 从零开始学java(小游戏 石头剪刀布)
Game.java package com.java;import java.util.Scanner;public class Game { private Player player ...
- Java 坦克小游戏心得
原本是闲得慌无聊才去尝试做这个项目的,因为小时候玩小霸王的游戏机,那个时候经常玩这个游戏吧,特别是喜欢那种自定义地图的模式,觉得自由度非常不错.总之关于这个游戏,想说的一大堆.鉴于能有个空闲的时间,打 ...
- Java石头剪刀布小游戏
package com.neusoft.test; import java.awt.BorderLayout; import java.awt.Choice; import java.awt.Colo ...
- Java开发小游戏 用键盘控制精灵在游戏中上下左右跑动 窗体小游戏可打包下载,解压后双击start运行
package com.swift; import java.awt.Point; import java.awt.event.KeyEvent; import com.rupeng.game.Gam ...
随机推荐
- jquery怎样获取多个复选框的值?
jquery的遍历方法可以获取复选框所欲的选中值 1 2 $("input:checkbox:checked").each(function(index,element)); ...
- 洛谷 P2534 [AHOI2012]铁盘整理
P2534 [AHOI2012]铁盘整理 题目描述 输入输出格式 输入格式: 共两行.第一行为铁盘个数N(1<=N<=50),第二行为N个不同的正整数,分别为从上到下的铁盘的半径R.(1& ...
- dubbo协议参考手册(转)
原文链接:http://wely.iteye.com/blog/2331332 协议参考手册 (+) (#) 推荐使用Dubbo协议 性能测试报告各协议的性能情况,请参见:性能测试报告 (+) dub ...
- Android获取设备屏幕宽高像素值的两个方法
private void get1() { Resources resources = this.getResources(); DisplayMetrics dm = resources.getDi ...
- Codeforces444A_DZY Loves Physics
DZY Loves Physics time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- Fitnesse FIT的使用
FIT是fitnesse使用的默认的引擎(SLIM的使用在上一篇文章中说明),不需要特别声明即可使用执行表格测试,所有编写的fixture都需要继承Fit的Fitxture 编写测试用例前需要先声明c ...
- Java读源代码学设计模式:适配器Adapter
适配器模式相关源代码:slf4j-1.6.1.hibernate-3.6.7 大家都知道.log4j是一个广泛使用的日志工具,除此之外.sun公司在JDK中也有自己的日志工具,也就是java.util ...
- 【字符串处理算法】字符串包括的算法设计及C代码实现
一.需求描写叙述 给定一个长字符串和一个短字符串.编敲代码推断短字符串中的全部字符是否都在长字符串中.假设是,则长字符串包括短字符串:反之,不包括. 为了尽量包括大多数情况,字符串中能够包括大写和小写 ...
- Linux中修改系统时间
#date //显示当前日期 #date -s //设置当前时间,只有root权限才能设置,其他只能查看. #date -s 20061010 //设置成20061010,这样会把具体时间设置成空00 ...
- hdoj--2015--偶数求和(水题)
偶数求和 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...