桌球小游戏项目

第一步:创建项目和窗口

创建一个images的文件夹,并将以下图片复制进去,然后在src文件下创建一个类。

 

 1、绘制窗口

import javax.swing.*;

public class Class01_BallGame extends JFrame {

    //加载窗口
    void launchFrame(){

        setSize(300,300);

        setLocation(400,400);

        setVisible(true);

    }

    public static void main(String[] args) {

        System.out.println("玩的高兴啊");

        Class01_BallGame game = new Class01_BallGame();

        game.launchFrame();

    }

2、加载图片

import javax.swing.*;

import java.awt.*;

public class Class01_BallGame 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("玩的开心麻");

        Class01_BallGame game = new Class01_BallGame();

        game.launchFrame();

    }

}

3、实现画面

小球实现水平方向来回飞行

import javax.swing.*;
import java.awt.*;

public class Class02_BallGame 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);

        //重画窗口,每秒画25次

        while (true){

            repaint(); 

         //调用repaint方法,窗口即可重写
            try {

                Thread.sleep(40);//40ms,1s=1000ms,大概一秒画25次窗口

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    }


    public static void main(String[] args) {

        System.out.println("玩的开心麻");

        Class02_BallGame game = new Class02_BallGame();

        game.launchFrame();


    }

}

4、实现小球沿任意角度飞行

import javax.swing.*;
import java.awt.*;

public class Class03_BallGame 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度

    //画窗口的方法:加载小球与桌面
    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;
        }

        if(x<40 || x>856-40-30){

            degree = 3.14 - degree;

        }

    }
    void launchFrame() {

        setSize(856, 500);

        setLocation(50, 50);

        setVisible(true);

        //重画窗口,每秒画25次
        while (true){

            repaint();          //调用repaint方法,窗口即可重写

            try {

                Thread.sleep(40);//40ms,1s=1000ms,大概一秒画25次窗口

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    }

    public static void main(String[] args) {

        System.out.println("玩的开心麻");

        Class03_BallGame game = new Class03_BallGame();

        game.launchFrame();


    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值