今天为大家分享模拟太阳系的的开发与制作,目前系统已经完成了初步功能,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步
开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以。运行主程序,或者执行打开JAR文件即可以运行本程序。
系统框架
利用JDK自带的SWING框架开发,不需要安装第三方JAR包。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。
主要功能
9大行星简介
太阳系有“9大行星”,是太阳系的内行星,按照离太阳的距离从近到远,它们依次为太阳系、水星、金星、地球、火星、木星、土星、天王星、海王星。他们都为了太阳为中心进行公转。
转动原理
通过百度资料查询9大行星的照片,每个行星设置一张图片代表他们的照片。其他太阳是固定位置。其他行星围绕他们来进行运转。
程序主要功能
1实时展示围绕太阳进行公转的效果,
2通过按钮可以设置公转加速或者
3 通过按钮可以设置公转减速。
运行效果
关键代码
package cn.xia.util;
import java.awt.Image;
import java.awt.Toolkit;
public class GameUtil {
private GameUtil(){};
public static Image getImage(String path) {
// URL u = GameUtil.class.getClassLoader().getResource(path);
// BufferedImage img = null;
// try {
// img = ImageIO.read(u);
// } catch (IOException e) {
// e.printStackTrace();
// }
// return img;
return Toolkit.getDefaultToolkit().getImage(GameUtil.class.getClassLoader().getResource(path));
}
}
public class MyFrame extends Frame {
public MyFrame() {
super("模拟太阳系");
}
public void launchFrame() {
setSize(Constant.GAME_WIDTH, Constant.GAME_HIGTH);
setLocation(0, 0);
setVisible(true);
new PaintThread().start();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
private Image offScreenImage = null;
public void update(Graphics g) {
if (offScreenImage == null) {
offScreenImage = this.createImage(Constant.GAME_WIDTH,
Constant.GAME_HIGTH);
}
Graphics gOff = offScreenImage.getGraphics();
paint(gOff);
g.drawImage(offScreenImage, 0, 0, null);
}
/**
*
* @author hp
*
*/
class PaintThread extends Thread {
public void run() {
while (true) {
repaint();
try {
Thread.sleep(40);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}