Java实现台球游戏的动画实现相关代码
2024-09-08 17:23:25
package com.bjsxt;//scr中新建的包package
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.png");
double x=200;
double y=200;
double degree=3.14/3;
//绘制窗口
public void paint(Graphics g){
System.out.println("窗口被绘制了一次。");
g.drawImage(desk,0,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-30||y<0+40+30){
degree=-degree;
}
//碰到左右边界
if(x>856-40-30||x<0+40+30) {
degree = 3.14 - degree;
}
}
//创建窗口
void launchFrame(){
setSize(856,501);
setLocation(100,100);
setVisible(true);
//实现动画,每秒绘制窗口25次
while(true){
repaint();
try {
Thread.sleep(40);//1s=1000ms,大约1s绘制25次
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
System.out.println("我的小游戏开始了!");
BallGame game=new BallGame();
game.launchFrame();
}
}
最新文章
- Oracle学习指南
- hdu Tempter of the Bone
- SQL Server 2012 使用警报调度数据库作业通知操作员
- 判断 iPhone 是否已插入 SIM 卡的方法
- Linux报too many open files的解决方案
- Javascript内存泄漏
- debian将默认中文改成英文
- mysql进阶(九)多表查询
- Navicat 连接VMware中Ubuntu 下的mysql5.7遇到的坑
- Spring Boot 2.x以后static下面的静态资源被拦截
- VS重新生成项目失败,但是不报错
- Day12 (黑客成长日记) 函数
- chattr和lsattr命令的使用(对于root用户也无法修改删除的操作问题)
- ubuntu:如何制作类似jeso的系统?
- Linux 后台进程管理
- react知识点汇总
- ElasticStack系列之六 &; 版本冲突处理之乐观锁
- HDU-4035-概率dp-期望-公式化简
- TCP 中出现RST的情况
- Python基础-socket编程
热门文章
- C++ 编译依赖管理系统分析以及 srcdep 介绍
- [深度探索C++对象模型]trival constructor和non-trival constructor
- BC3-牛牛学说话之-整数
- 基于windows系统使用GNVM进行node切换版本
- angular使用_HttpClient或者Fetch发送POST/GET请求下载/上传文件
- Anaconda和pip常用命令汇总:简单,通俗易懂
- 【学习笔记】XR872 GUI Littlevgl 8.0 移植(文件系统)
- 让 MSYS2 Bash 像 Git Bash 一样显示 Git 分支名称
- Symbol.iterator 迷惑行为
- ChatGPT:好家伙,每个人内心的一块魔镜