版本三、使小球动起来
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();
}
}
---------------------

Java桌球小游戏1的更多相关文章

  1. Java桌球小游戏(兴趣制作)

    两张图片放在src的同级目录下 版本一.出现窗口package cn.xjion.game;/** * 出现窗口 * @author xjion * */import java.awt.*;impor ...

  2. Java桌球小游戏

    版本一.出现窗口package cn.xjion.game;/** * 出现窗口 * @author xjion * */import java.awt.*;import javax.swing.*; ...

  3. Java太阳系小游戏分析和源代码

    Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...

  4. Java五子棋小游戏(控制台纯Ai算法)

    Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看 ...

  5. Java猜拳小游戏(剪刀、石头、布)

    1.第一种实现方法,调用Random数据包,直接根据“1.2.3”输出“剪刀.石头.布”.主要用了9条输出判断语句. import java.util.Random; import java.util ...

  6. 从零开始学java(小游戏 石头剪刀布)

    Game.java package com.java;import java.util.Scanner;public class Game {        private Player player ...

  7. Java石头剪刀布小游戏

    package com.neusoft.test; import java.awt.BorderLayout; import java.awt.Choice; import java.awt.Colo ...

  8. Java开发小游戏 用键盘控制精灵在游戏中上下左右跑动 窗体小游戏可打包下载,解压后双击start运行

    package com.swift; import java.awt.Point; import java.awt.event.KeyEvent; import com.rupeng.game.Gam ...

  9. Java经典小游戏——贪吃蛇简单实现(附源码)

    一.使用知识 Jframe GUI 双向链表 线程 二.使用工具 IntelliJ IDEA jdk 1.8 三.开发过程 3.1素材准备 首先在开发之前应该准备一些素材,已备用,我主要找了一个图片以 ...

随机推荐

  1. QT树莓派交叉编译开发环境搭建

    QT树莓派交叉编译开发环境搭建 - JerryZone <Cross-compiling Qt Embedded 5.5 for Raspberry Pi 2> <Qt for Em ...

  2. POJ 1655 Balancing Act (树状dp入门)

    Description Consider a tree T with N (1 <= N <= 20,000) nodes numbered 1...N. Deleting any nod ...

  3. Who Saw My Blog

    I found that my blog has visitors!!! I wonder who has watched my blog and what did they feel at that ...

  4. 探索Redis设计与实现12:浅析Redis主从复制

    本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...

  5. windows环境下如何安装memcached教程

    Memcached 是一个开源免费高性能的分布式内存对象缓存系统,能够加快网站访问速度和减轻数据库压力,本文向大家介绍下windows环境下如何安装memcached. 工具/原料   memcach ...

  6. sql find_in_set在oracle下的解决方案

    比如一张表: artile (id,type,content); type:1表示文艺类,2表示小说类,3表示传记,4表示传说,等等5,6,7,8 表数据: id type content 1 3,1 ...

  7. spring MVC 返回值信息和ResponseBody的响应json数据

    spring mvc的界面返回: 如果我们定义的返回类型是String 那么我们返回的时候直接写入 我们的界面的名字就可以了  springmvc会自动去找到我们的界面,如果是void类型的返回那么 ...

  8. POJ 2254 Globetrotter (计算几何 - 球面最短距离)

    题目链接:POJ 2254 Description As a member of an ACM programming team you'll soon find yourself always tr ...

  9. 点读系列《Jenkins用户文档》

    Jenkins用户手册官网地址:点击打开 开源 CI&CD 软件 自动化各种任务, build test deploy 支持各种运行方式 Jenkins入门 入门指南 需要java和docke ...

  10. shell编程:变量替换

    定义变量:$ var_1="I love you, Do you love me" 输出变量:$ echo $var_1 打印结果:I love you, Do you love ...