根據android sdk中的snake sample來寫一個swing版本。
想寫一個snake程序,因為手上有一個Snake程序了,是Android版本的,最近想學習一下Android編程,所以下載了它的SDK,正好有一個Snake的Sample。可是沒有想到Android程序和Swing程序的差別有這么的大。總的來說,我還是一個新手,在編程方面落后太多了啊。
用一個類繼承JPanel來作圖同時保存一些基本的信息,可是在測試中發現原先的繪圖並沒有被清除,執行起來的結果就是
沒有能正常的重新繪圖,原來以為是數據區沒有清空,因為是用一個二維int的數據來存儲數據,為0則相應為空,1則繪紅色點,2繪黃色點,3繪綠色點。可是看了調試了一下程序,發現並不是這樣。因為在這方面也是新手,所以到網上找了一下,並沒有實際的效果。有一則帖子說在重寫JPanel paint時應該先調用父類的方法。看了一下我的程序,果然沒有寫super.paint(g); 寫上就OK了。
正常運行結果。
================================================================
public void paint(Graphics g) {//應該先調用父類的方法super.paint(g);for (int x = 0; x < mXTileCount; x += 1) {for (int y = 0; y < mYTileCount; y += 1) {if (mTileGrid[x][y] > 0) {g.drawImage(mTileArray[mTileGrid[x][y]], mXOffset + x* mTileSize, mYOffset + y * mTileSize, mTileSize,mTileSize, this);}}}}
不太清楚版權的問題,在程序中使用了google的圖片和部分的原代碼,在此表示感謝。