import java.awt.CardLayout;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.*;
public class GamePanel extends Panel{
JLabel Jlb=new JLabel();
Toolkit toolkit=Toolkit.getDefaultToolkit();
Image offimage;
Image offimg=toolkit.createImage("images/images/bg.jpg");;
JPanel Jp;
char pdir='u';
CardLayout cardlayout;
//爆炸效果
ArrayList bushes=new ArrayList();
//子弹
ArrayList mis=new ArrayList();
//我方坦克
Tank tank1=new Tank(564,654,true,bushes,mis);
//树集合
ArrayList trees=new ArrayList();
Tree[] Trees={new Tree(200,300,true),
new Tree(300,300,true),
new Tree(400,300,true),
new Tree(500,300,true)};
Tree tree1=new Tree(200,300,true);
Tree tree2=new Tree(300,300,true);
Tree tree3=new Tree(400,300,true);
Tree tree4=new Tree(500,300,true);
//敌方坦克
ArrayList Dtanks=new ArrayList();
Tank[] tanks={new Tank(555,100,true,false),
new Tank(555,200,true,false),
new Tank(555,300,true,false),
new Tank(555,400,true,false)};
//墙集合
ArrayList ZA=new ArrayList();
Wall[] walls={new Wall(32,56,true),
new Wall(80,56,true),
new Wall(128,56,true),
new Wall(176,56,true)};
Wall wall1=new Wall(32,56,true);
Wall wall2=new Wall(80,56,true);
Wall wall3=new Wall(128,56,true);
Wall wall4=new Wall(176,56,true);
public GamePanel(JPanel Jp,CardLayout cardlayout)
{
init();
this.Jp=Jp;
this.cardlayout=cardlayout;
Thread th=new Thread(new Mythread());
th.start();
}
//加入集合
public void init()
{
for(int i=0;i<tanks.length;i++)
{
Dtanks.add(tanks[i]);
}
for(int i=0;i<Trees.length;i++)
{
trees.add(Trees[i]);
}
for(int i=0;i<walls.length;i++)
{
ZA.add(walls[i]);
}
this.addKeyListener(new MyKeyListener(tank1));
this.setLayout(new BorderLayout());
}
//防止闪屏
@Override
public void update(Graphics g)
{
if(offimage==null)
{
offimage=this.createImage(this.getWidth(),this.getHeight());
}
Graphics offg=offimage.getGraphics();
paint(offg);
g.drawImage(offimage, 0, 0, null);
}
//画图
@Override
public void paint(Graphics g) {
g.drawImage(offimg, 0, 0, null);
tank1.draw(g);
//画坦克
for(int i=0;i<Dtanks.size();i++)
{
Tank tk=(Tank)Dtanks.get(i);
tk.draw(g);
}
//画子弹
for(int i=0;i<mis.size();i++)
{
Missible mb=(Missible)mis.get(i);
mb.paint(g);
}
//画效果
for(int i=0;i<bushes.size();i++)
{
Expr bs=(Expr)bushes.get(i);
bs.draw(g);
}
//画树
for(int i=0;i<trees.size();i++)
{
Tree tr=(Tree)trees.get(i);
tr.draw(g);
}
//画障碍
for(int i=0;i<ZA.size();i++)
{
Wall wall=(Wall)ZA.get(i);
wall.draw(g);
}
//检测
for(int i=0;i<mis.size();i++)
{
Missible mb=(Missible)mis.get(i);
//检测树
for(int j=0;j<trees.size();j++)
{
Tree tr=(Tree)trees.get(j);
mb.checkTr(tr);
}
//检测障碍
for(int j=0;j<ZA.size();j++)
{
Wall wall=(Wall)ZA.get(j);
mb.checkW(wall);
}
//检测敌方坦克
for(int j=0;j<Dtanks.size();j++)
{
Tank tk=(Tank)Dtanks.get(j);
mb.checkTk(tk);
}
}
}
//线程类
class Mythread extends Thread
{
@Override
public void run()
{
while(true)
{
try
{
Thread.sleep(50);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
repaint();
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于java开发的简单的坦克大战
共149个文件
prefs:61个
gif:29个
xml:14个
需积分: 10 1 下载量 175 浏览量
2010-12-11
10:11:13
上传
评论
收藏 880KB ZIP 举报
温馨提示
用java语言写的简单的贪吃蛇,有不完整处
资源推荐
资源详情
资源评论
收起资源包目录
基于java开发的简单的坦克大战 (149个子文件)
GamePanel.class 4KB
Tank.class 4KB
Missible.class 4KB
NativPanel.class 2KB
HelpPanel.class 2KB
Expr.class 1KB
mainFrame.class 1KB
Tree.class 1KB
Wall.class 1KB
MyKeyListener.class 988B
GamePanel$Mythread.class 697B
RunTank.class 394B
HeadBoss.class 249B
.classpath 232B
variablesAndContainers.dat 425B
shu.gif 4KB
cc.gif 4KB
zb.gif 4KB
xz.gif 4KB
tankD01.gif 3KB
tankU01.gif 3KB
tankL01.gif 3KB
tankD.gif 3KB
tankL.gif 3KB
tankU.gif 3KB
tankR.gif 3KB
tankR01.gif 3KB
lawn.gif 3KB
9.gif 2KB
nl.gif 2KB
8.gif 2KB
superpd.gif 1KB
7.gif 1KB
10.gif 1KB
6.gif 1KB
5.gif 1KB
4.gif 687B
3.gif 340B
missileD.gif 292B
missileU.gif 289B
missileR.gif 287B
missileL.gif 283B
2.gif 282B
1.gif 95B
properties.index 57B
version.ini 26B
GamePanel.java 4KB
Tank.java 3KB
Missible.java 3KB
NativPanel.java 1KB
Expr.java 1KB
HelpPanel.java 976B
MyKeyListener.java 890B
mainFrame.java 783B
Tree.java 647B
Wall.java 577B
RunTank.java 100B
HeadBoss.java 32B
bg.jpg 290KB
bg.jpg 226KB
help.jpg 131KB
tk3.jpg 78KB
n2.jpg 6KB
n3.jpg 6KB
n1.jpg 5KB
return.jpg 2KB
.lock 0B
.log 3KB
hibernate-tools.log 0B
org.eclipse.ui.workbench.prefs 2KB
com.genuitec.eclipse.wizards.prefs 1KB
org.eclipse.jdt.launching.prefs 507B
org.eclipse.jdt.ui.prefs 485B
org.eclipse.jdt.core.prefs 462B
org.eclipse.team.cvs.core.prefs 250B
org.eclipse.debug.ui.prefs 179B
org.eclipse.core.resources.prefs 156B
org.eclipse.ui.ide.prefs 128B
com.genuitec.myeclipse.compatibility.prefs 116B
org.eclipse.team.ui.prefs 100B
com.genuitec.eclipse.easie.orion2.prefs 99B
com.genuitec.eclipse.easie.sun8.prefs 99B
com.genuitec.eclipse.easie.sun.prefs 99B
com.genuitec.eclipse.easie.sunglassfish.prefs 99B
com.genuitec.eclipse.easie.weblogic8.prefs 99B
com.genuitec.eclipse.easie.jboss.prefs 99B
com.genuitec.eclipse.easie.jonas3.prefs 99B
com.genuitec.eclipse.easie.weblogic7.prefs 99B
com.genuitec.eclipse.easie.tomcat.myeclipse.prefs 99B
com.genuitec.eclipse.easie.resin2.prefs 99B
com.genuitec.eclipse.easie.orion1.prefs 99B
com.genuitec.eclipse.easie.jonas4.prefs 99B
com.genuitec.eclipse.easie.jboss3.prefs 99B
com.genuitec.eclipse.easie.weblogic9.prefs 99B
com.genuitec.eclipse.easie.tomcat4.prefs 99B
com.genuitec.eclipse.easie.weblogic6.prefs 99B
com.genuitec.eclipse.easie.jetty5.prefs 99B
com.genuitec.eclipse.easie.websphere5.prefs 99B
com.genuitec.eclipse.easie.weblogic10.prefs 99B
com.genuitec.eclipse.easie.jboss5.prefs 99B
共 149 条
- 1
- 2
资源评论
canice
- 粉丝: 3
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功