📄 gamebeginframe.java
字号:
package frame;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import javax.swing.JFrame;
import role.BaseRole;
import role.BeginChip;
import role.BeginDale;
import role.Flame;
import role.Monster;
import assistant.PublicVar;
import assistant.TrackerBeginImage;
public class GameBeginFrame extends JFrame implements Runnable {
/**
*
*/
private static final long serialVersionUID = 1979423804168346230L;
/** 取得双缓冲画布 */
private Image memoryImage;
/** 产生双缓冲画笔 */
private Graphics memoryGraphics;
/** 媒体追踪器tracker */
private MediaTracker tracker;
/**地图图片*/
public static Image mapImage;
/** 烟花产生计数器 */
private int flameCount;
/** 角色产生计数器 */
private int count;
/** 是否产生角色 */
private boolean isCreate = true;
public GameBeginFrame(){
/* 设置窗体大小 */
this.setSize(650, 550);
/* 设置窗体可见 */
this.setVisible(true);
/* 设置点击关闭,程序结束 */
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
/* 设置窗口不可改变 */
this.setResizable(false);
/* 得到当前屏幕大小的Dimension对象 */
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
/* 设置窗口位于屏幕的正中 */
this.setLocation((dimension.width - 650) / 2,
(dimension.height - 550) / 2);
/*构建媒体追踪器对象*/
tracker = new MediaTracker(this);
TrackerBeginImage.trackerImage(tracker, this);// 媒体追踪
/* 创建画布 */
memoryImage = this.createImage(650, 550);
/* 得到画笔对象 */
memoryGraphics = memoryImage.getGraphics();
// 播放背景音乐
// Music.playSingleMusic(Music.PLAY_GAMEBEGIN);
/*启动线程*/
Thread thread = new Thread(this);
thread.start();
}
public void run() {
while (true) {
repaint();// 窗体重绘
/*
* 产生烟花
*/
if (flameCount > 20) {
double tempDouble = Math.random();
int tempX = (int) (tempDouble * 580 + 30);
PublicVar.roleList.add(new Flame(tempX, 160));
flameCount = 0;
}
flameCount++;
/**
* 产生烟花之外角色
*/
if (this.isCreate) {
this.count++;
/**
* 产生男松鼠
*/
if (count == 2) {
PublicVar.roleList.add(new BeginChip(-30, 540, 0));
}
/**
* 产生女松鼠
*/
if (count == 20) {
PublicVar.roleList.add(new BeginDale());
}
/**
* 产生怪兽
*/
if(count == 750){
PublicVar.roleList.add(new Monster(310, 200));
}
// System.out.println(count);
if(count == 1100){
this.isCreate = false;
break;
}
}
try {
Thread.sleep(20);// 线程休眠
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// Music.StopSingleMusic();
this.dispose();
new MenuFrame();
}
public void update(Graphics g) {
memoryGraphics.drawImage(mapImage, 0, 0, this);
for (int i = 0; i < PublicVar.roleList.size(); i++) {
BaseRole role = PublicVar.roleList.get(i);
role.drawMyself(memoryGraphics, this);// 绘制角色
}
/** 将内存中的图像画在画布上 */
g.drawImage(memoryImage, 0, 0, this);
}
public static void main(String[] args) {
new GameBeginFrame();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -