5分钟完成桌面小游戏项目「建议收藏」

5分钟完成桌面小游戏项目「建议收藏」地址复制到

大家好,又见面了,我是你们的朋友全栈君。

桌面小游戏

下面分成四个步骤来实现项目
第一步:创建项目和窗口。
第二步:加载两张图片(ball.png和desk.jpg)。
第三步:实现动画,让小球沿水平方向移动并做边界检测。
第四步:实现小球沿着任意角度飞行。

第一步:创建项目和窗口。
创建项目名称”桌面小球”,再新建images文件夹,将ball.png和desk.jpg图片拷贝。
图片图片如下:
ball
desk
然后在src下新建类BallGame.java,项目结构如下:

桌面游戏的项目结构
第一步:创建项目和窗口代码如下:

package 桌面游戏;

import javax.swing.JFrame;

public class BallGame extends JFrame{ 
   
	//加载窗口
	void launchFrame(){ 
   
		setSize(300,300);	//窗口大小
		setLocation(400,400);//窗口的起始位置
		setVisible(true);
	}

	public static void main(String[] args) { 
   
		System.out.println("被调用");
		BallGame game=new BallGame();
		game.launchFrame();
	}

}

运行结果:
在这里插入图片描述

第二步:加载两张图片
详细内容见注释

package 桌面游戏;

import java.awt.*;
import java.awt.Toolkit;

import javax.swing.JFrame;

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;//小球纵坐标
	
	//画窗口的方法:加载小球与桌面
	
	public void paint(Graphics g){ 
   
		System.out.println("窗口被画了一次!!");
		g.drawImage(desk, 0, 0, null);//画出桌面图片
		g.drawImage(ball, (int)x,(int)y, null);//画出小球图片
	}
	//加载窗口
	void launchFrame(){ 
   
		setSize(856,500);	//窗口大小
		setLocation(50,50);//窗口的起始位置
		setVisible(true);
	}

	public static void main(String[] args) { 
   
		System.out.println("被调用");
		BallGame2 game=new BallGame2();
		game.launchFrame();
	}

}

运行结果:
aa

第三步:实现动画

package 桌面游戏;

import java.awt.*;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class BallGame3 extends JFrame{ 
   
	//添加小球和桌面图片路径
	Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");
	Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
	//指定小球的初始位置
	
	double x=100;//小球横坐标
	double y=100;//小球纵坐标
	
	boolean right=true;//判断小球方向
	//画窗口的方法:加载小球与桌面
	
	public void paint(Graphics g){ 
   
		System.out.println("窗口被画了一次!!");
		g.drawImage(desk, 0, 0, null);//画出桌面图片
		g.drawImage(ball, (int)x,(int)y, null);//画出小球图片
		//改变小球坐标
		if(right){ 
   
			x=x+10;
		}else{ 
   
			x=x-10;
		}
		//边界检测
		//856是窗口宽度,40是桌子边框的宽度,30是小球的直径
		if(x>856-40-30){ 
   
			right=false;
		}
		if(x<40){ 
   
			right=true;
		}
	}
	//加载窗口
	void launchFrame(){ 
   
		setSize(856,500);	//窗口大小
		setLocation(50,50);//窗口的起始位置
		setVisible(true);
		
		while(true){ 
   
			repaint();
			try{ 
   
				Thread.sleep(40);
			}catch(Exception e){ 
   
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) { 
   
		System.out.println("被调用");
		BallGame3 game=new BallGame3();
		game.launchFrame();
	}

}

运行结果:
在这里插入图片描述
第四步:桌面游戏代码——实现任意角度飞行

package 桌面游戏;

import java.awt.*;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class BallGame4 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度
	
	boolean right=true;//判断小球方向
	//画窗口的方法:加载小球与桌面
	
	public void paint(Graphics g){ 
   
		System.out.println("窗口被画了一次!!");
		g.drawImage(desk, 0, 0, null);//画出桌面图片
		g.drawImage(ball, (int)x,(int)y, null);//画出小球图片
		//根据degree改变小球坐标
		x=x+10*Math.cos(degree);
		y=y+10*Math.sin(degree);
		
	
		//边界检测:碰上下边界
		//500是窗口高度,40是桌子边框的宽度,30是小球的直径;40是标题栏高度
		if(y>500-40-30||y<40+40){ 
   
			degree=-degree;
		}
		//边界检测:碰左右边界
		//856是窗口宽度,40桌子边框,30是小球直径
		if(x<40||x>856-40-30){ 
   
			degree=3.14-degree;
		}
	}
	//加载窗口
	void launchFrame(){ 
   
		setSize(856,500);	//窗口大小
		setLocation(50,50);//窗口的起始位置
		setVisible(true);
		
		while(true){ 
   
			repaint();
			try{ 
   
				Thread.sleep(40);//40ms,1s=1000ms.大约1秒25画次
			}catch(Exception e){ 
   
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) { 
   
		System.out.println("被调用");
		BallGame4 game=new BallGame4();
		game.launchFrame();
	}

}

运行结果:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138627.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号