当前位置: 首页 > article >正文

Java基础(三):桌球案例

桌球案例

图片资源:

在这里插入图片描述
在这里插入图片描述

代码

package com.bjsxt;
import java.awt.*;
import javax.swing.*;

import static com.sun.glass.ui.Cursor.setVisible;


public class BallGame extends JFrame {

    Image ball = Toolkit.getDefaultToolkit().getImage("../../images/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("../../images/desk.jpg");

    double x = 200;
    double y = 200;

    double degree = 3.14 / 3; // 弧度  3.14 = 180°    60°

    // 绘制窗口
    public void paint(Graphics g) {
        System.out.println("窗口被画一次");
        g.drawImage(desk, (int)0, (int)0, null);
        g.drawImage(ball, (int)x, (int)y, null);

        x = x + 10*Math.cos(degree);
        y = y + 10*Math.sin(degree);

        if (y > 501 - 40 - 50 || y < 40){
            degree =  - degree;
        }

        // 碰到左右边界
        if(x > 856 - 40 - 50 || x < 40){
            degree = 3.14 - degree;
        }
    }

    void launchFrame(){
        setSize(856, 501);
        setLocation(100, 100);
        setVisible(true);

        while(true){
            repaint();

            try{
                Thread.sleep(40);  // 1s = 1000ms; 大约1秒绘制1000/40=25次
            } catch(InterruptedException e){
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        System.out.println("我的小游戏开始啦");

        BallGame game = new BallGame();
        game.launchFrame();
    }
}

http://www.kler.cn/a/459460.html

相关文章:

  • 无刷直流电机(BLDC)六步换向法
  • 网络安全的学习与实践经验(附资料合集)
  • vue3 css实现文字输出带光标显示,文字输出完毕,光标消失的效果
  • Dubbo 关键知识点解析:负载均衡、容错、代理及相关框架对比
  • 将 Docker 数据迁移到新磁盘:详细操作指南
  • Keepalived + LVS 搭建高可用负载均衡及支持 Websocket 长连接
  • Qt https请求报错SSL handshake failed 解决思路方法
  • AI大模型-提示工程学习笔记0
  • 进程通信(8)读写锁
  • LabVIEW手部运动机能实验系统
  • 使用工厂+策略模式实现去除繁琐的if else
  • 菲尼克斯超级工厂落地南京,汽车市场被瞄准
  • FreeRTOS的时间管理
  • CSS过渡(transition)
  • 【Rust自学】8.2. Vector + Enum的应用
  • 第1关:博客系统数据库设计与实现之查询
  • bacnet mstp设备数据 转 opc ua项目案例
  • vue实现平滑滚动到目标标签页
  • 数据结构-1-线性表
  • Azure DevOps Server:使用TfsDeleteProject.exe删除团队项目
  • 第四期书生大模型实战营 第10关 InternVL 多模态模型部署微调实践
  • WebRTC :原理、协议和应用场景
  • 24.12.27 SpringMVCDay02
  • python3中条件判断语句:if 语句与if嵌套语句
  • CSS利用浮动实现文字环绕右下角,展开/收起效果
  • 从论文到实践:Stable Diffusion模型一键生成高质量AI绘画