JAVA——桌球游戏(动画)
2024-10-08 22:13:18
跟着视频敲得 ,虽然不是自己的思路 ,不过对代码多了一点了解:涉及到继承类
主函数:创建一个BallGame对象,调用一个launchFrame函数 ;
launchFrame函数:严格来说是方法 ,设定好一个窗口的信息,在窗口内开始画动画,只不过每次需要控制小球的位置(注意延时)
paint函数:导入素材,改变小球位置
首先需要在当前项目下new 一个Folder文件夹 ,将素材直接复制进去,然后在src文件夹下new一个class文件
桌球:
桌面:
package pro02;
import java.awt.*;
import javax.swing.*;
//导入两个包 后面要用他们的类
//继承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;
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);
//可能出现懒加载情况
x=x+10*Math.cos(degree);//1/2
y=y+10*Math.sin(degree);//sqrt(3)/2
if(y>=500-40-30||y<=40) {
degree=-degree;
}
if(x>=856-40-30||x<=40) {
degree=3.14-degree;
}
}
//窗口加载
void launchFrame(){
setSize(856,500);//窗口大小
setLocation(50,50);//窗口左上角位置
setVisible(true); //看得见的
/*在窗口内重复画*/
while(true) {
repaint();
//意外处理机制
try {
Thread.sleep(40);
}catch(Exception e) {//例外
e.printStackTrace();
}
}
}
//main方法是程序执行的入口
public static void main(String[] args) {
//创建一个对象game
BallGame game=new BallGame();
game.launchFrame();
//System.out.println("你好 !java");
}
}
最新文章
- Android入门(一):Android发展史
- 用CocoaPods做iOS程序的依赖管理
- 【转载】10分钟学会理解和解决MySQL乱码问题
- fastreport for .net 数据邦定
- 【转】Web标准中的常见问题
- centos6.5下磁盘分区及挂载
- 提高你的Java代码质量吧:如果有必要,使用变长数组吧
- #Leet Code# Same Tree
- C++重载解析
- Vim经常使用技巧总结1
- 浅谈vertical-align
- linux--每日一个命令
- 【转】14个最佳的HTML/CSS设计和开发框架
- linux常用20命令 --转载
- MySQL官网示例数据库emploees分析使用
- mysql 开发基础系列21 事务控制和锁定语句(下)
- Composer 安装以及使用方法
- linux2.6.30.4内核移植(4)&mdash;&mdash;完善串口驱动
- cocos2d - CCSprite各种动画
- 网易云基于 Kubernetes 的深度定制化实践