读书时的做的东西,今天把它贴出来,望大家不吝赐教!坦克大战的部份代码我提供下载,大家可以试着去玩一下!那时候写代码没有什么注释,以至于现在都有点看不懂了,见笑了!
package tank;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.util.List;
import java.util.Random;
public class Tank {
int x;
int y;
int bdx;
int step=0;
int superZid=3;
int zuanting=0;
int zuantcount=0;
int guancount=0;
int zuantingkai=0;
enum Direction{L,LU,U,UR,R,RD,D,DL,STOP};
boolean l=false,u=false,r=false,d=false;
Direction dir=Direction.STOP;
Direction gunDir=Direction.U;
TankClient tc=null;
public static final int XSPEED=5;
public static final int YSPEED=5;
Toolkit tk=Toolkit.getDefaultToolkit();
Image img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankU1.gif"));
Image img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankU.gif"));
Image lfimg=tk.getImage(TankClient.class.getClassLoader().getResource("images/life.gif"));
int Dinx=0,Diny=0;
boolean good=false;
boolean life=true;
public Tank(){}
public Tank(int x, int y,Direction dir, TankClient tc,boolean good) {
this.x = x;
this.y = y;
this.dir=dir;
this.tc=tc;
this.good=good;
}
public Tank(int x, int y, TankClient tc,boolean good,int bdx) {
this.x = x;
this.y = y;
this.tc=tc;
this.good=good;
this.bdx=bdx;
}
public void draw(Graphics g){
if(life){
if(good)
{ g.drawImage(img, x, y, null);
g.drawImage(lfimg, x, y-20, null);
}
else
g.drawImage(img1, x, y, null);
move();
}
}
public void setDirB(){
if(dir==Direction.L)
{
gunDir=Direction.L;
if(this.bdx==2||this.bdx==3||this.bdx==4)
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankL2.gif"));
else
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankL.gif"));
}
else if(dir==Direction.LU)
{
gunDir=Direction.LU;
if(this.bdx==2||this.bdx==3||this.bdx==4)
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankLU2.gif"));
else
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankLU.gif"));
}
else if(dir==Direction.U)
{
gunDir=Direction.U;
if(this.bdx==2||this.bdx==3||this.bdx==4)
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankU2.gif"));
else
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankU.gif"));
}
else if(dir==Direction.UR)
{
gunDir=Direction.UR;
if(this.bdx==2||this.bdx==3||this.bdx==4)
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankRU2.gif"));
else
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankRU.gif"));
}
else if(dir==Direction.R)
{
gunDir=Direction.R;
if(this.bdx==2||this.bdx==3||this.bdx==4)
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankR2.gif"));
else
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankR.gif"));
}
else if(dir==Direction.RD)
{
gunDir=Direction.RD;
if(this.bdx==2||this.bdx==3||this.bdx==4)
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankRD2.gif"));
else
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankRD.gif"));
}
else if(dir==Direction.D)
{
gunDir=Direction.D;
if(this.bdx==2||this.bdx==3||this.bdx==4)
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankD2.gif"));
else
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankD.gif"));
}
else if(dir==Direction.DL)
{
gunDir=Direction.DL;
if(this.bdx==2||this.bdx==3||this.bdx==4)
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankLD2.gif"));
else
img1=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankLD.gif"));
}
}
public void keyPressed(KeyEvent e)
{
int key=e.getKeyCode();
switch(key)
{
case KeyEvent.VK_RIGHT:
r=true;
break;
case KeyEvent.VK_DOWN:
d=true;
break;
case KeyEvent.VK_LEFT:
l=true;
break;
case KeyEvent.VK_UP:
u=true;
break;
}
setDir();
}
public void setDir(){
if(l&&!u&&!r&&!d)
{
dir=Direction.L;
gunDir=Direction.L;
img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankL1.gif"));
}
else if(l&&u&&!r&&!d)
{
dir=Direction.LU;
gunDir=Direction.LU;
img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankLU1.gif"));
}
else if(!l&&u&&!r&&!d)
{
dir=Direction.U;
gunDir=Direction.U;
img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankU1.gif"));
}
else if(!l&&u&&r&&!d)
{
dir=Direction.UR;
gunDir=Direction.UR;
img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankRU1.gif"));
}
else if(!l&&!u&&r&&!d)
{
dir=Direction.R;
gunDir=Direction.R;
img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankR1.gif"));
}
else if(!l&&!u&&r&&d)
{
dir=Direction.RD;
gunDir=Direction.RD;
img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankRD1.gif"));
}
else if(!l&&!u&&!r&&d)
{
dir=Direction.D;
gunDir=Direction.D;
img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankD1.gif"));
}
else if(l&&!u&&!r&&d)
{
dir=Direction.DL;
gunDir=Direction.DL;
img=tk.getImage(TankClient.class.getClassLoader().getResource("images/tankLD1.gif"));
}
else if(!l&&!u&&!r&&!d)
{
dir=Direction.STOP;
}
}
public void move(){
zhangq(tc.walls);
zhuangxing();
Dinx=x; Diny=y;
if(dir==Direction.L)
x-=XSPEED;
else if(dir==Direction.LU)
{
x-=XSPEED;
y-=YSPEED;
}
else if(dir==Direction.U)
{
y-=YSPEED;
}
else if(dir==Direction.UR)
{
x+=XSPEED;
y-=YSPEED;
}
else if(dir==Direction.R)
{
x+=XSPEED;
}
else if(dir==Direction.RD)
{
x+=XSPEED;
y+=YSPEED;
}
else if(dir==Direction.D)
{
y+=YSPEED;
}
else if(dir==Direction.DL)
{
x-=XSPEED;
y+=YSPEED;
}
if(x>tc.getWidth()-50)
{
stop();
}else if(x<0)
{
stop();
}
if (y>tc.getHeight()-50)
{
stop();
}else if(y<20)
{
stop();
}
Direction[] dirs = Direction.values();
if(zuanting==0)
{
if(!good)
{
if(step==0)
{
Random r=new Random();
dir=dirs[r.nextInt(9)];
setDirB();
step=10+r.nextInt(20);
}
step--;
Random k=new Random();
if(k.nextInt(10)==0)
{
tc.bullets.add(fire());
}
}
}
if(zuanting==1){
if(zuantingkai==0){
this.dir=dir=Direction.STOP;
zuantingkai=1;
}
}
if(zuanting==1)
{
if(zuantcount==200)
{
for(int i=0;i<tc.enemy.size();i++)
{
((Tank)tc.enemy.get(i)).zuanting=0;
((Tank)tc.enemy.get(i)).zuantcount=0;
}
tc.myTank.zuanting=0;
tc.myTank.zuantcount=0;
}
zuantcount++;
}
}
public void zhuangxing()
{
for(int i=0;i<tc.dj.size();i++)
{
if(good)
{
if(this.getRectangle().intersects(((Csqj)tc.dj.get(i)).getRectangle()))
{
if(((Csqj)tc.dj.get(i)).getDj()==0)
{
tc.setFlaga(false);
tc.gaiditu(1);
tc.lopad();
tc.goujimiaoshan(1);
}else if(((Csqj)tc.dj.get(i)).getDj()==1)
{ zuantingkai=0;
for(int n=0;n<tc.enemy.size();n++)
{
((Tank)tc.enemy.get(n)).zuanting=1;
}
tc.myTank.zuanting=1;
}
else if(((Csqj)tc.dj.get(i)).getDj()==2)
{
tc.zidsuducount=1;
}
else if(((Csqj)tc.dj.get(i)).getDj()==3)
{
tc.addlife();
}
else if(((Csqj)tc.dj.get(i)).getDj()==4)
{
this.superZid+=3;
tc.superZid+=3;
}
else if(((Csqj)tc.dj.get(i)).getDj()==5)
{
tc.flaga=true;tc.gb=1;
}
else if(((Csqj)tc.dj.get(i)).getDj()==6)
{
tc.husheng=1;
}
tc.dj.remove(i);
}
}
}
}
public void keyReleased(KeyEvent e) {
int key=e.getKeyCode();
switch(key)
{ case KeyEvent.VK_CONTROL:
if(life){
tc.bullets.add(fire());
}
break;
case KeyEvent.VK_RIGHT:
r=false;
break;
case KeyEvent.VK_DOWN:
d=false;
break;
case KeyEvent.VK_LEFT:
l=false;
break;
case KeyEvent.VK_K:
break;
case KeyEvent.VK_UP:
u=false;
break;
case KeyEvent.VK_F1:
if(guancount==0)
{tc.guan();
guancount=1;
}else
{
tc.kai();
guancount=0;
}
break;
case KeyEvent.VK_C:
if(life&&superZid>0){
superfire();
}
if(superZid>0)
{
superZid--;
tc.superZid--;
}
break;
}
setDir();
}
public void stop()
{
x=Dinx; y=Diny;
}
public void superfire(){
Direction[] dirs=Direction.values();
for(int i=0;i<8;i++)
{
Zid b1=new Zid(x,y,dirs[i],tc,this.good);
tc.bullets.add(b1);
}
}
public Zid fire(){
Zid b=new Zid(x,y,gunDir,tc,this.good);
return b;
}
public boolean isGood() {
return good;
}
public boolean isLife() {
return life;
}
public Rectangle getRectangle(){
return new Rectangle(x,y,50,50);
}
public void zhangq(List<Wall> wall){
for(int i=0;i<wall.size();i++){
if(this.getRectangle().intersects(wall.get(i).getRectangle()))
{ if ((int)wall.get(i).shu!=3){
stop();
}
}
}
}
public boolean zhangtk(Tank tk)
{ boolean flag=false;
if(this!=tk)
flag=this.getRectangle().intersects(tk.getRectangle());
return flag;
}
public void setDir(Direction dir) {
this.dir = dir;
}
public void setGunDir(Direction gunDir) {
this.gunDir = gunDir;
}
}
//--------------此类是tank的主类.
- 大小: 105.1 KB
分享到:
相关推荐
C++大作业坦克大战源码C++大作业坦克大战源码C++大作业坦克大战源码C++大作业坦克大战源码C++大作业坦克大战源码。C++大作业坦克大战源码C++大作业坦克大战源码C++大作业坦克大战源码C++大作业坦克大战源码C++大作业...
【Python坦克大战源代码坦克大战.zip】是一个包含Python语言实现的坦克大战小游戏的源代码集合。这个项目旨在提供一个互动的、基于文本的娱乐体验,让玩家能够享受经典的坦克战斗游戏,同时学习和理解Python编程的...
Java语言编写的经典坦克大战游戏.zipJava语言编写的经典坦克大战游戏.zip Java语言编写的经典坦克大战游戏.zipJava语言编写的经典坦克大战游戏.zip Java语言编写的经典坦克大战游戏.zipJava语言编写的经典坦克大战...
期末作业课程设计使用java开发的坦克大战小游戏源码期末作业课程设计使用java开发的坦克大战小游戏源码期末作业课程设计使用java开发的坦克大战小游戏源码期末作业课程设计使用java开发的坦克大战小游戏源码期末作业...
Unity3d 多人在线坦克大战源码 Unity精品小游戏源码 , Unity完整项目源码 是完整项目的压缩包,可直接运行,无需其他操作。 适合二次开发和学习使用,都是经典游戏,需要其他游戏源码包可以看我主页。 直接可以运行 , ...
C++ 控制台版坦克大战游戏简介 内容概要 C++ 控制台版坦克大战游戏是一款基于C++编程语言开发的经典射击游戏。 通过键盘控制坦克移动攻击,躲避敌方坦克的攻击,同时消灭它们以完成关卡任务,支持地图编辑。 适用...
资源名:vb.net 坦克大战 小游戏程序源码 资源类型:程序源代码 源码说明: FC经典坦克大战(VB.NET)源码 源码描述: 一、源码特点 1、采用VB.NET开发的经典坦克大战(FC),仿任天堂的坦克大战。全开源代码,测试请...
《坦克大战素材及源码解析》 坦克大战,这款经典的街机游戏,承载了许多人的童年记忆。对于JAVA初学者来说,通过分析和学习坦克大战的源码,不仅可以深入理解编程基础,还能掌握游戏开发的基本流程和技术。下面我们...
【FC红白机坦克大战素材】是一套专为游戏开发者或复古游戏爱好者准备的资源集合,主要用于重现或创作与红白机(Family Computer)平台上经典游戏"坦克大战"相关的项目。红白机,又被称为FC,是80年代末至90年代初...
【坦克大战图片素材】是一个与经典游戏"90坦克大战"相关的资源集合,包含了游戏中的图像素材和可能的背景音乐。这个压缩包旨在为游戏开发者、设计师或爱好者提供参考资料,帮助他们在自己的项目中重现或创新这款深受...
基于C++语言开发的坦克大战游戏源代码(含exe可执行文件) 基于C++语言开发的坦克大战游戏源代码(含exe可执行文件) 基于C++语言开发的坦克大战游戏源代码(含exe可执行文件) 基于C++语言开发的坦克大战游戏源代码(含exe...
【坦克大战素材包】是一个专为游戏制作设计的资源集合,包含了丰富的素材,适用于开发以“坦克大战”为主题的游戏项目。这个素材包以其全面性和高质量,为开发者提供了制作游戏所需的图形、音效以及可能的逻辑元素,...
《C++实现坦克大战游戏详解》 坦克大战是一款经典的双人对战小游戏,深受程序员和游戏爱好者的喜爱。本文将围绕使用C++编程语言实现的坦克大战游戏进行深入解析,帮助读者理解游戏背后的编程思想和技术。 首先,...
《C语言实现的坦克大战小游戏详解》 C语言是一种基础且强大的编程语言,它以其简洁的语法和高效性被广泛应用于系统开发、嵌入式系统以及各种软件开发中。在这个项目中,我们将深入探讨如何使用C语言来创建一个坦克...
《Python游戏坦克大战》是一款利用Python编程语言开发的复古风格射击游戏,深受编程爱好者和游戏迷们的喜爱。在这个项目中,我们将深入探讨Python在游戏开发中的应用,以及如何利用Python来实现坦克大战的核心功能。...
【坦克大战游戏背景与历史】 坦克大战是一款深受全球玩家喜爱的经典电子游戏,源自于1985年日本的任天堂FC(Family Computer)平台。这款游戏以其简单易上手的操作、富有挑战性的关卡设计和双人合作模式,成为了80...
《Java实现的坦克大战游戏详解》 坦克大战是一款深受玩家喜爱的经典游戏,它结合了策略、射击和竞技的元素,让玩家在紧张刺激的战斗中体验到无尽的乐趣。本项目是用Java语言开发的坦克大战游戏,下面将详细介绍其...
《FC坦克大战素材》是一个专为游戏开发爱好者和学习者准备的资源集合,主要用于了解和研究经典的FC(Family Computer,任天堂家用游戏机)坦克大战游戏。在这个压缩包中,你将找到一系列与FC坦克大战相关的素材,...
《C语言坦克大战源码解析》 C语言作为一种基础且强大的编程语言,广泛应用于系统开发、软件工程以及游戏编程等领域。本项目“C语言坦克大战”是针对C语言初学者和爱好者的一个实战项目,旨在通过实际的游戏开发,...
在坦克大战中,CSS使得游戏画面更加生动,坦克的移动、碰撞效果、背景的动态变化等都离不开CSS的精心设计。 JavaScript作为前端开发的核心语言,承担了游戏的主要逻辑和交互功能。它处理游戏的事件响应,如用户输入...