zoukankan      html  css  js  c++  java
  • JAVA——桌球游戏(动画)

    跟着视频敲得 ,虽然不是自己的思路 ,不过对代码多了一点了解:涉及到继承类

    主函数:创建一个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");
    	}
    }
    
  • 相关阅读:
    c++ qt安装配置教程
    PKi系统
    IKE协议
    Kerberos
    RADIUS和Diameter
    RageFrame学习笔记:创建路由+导入layui
    TP6框架--EasyAdmin学习笔记:数据表添加新参数,如何强制清除缓存
    JS原生2048小游戏源码分享
    风场可视化学习笔记:openlayers
    vue3.0 demo代码记录
  • 原文地址:https://www.cnblogs.com/HappyKnockOnCode/p/12607057.html
Copyright © 2011-2022 走看看