this.barrelDir = this.dir;
為鶴慶等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及鶴慶網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、鶴慶網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
假設(shè)坦克向右行駛,這時(shí)——
this.barrelDir = this.dir = “R”
它們的值都指向了R。
當(dāng)坦克停止時(shí),校驗(yàn)
if(this.dir != Direction.STOP)
無(wú)法通過(guò),所以不會(huì)重置 barrelDir 的值,也就是說(shuō)它仍然等于R。
這時(shí)你發(fā)射子彈,barrelDir 值不為STOP,所以它就可以往右邊飛出去了。
java 作圖 不一定要繼承JFrame或者Frame,但是所有的組件必須放到頂層容器,Java Swing 有三種頂層容器
JFrame:用來(lái)設(shè)計(jì)類(lèi)似于Windows系統(tǒng)中的窗口形式的應(yīng)用程序。
·JDialog:和JFrame類(lèi)似,只不過(guò)JDialog是用來(lái)設(shè)計(jì)對(duì)話框。
·JApplet:用來(lái)設(shè)計(jì)可以在嵌入在網(wǎng)頁(yè)中的Java小程序。
而且你的代碼 Kosese001既然繼承了JFrame 那么他的構(gòu)造就是個(gè)JFrame ,你下面又new JFrame("坦克大戰(zhàn)");這樣何必繼承,直接在構(gòu)造里面實(shí)現(xiàn)操作就可以把Kosese001中,
你的背景色沒(méi)有顯示出來(lái),是由于JFrame 是頂層容器,它默認(rèn)的布局會(huì)設(shè)置它的背景色,除非你在前面 加上 jfrmMain.setLayout(null);使得布局變成空布局,下面的jfrmMain.getContentPane().setBackground(Color.green); 才會(huì)生效,或者你可以通過(guò)設(shè)置JFrame上組件的背景色來(lái)完成同樣的效果 比如 mypaint = new MyPaint();
mypaint.setBackground(Color.green); 還有啥不懂的 可以問(wèn)我。
坦克大戰(zhàn)源代碼應(yīng)該是個(gè)完整的項(xiàng)目吧。
對(duì)于完整的帶項(xiàng)目配置文件的java源碼,按步驟操作即可:
File - Import - General
選擇Existing Projects into Workspace,選擇要導(dǎo)入的文件,點(diǎn)擊“finish",OK。
需要看你的tank的draw方法里的內(nèi)容代碼和碰撞檢測(cè)代碼。
一般二維碰撞檢測(cè)基本都是以單位格,也就是坦克的大小格作為單位,提前一格判斷兩個(gè)方格是否交叉,如果交叉則在當(dāng)前,也就是交叉后退后一格這個(gè)位置讓它停止當(dāng)前方向的移動(dòng)。
最近學(xué)習(xí)不喜歡在算法上磕太長(zhǎng)時(shí)間了,所以我就開(kāi)始寫(xiě)小游戲了,也算是給自己一個(gè)目標(biāo),寫(xiě)個(gè)游戲里面需要的東西很多,就第一項(xiàng)窗口的建造而言,JFreme類(lèi)的使用中有很多的方法需要記憶,此外對(duì)于類(lèi)與對(duì)象的使用也占了很大的部分。
我是觀看教程然后學(xué)習(xí)制作坦克大戰(zhàn),最開(kāi)始是制作窗口,用到了一個(gè)類(lèi)JFrame下面是一些使用方法。
jf.setTitle("我是標(biāo)題鴨?。?");(制作標(biāo)題)
jf.setSize(20,10)//設(shè)置了一個(gè)長(zhǎng)為20,高為10的框圖。
jf.setBounds(1,2,20,10)//設(shè)置一個(gè)左上角頂點(diǎn)在(1,2),長(zhǎng)為20,寬為10的窗體。
jf.setLocation(1,2)//設(shè)置一個(gè)左上角頂點(diǎn)在(1,2)的窗體。
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);(這樣設(shè)置會(huì)導(dǎo)致你在關(guān)閉窗體的同時(shí),終止程序的運(yùn)行,會(huì)帶來(lái)一定的便利性。)
jf.setVisible(true);(窗體在默認(rèn)情況下是不可見(jiàn)的,只在后臺(tái)運(yùn)行,只有像這樣設(shè)置可見(jiàn)后,在程序運(yùn)行的時(shí)候,窗體才會(huì)出現(xiàn)。)
然后是背景窗口的上色與選項(xiàng)字體的添加, setColor方法:設(shè)置顏色, 該方法用于設(shè)置畫(huà)筆的顏色,例如Color.BLACK:黑色,還需要填充畫(huà)布使用 fillRect (int x,int y,int width,int height)繪制并填充矩形?? 4個(gè)參數(shù),x、y起點(diǎn)坐標(biāo),寬,長(zhǎng)。
不得不說(shuō)有一個(gè)明確的目標(biāo)確實(shí)學(xué)習(xí)的比較快。