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();
 }
}

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

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

(0)

相关推荐

  • java实现五子棋小游戏

    java实现五子棋小游戏 package Gomoku; import java.awt.Toolkit; import javax.swing.JFrame; public class GomokuFrame extends JFrame { //定义一个操作面板 OperatorPane op=null; public GomokuFrame() { //设置名称 this.setTitle("五子棋"); //设置窗口大小 this.setSize(510,510); //设置窗

  • Java编写迷宫小游戏

    缘起: 去年(大三上学期)比较喜欢写小游戏,于是想试着写个迷宫试一下. 程序效果: 按下空格显示路径: 思考过程: 迷宫由一个一个格子组成,要求从入口到出口只有一条路径. 想了一下各种数据结构,似乎树是比较合适的,从根节点到每一个子节点都只有一条路径.假设入口是根节点,出口是树中某个子节点,那么,从根节点到该子节点的路径肯定是唯一的. 所以如果能构造一棵树把所有的格子都覆盖到,也就能够做出一个迷宫了. 另外还要求树的父节点和子节点必须是界面上相邻的格子. 在界面显示时,父节点和子节点之间共用的边

  • java编写的简单移动方块小游戏代码

    本文实例讲述了java编写的简单移动方块小游戏代码.分享给大家供大家参考,具体如下: 运行效果截图如下: 第一次用java编写图形化的界面,还是有些青涩..以后继续努力!!具体代码如下: //Little Box Game by AlexYui //Game.java By 1093710210@ HIT import javax.swing.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.*; import

  • Java制作智能拼图游戏原理及代码

    今天突发奇想,想做一个智能拼图游戏来给哄女友. 需要实现这些功能 第一图片自定义 第二宫格自定义,当然我一开始就想的是3*3 4*4 5*5,没有使用3*5这样的宫格. 第三要实现自动拼图的功能,相信大家知道女人耍游戏都不是很厉害,所以这个自动拼图功能得有. 其他什么暂停.排行就不写了! 现在重点问题出来了 要实现自动拼图功能似乎要求有点高哦!计算机有可不能像人一样只能: 先追究下本质 拼图游戏其实就是排列问题: 排列有这么一个定义:在一个1,2,...,n的排列中,如果一对数的前后位置与大小顺

  • java实现的简单猜数字游戏代码

    本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 具体代码如下: 复制代码 代码如下: import java.util.InputMismatchException; import java.util.Scanner; public class Main {         public static void main(String[] args) {                 // 产生一个随机数                 int number = (in

  • java编写贪吃蛇小游戏

    废话不多说,直接奉上代码: Frame.java package snake; import java.awt.Graphics; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import

  • Java完美实现2048小游戏

    完美地模仿了2048游戏,是根据网友的一个2048改的. Block.java import javax.swing.*; import java.awt.*; public class Block extends JLabel { private int value; public Block() { value = 0;//初始化值为0 setFont(new Font("font", Font.PLAIN, 40));//设定字体 setBackground(Color.gray

  • java贪吃蛇游戏编写代码

    本文实例为大家分享了java贪吃蛇游戏展示的具体代码,供大家参考,具体内容如下 1.采用MVC(model.view.control)框架模式 2.包和类的关系树形图为: 3.源码: package com.huai; import Java.awt.Color; import java.awt.Graphics; import java.awt.Point; import java.util.HashSet; import java.util.LinkedList; import java.u

  • Java实现打飞机小游戏(附完整源码)

    写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐.代码写的很简单,也很容易理解,并且注释写的很清楚了,还有问题,自己私下去补课学习. 效果如下 完整代码 敌飞机 import java.util.Random; 敌飞机: 是飞行物,也是敌人 public class Airplane extends FlyingObject implements Enemy

  • Java编程经典小游戏设计-打砖块小游戏源码

    [程序中使用的数据结构和符号说明] HitBrick类 GreenBallThread控制小球路线 xUp,yUp,bouncing定义变量存储16位数值形式 x,y小球坐标 xDx,yDy坐标增量 MAX_X,MAX_Y坐标最大值 renew初始化 label标签 Rx,Ry横板坐标 Brick[]砖块 ball小球 HitBrick()定义小球横板及砖块位置坐标 keyPressd(keyEent)定义小球启动键(按空格键启动) keyReleased(keyEvent)接收键盘事件侦听器接

随机推荐