• 30分钟完成桌球小游戏项目


        桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回。

    http://www.sxt.cn/Java_jQuery_in_action/Billiards_Games.html;

    练手项目加速度控制

    //添加速度控制的台球游戏
    
    import   java.awt.*;
    import  javax.swing.*;
    
    
    public class BallGame2 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;
        double speed=10;
    
        public void paint(Graphics g) {
            g.drawImage(desk, 0, 0, null);
            g.drawImage(ball, (int) x, (int) y, null);
    
    
                x=x+speed*Math.cos(degree);
                y=y+speed*Math.sin(degree);
                if(x>856-70||x<40){
                    degree=3.14-degree;
                }
                if(y>430||y<70){
                    degree=-degree;
                }
            }
    
    
    
        void launchFrame() {
            setSize(856, 500);
            setLocation(50, 50);
            setVisible(true);
    
            //重画窗口,每秒画25次
            while (speed>1) {
                repaint();
                long time=40+40/232;
                try {
                    Thread.sleep(time);  //因为前期速度较快,休眠时间不能过长,而后期速度较慢,休眠时间可以长一点
                                         //通过时间来控制休眠时间,,避免出现前期降速太快,而后期帧数不足的情况
                } catch (Exception e) {
                    e.printStackTrace();
                }
                speed=speed/1.01;//通过speed的匀速减小来使路程均匀减小
    
            }
    
    
        }
    
        public static void main(String[] args) {
            BallGame2 game = new BallGame2();
            game.launchFrame();
        }
    
    }
    
  • 相关阅读:
    38
    37
    学记
    36.java_exception_test
    c++中enum的用法——枚举类型
    35
    34
    33
    32
    31
  • 原文地址:https://www.cnblogs.com/jeasion/p/10758380.html
Copyright © 2020-2023  润新知