this.barrelDir = this.dir;
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)思茅,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
假設(shè)坦克向右行駛,這時——
this.barrelDir = this.dir = “R”
它們的值都指向了R。
當(dāng)坦克停止時,校驗
if(this.dir != Direction.STOP)
無法通過,所以不會重置 barrelDir 的值,也就是說它仍然等于R。
這時你發(fā)射子彈,barrelDir 值不為STOP,所以它就可以往右邊飛出去了。
你提供的代碼不完全,無法深入分析,但是照你說的有顯示“進入畫圖”,那么,很可能if(g.drawImage(image1, b.x, b.y, 30, 30, this))這個返回值為false,我剛查了下API,它的返回值說明Returns:
false if the image pixels are still changing; true otherwise.另外這個方法有這么樣的說明This method returns immediately in all cases, even if the entire image has not yet been scaled, dithered, and converted for the current output device. If the current output representation is not yet complete, then drawImage returns false. 也就是說,現(xiàn)行輸出未完成,圖像像素仍在變化的時候,你就調(diào)用了這方法,那么會返回false。你檢查一下代碼,在你調(diào)用這段代碼前,你的初始化工作做好了沒。另外,最好就是像1樓說的,把圖畫到一個bufferImage里,再把bufferImage畫到屏幕上
"創(chuàng)建爆炸對象"和“畫出爆炸對象”是兩碼事。創(chuàng)建了之后并未“畫出”,也就是未顯示。只有在paint函數(shù)里調(diào)用drawImage函數(shù)時才顯示,而此時傳了新的坐標參數(shù),就是當(dāng)前擊中的坦克的坐標。我也剛學(xué),希望能幫助到你。