欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java聯(lián)機坦克代碼的簡單介紹

java坦克大戰(zhàn),求一份敵方坦克與我方不重疊的代碼。

那你還要判斷敵方與敵方的不重疊么?太麻煩了吧。。。

創(chuàng)新互聯(lián)主營望城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),望城h5微信小程序開發(fā)搭建,望城網(wǎng)站營銷推廣歡迎望城等地區(qū)企業(yè)咨詢

我提一點建議,希望能幫到你

建一個Tank基類,描述坦克的基本屬性,實現(xiàn)防止碰撞的方法,包含移動的抽象方法

建EnemyTank類繼承Tank,重寫移動的方法,由線程控制

建MyTank類繼承Tank,重寫移動的方法,由鍵盤控制

這樣防止碰撞的問題都在Tank類中進行處理,根本不會有你說的各種情況

關(guān)于java坦克大戰(zhàn)里的一個小問題,這是其中的一部分代碼

this.barrelDir = this.dir;

假設(shè)坦克向右行駛,這時——

this.barrelDir = this.dir = “R”

它們的值都指向了R。

當(dāng)坦克停止時,校驗

if(this.dir != Direction.STOP)

無法通過,所以不會重置 barrelDir 的值,也就是說它仍然等于R。

這時你發(fā)射子彈,barrelDir 值不為STOP,所以它就可以往右邊飛出去了。

java坦克大戰(zhàn)源代碼 怎么導(dǎo)入

坦克大戰(zhàn)源代碼應(yīng)該是個完整的項目吧。

對于完整的帶項目配置文件的java源碼,按步驟操作即可:

File - Import - General

選擇Existing Projects into Workspace,選擇要導(dǎo)入的文件,點擊“finish",OK。

JAVA 坦克大戰(zhàn)

import?java.awt.*;

import?javax.swing.*;

public?class?Tank?extends?JFrame?{

mypane?mp=null;

Obj[]?objs=new?Obj[0];

public?Tank()?{

setTitle("坦克大戰(zhàn)");

setSize(800,600);

pro();

add(new?mypane(objs));

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocationRelativeTo(null);

//在這里添加鍵盤事件、鼠標(biāo)事件、讓坦克移動,修改objs數(shù)組對象讓他們移動

setVisible(true);

}

private?void?pro(){

Obj[]?tmp=new?Obj[objs.length+1];

System.arraycopy(objs,0,tmp,0,objs.length);

tmp[tmp.length-1]=new?Obj(1,1,0,1);

objs=tmp;

int?num=(int)(Math.random()*5)+1;

for(int?i=0;inum;i++){

int?x=(int)(Math.random()*getWidth())+1;

int?y=(int)(Math.random()*getHeight())+1;

int?dir=(int)(Math.random()*4);

Obj[]?dst=new?Obj[objs.length+1];

System.arraycopy(objs,0,dst,0,objs.length);

dst[dst.length-1]=new?Obj(x,y,1,dir);

objs=dst;

}

}

public?static?void?main(String[]?args)?{

new?Tank();

}

}

class?Obj{

int?x,y;//坦克坐標(biāo)

int?type;

int?dir;

public?Obj(int?x,int?y,int?type,int?dir){

this.x=x;

this.y=y;

this.type=type;

this.dir=dir;

}

}

class?mypane?extends?JPanel{

Obj[]?objs;

public?mypane(Obj[]?objs){

this.objs=objs;

}

public?void?paint(Graphics?g)?{

super.paint(g);

for(int?i=0;iobjs.length;i++){

Obj?obj=objs[i];

drawtank(obj.x,obj.y,?g,?obj.type,?obj.dir);

}

g.dispose();

}

public?void?drawtank(int?x,int?y,Graphics?g,?int?type,int?direct)?{

/*type?為坦克類型,敵方,我方*/

switch(type)?{

case?0://我方坦克,設(shè)置為紅色

g.setColor(Color.red);

break;

case?1://敵方坦克,設(shè)置為藍色

g.setColor(Color.blue);

break;

}

switch(direct)?{

case?0://坦克方向朝上

g.drawRect(0+x,?0+y,?5,?30);

g.drawRect(5+x,?5+y,?10,20);

g.drawRect(15+x,0+y,?5,30);

g.drawLine(10+x,?15+y,?10+10+x,?15+y);

break;

case?1://坦克方向朝右

g.drawRect(0+x,?0+y,?30,?5);

g.drawRect(5+x,?5+y,?20,?10);

g.drawRect(0+x,?15+y,?30,?5);

g.drawLine(15+x,?10+y,?30+15+x,?10+10+y);

break;

case?2://方向向下

g.drawRect(0+x,?0+y,?5,?30);

g.drawRect(5+x,?5+y,?10,20);

g.drawRect(15+x,0+y,?5,30);

g.drawLine(10+x,?15+y,?10+10+x,?30+15+y);

break;

case?3://方向向左

g.drawRect(0+x,?0+y,?30,?5);

g.drawRect(5+x,?5+y,?20,?10);

g.drawRect(0+x,?15+y,?30,?5);

g.drawLine(15+x,?10+y,?15+x,?10+10+y);

break;

}

}

}

分享題目:java聯(lián)機坦克代碼的簡單介紹
本文地址:http://chinadenli.net/article31/dsioesd.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)站內(nèi)鏈手機網(wǎng)站建設(shè)網(wǎng)站收錄定制開發(fā)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站