java实现桌球小游戏

本文实例为大家分享了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();

}

}

好了,这个最为简单的桌球游戏就算是完成了,能实现球的滚动,如果有兴趣的可以再研究研究球杆,辅助线,击球,速度逐渐下降到停止,进球及分数的操作,有不对的地方望大家指出!

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 java实现桌球小游戏 的全部内容, 来源链接: utcz.com/z/328453.html

回到顶部