前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5分钟完成桌面小游戏项目「建议收藏」

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

作者头像
全栈程序员站长
发布2022-08-23 15:10:27
5490
发布2022-08-23 15:10:27
举报

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

桌面小游戏

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

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

ball
ball
desk
desk

然后在src下新建类BallGame.java,项目结构如下:

桌面游戏的项目结构
桌面游戏的项目结构

第一步:创建项目和窗口代码如下:

代码语言:javascript
复制
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();
	}

}

运行结果:

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

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

代码语言:javascript
复制
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
aa

第三步:实现动画

代码语言:javascript
复制
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();
	}

}

运行结果:

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

第四步:桌面游戏代码——实现任意角度飞行

代码语言:javascript
复制
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.cn/138627.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月6,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 桌面小游戏
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档