package net.vicp.bassice;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class MainFrame extends JFrame {
private static int YINGX = 253;
public static int getYINGX() {
return YINGX;
}
private int choosey =330;
private static int YINGY = 469;
public static int getYINGY() {
return YINGY;
}
private boolean playWinSound = false;
private static int YINGSIZE = 70;
private static int ENEMYTANKSIZE = 20;
public static int getYINGSIZE() {
return YINGSIZE;
}
private static final long serialVersionUID = 1L;
// 双缓冲的图片, 背景
Image image, img_bg, img_score, img_begin;
private boolean begin = true;
// 主窗口的长宽
private static int FRAMEWIDTH = 790;
// 主窗口的高度
private static int FRAMEHEIGHT = 620;
// 主窗体的纵向位置
private static int LCOATIONX = 100;
// 主窗体的横向位置
private static int LCOATIONY = 70;
private static int STAGE = 1;
private int overy = 550;
private int winx;
private boolean is_fresh = true;
private static boolean LOOSE = false;
// 方向
boolean u = false, d = false, r = false, l = false;
// 方向
Direction direction = Direction.STOP;
private boolean alert = false;
private static boolean DOUBLEMODEL = false;
private long timeBefor = System.currentTimeMillis();
private long timeNow;
// 游戏失败时的画面刷新时间
private long timeBefor1 ;
//游戏通关时画面时间
private long timeBefor2 ;
private static boolean EDIT = false;
private static boolean ISFIRSTEDIT = false;
// private static boolean EDIT = true;
// private static boolean ISFIRSTEDIT = true;
// 公用随机数
Random rd = new Random();
// 食物临时容器
List<Food> foodsTemp = new ArrayList<Food>();
// 装食物容器
static List<Food> foods = new ArrayList<Food>();
// 装炮弹的容器
static List<Missile> missiles = new ArrayList<Missile>();
// 装坦克的容器
static List<Tank> tanks = new ArrayList<Tank>();
// 被删除的坦克,用于装时装的,再生坦克!
static List<Tank> tanksTemp = new ArrayList<Tank>();
// 主函数
public static void main(String[] args) {
new MainFrame();
}
// Panel of game window
private JPanel jp = new JPanel();
// 创建菜单条
final JMenuBar mf_Menu_Bar = new JMenuBar();
// The panel of the message on the left
private MessageForm message_jp = new MessageForm();
private static Toolkit mf_tk = Toolkit.getDefaultToolkit();
static Image mf_Icon[] = null;
private static Map<String, Image> mf_iconimgs = new HashMap<String, Image>();
private Container con;
static Tank player1, player2, editor;
static {
mf_Icon = new Image[] {
// 当前目录images是在bin下面的,不是放在src目录下的.
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/mf_icon.JPG")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/message_mf_imageTop.jpg")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/0.png")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/1.png")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/2.png")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/3.png")),
mf_tk.getImage(Tank.class.getClassLoader().getResource(
"images/wall/ying.jpg")),
// loading image.becareful the path
mf_tk.getImage(Tank.class.getClassLoader().getResource(
"images/loading.jpg")),
mf_tk.getImage(Tank.class.getClassLoader().getResource(
"images/tank/blood.gif")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/frame.gif")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/led.gif")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/led2.gif")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/message.gif")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/tank/leave.gif")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/stage.gif")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/over.gif")),
mf_tk.getImage(MainFrame.class.getClassLoader().getResource(
"images/background/begin.gif")),
mf_tk.getImage(Tank.class.getClassLoader().getResource(
"images/tank/0r.gif"))
};
mf_iconimgs.put("mf_icon", mf_Icon[0]);
mf_iconimgs.put("message_mf_imageTop", mf_Icon[1]);
mf_iconimgs.put("background_0", mf_Icon[2]);
mf_iconimgs.put("background_1", mf_Icon[3]);
mf_iconimgs.put("background_2", mf_Icon[4]);
mf_iconimgs.put("background_3", mf_Icon[5]);
mf_iconimgs.put("ying", mf_Icon[6]);
mf_iconimgs.put("loading", mf_Icon[7]);
mf_iconimgs.put("blood", mf_Icon[8]);
mf_iconimgs.put("frame", mf_Icon[9]);
mf_iconimgs.put("led", mf_Icon[10]);
mf_iconimgs.put("led2", mf_Icon[11]);
mf_iconimgs.put("message", mf_Icon[12]);
mf_iconimgs.put("leave", mf_Icon[13]);
mf_iconimgs.put("stage", mf_Icon[14]);
mf_iconimgs.put("over", mf_Icon[15]);
mf_iconimgs.put("begin", mf_Icon[16]);
mf_iconimgs.put("r", mf_Icon[17]);
player1 = new Tank(180, 500, true, "player1", Color.RED);
player2 = new Tank(361, 500, true, "player2", Color.BLUE);
editor = new Tank(0, 0, true, "edit", Color.YELLOW);
}
// 主窗体
public MainFrame() {
createEnemyTank();
messageFrame();
// 当显示工具条的时候爆炸要改位置,因为它不属于Jp上的
mainFrame_JMenuBar();
// 图片名字也区分大小写
setIconImage(mf_iconimgs.get("mf_icon"));
setLocation(LCOATIONX, LCOATIONY);
// 去除边框
// this.setUndecorated(true);
setResizable(false);
setVisible(true);
// 新线程用来监听键盘输入
Thread fresh_thread = new Thread(new RepaintThread());
fresh_thread.start();
// 把事件焦点放在主窗口上
setFocusable(true);
// 监听窗体事件,用来关闭
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 增加对对键盘的监听
addKeyListener(new KeyPress());
}
void mainFrame_JMenuBar() {
// 创建菜单
JMenu mf_MenuItem_Key = new JMenu("Control (K)");
// 设置快捷键
mf_MenuItem_Key.setMnemonic('K');
final JMenu mf_MenuItem_Control = new JMenu("Control (C)");
mf_MenuItem_Control.setMnemonic('C');
JMenu mf_MenuItem_EditMap = new JMenu("EditMap (E)");
mf_MenuItem_EditMap.setMnemonic('E');
JMenu mf_MenuItem_Sound = new JMenu("Sound (S)");
mf_MenuItem_Sound.setMnemonic('S');
JMenu mf_MenuItem_Exit = new JMenu("Exit (X)");
mf_MenuItem_Exit.setMnemonic('X');
JMenu mf_Menu_About = new JMenu("GameInfo (G)");
mf_Menu_About.setMnemonic('G');
mf_Menu_Bar.add(mf_MenuItem_Key);
mf_Menu_Bar.add(mf_MenuItem_EditMap);
mf_Menu_Bar.add(mf_MenuItem_Sound);
mf_Menu_Bar.add(mf_Menu_About);
mf_Menu_Bar.add(mf_MenuItem_Exit);
setJMenuBar(mf_Menu_Bar);
// 1.控制设置
mf_MenuItem_Key.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
restart();
没有合适的资源?快使用搜索试试~ 我知道了~
Java_项目_坦克大战_图片版本
共148个文件
gif:65个
class:24个
jpg:15个
需积分: 0 7 下载量 20 浏览量
2009-09-15
16:14:24
上传
评论
收藏 810KB RAR 举报
温馨提示
Lots of pictures of TankWar~
资源推荐
资源详情
资源评论
收起资源包目录
Java_项目_坦克大战_图片版本 (148个子文件)
Tank.class 18KB
MainFrame.class 17KB
GameMap.class 10KB
GameSetting.class 10KB
Missile.class 8KB
MessageForm.class 8KB
Food.class 6KB
MainFrame$KeyPress.class 4KB
Explode.class 2KB
Wall.class 2KB
MainFrame$RepaintThread.class 2KB
GameProperties.class 2KB
InRetangle.class 1KB
GameSetting$1.class 1KB
Direction.class 1KB
SoundPlay.class 1KB
MainFrame$2.class 1KB
MainFrame$4.class 1KB
MainFrame$3.class 991B
GameSetting$SetValue.class 922B
GameSetting$2.class 806B
GameSetting$3.class 806B
MainFrame$1.class 700B
Explode$DrawExplodeThread.class 608B
.classpath 433B
MessageForm.form 11KB
MessageForm.form 11KB
Welcome.form 1KB
Welcome.form 1KB
led2.gif 32KB
frame2.gif 32KB
frame.gif 31KB
message.gif 28KB
begin.gif 17KB
ying.gif 10KB
led.gif 2KB
9.gif 1KB
8.gif 1KB
7.gif 1KB
6.gif 1KB
10.gif 1KB
5.gif 1KB
tankRU.gif 1KB
0ru.gif 1KB
4.gif 1KB
3.gif 1KB
4u.gif 969B
4l.gif 952B
4r.gif 951B
4d.gif 944B
2.gif 936B
1.gif 868B
missileLD.gif 864B
missileRU.gif 863B
missileLU.gif 863B
missileRD.gif 861B
missileD.gif 855B
missileU.gif 852B
missileL.gif 839B
missileR.gif 839B
0rd.gif 751B
tankRD.gif 751B
tankLU.gif 745B
0lu.gif 745B
tankLD.gif 719B
0ld.gif 719B
0d.gif 617B
1tankD.gif 617B
tankU - Copy.gif 615B
1tankU.gif 615B
0u.gif 615B
0r.gif 612B
1tankR.gif 612B
3r.gif 605B
tankR.gif 605B
3d.gif 604B
tankD.gif 604B
0l.gif 601B
1tankL.gif 601B
3u.gif 601B
tankU.gif 601B
3l.gif 590B
tankL.gif 590B
1r.gif 570B
1u.gif 567B
1l.gif 564B
1d.gif 563B
2l.gif 539B
2r.gif 538B
2u.gif 534B
2d.gif 531B
leave.gif 519B
stage.gif 408B
over.gif 328B
images.jar 228KB
swing-layout-1.0.3.jar 115KB
AbsoluteLayout.jar 3KB
MainFrame.java 26KB
GameSetting.java 21KB
Tank.java 21KB
共 148 条
- 1
- 2
资源评论
bassice
- 粉丝: 6
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功