桌球小游戏项目3.0

package cn.ballgame;
import sun.awt.image.ToolkitImage;

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

public class 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;//小球运动的方向
    boolean up=false;
    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);

//        if(right){
//            x=x+10;
//        }else{x=x-10;}
//
//        if(x>790){
//            right=false;
//        }
//        if(x<45){
//            right=true;
//        }
        if(right){
            x=x+10*Math.cos(degree);
        }else{x=x-10*Math.cos(degree);}
        if(up){
            y=y-10*Math.sin(degree);
        }else{y=y+10*Math.sin(degree);}

        if(x>790){
             right=false;
        }
        if(x<35){
            right=true;
        }
        if(y<70){
            up=false;
        }
        if(y>440){
            up=true;
        }
    }

    //窗口加载
    void launchFrame(){
        setSize(856,500);
        setLocation(50,50);
        setVisible(true);
    }

    //重复窗口,每秒画25次
    void re(){
        while(true){
            repaint();
            try{
                Thread.sleep(40);   //40ms,   1秒=1000毫秒.  大约一秒画25次窗口
            }catch(Exception e){
                e.printStackTrace();
            }

        }
    }


    //main方法是程序员的入口
    public static void main(String[] args){
        System.out.println("我是海拉");
        BallGame game=new BallGame();
        game.launchFrame();
        game.re();
    }
}

运行结果:

  • 随机动,碰壁会回头。模拟真球的效果。

你可能感兴趣的:(桌球小游戏项目3.0)