freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于j2me平臺(tái)的手機(jī)游戲貪吃蛇程序的設(shè)計(jì)與實(shí)現(xiàn)-在線瀏覽

2024-07-30 12:33本頁(yè)面
  

【正文】 含運(yùn)行應(yīng)用程序需要的類和所有的資源文件。應(yīng)用程序描敘(JADs)在移動(dòng)電話網(wǎng)絡(luò)上傳送大量的數(shù)據(jù),需要有一個(gè)描敘文件讓用戶在沒有下載整個(gè)包之前來(lái)查看一下MIDlet震動(dòng)的細(xì)節(jié)。屏幕的長(zhǎng)度的行向?yàn)?1單位,縱向?yàn)?8單位。該游戲的最大特色是屏幕自適應(yīng),無(wú)論各種手機(jī),PDA的屏幕大小如何,該游戲總是能獲得最佳的顯示效果。用戶按下[啟動(dòng)]按鈕后,就可以開始玩游戲。任何時(shí)候按[EXIT]按鈕退出,游戲MIDlet都會(huì)終止。 程序流程圖 游戲地圖是蛇的活動(dòng)范圍和食物隨機(jī)散落的范圍,游戲的容器為行向?yàn)?1單位,縱向?yàn)?8單位,如下代碼:private final int iX = 10。 private final int iY = 10。private final int SWIDTH = 16。 private final int iCells = 240。//地圖的列數(shù)//地圖的行數(shù) private final int iBoxW = SWIDTH*iCells。//地圖的寬采用二維繪圖工具:二維繪圖工具drawLine采用4個(gè)參數(shù)——直線起點(diǎn)的x、y坐標(biāo)值和直線終點(diǎn)x、y的坐標(biāo)值,例如:(50,0,100,0);這行代碼會(huì)從位置(50,0)到(100,0)繪制一條直線??梢岳L制透明的或者填充的矩形,甚至可以繪制圓角的矩形。貪吃蛇和食物的代碼設(shè)計(jì)屏幕的長(zhǎng)度為行向?yàn)?20單位,縱向?yàn)?40單位;在這個(gè)范圍內(nèi),玩家操作方向鍵控制蛇的運(yùn)動(dòng)方向。貪吃蛇最初由3個(gè)小正方形組成,小正方形是蛇的身體和游戲容器的組成部分。實(shí)現(xiàn)代碼如下:import .*。import .*。 public static int Width, Height。 static final int SNAKES_NUM = 50。 private int CanvasWidth = getWidth()。 public static long updates = 0。 public int snake_n = 3。 private int maxRand = 1000。 private int map_bg_y 。 private int map_bg_h = 16。 public boolean addsnake_n= false。 public int sleeptime。 public SplashScreen splashscreen。 private int soundmax=1。 public boolean picOver = false。 private GameOverScreen gameover。 public MenuList menulist。 private Display display。 private Image[] imgGameBg = new Image[4]。 private Gif[] cat = new Gif[2]。 private int Snake_N,Time_N。 setFullScreenMode(true)。 =Time_N。 Width=getWidth()。 load()。 } private void load() { rand = new Random( () )。 snakes = new Snakes(img2,(),())。 (CanvasWidth,CanvasHeight)。 i。//gold:名字,5:5張圖,19和15就是圖像的高寬的像素 }/**裝載食物圖貓**/ for( int i=0。 i++ ) { cat[i]= new Gif(cat, 6, 21, 16 )。 Image temp_bg2 = (/)。//取0到1000的隨機(jī)數(shù),因?yàn)閙ax Graphics bg。 i。//一幅背景是16*16像素的 bg = imgGameBg[i].getGraphics()。//被繪制的圖像,X軸Y軸,基點(diǎn) else (temp_bg2, i*16, 0, |)。//釋放實(shí)例化對(duì)象可以使用bg=nul。//釋放實(shí)例化對(duì)象可以使用temp=nul。//釋放實(shí)例化對(duì)象可以使用temp=nul。//釋放實(shí)例化對(duì)象語(yǔ)句 } catch(Exception e) { ()。 //()。 //().start()。 thread =new Thread(this)。 } /**當(dāng)用戶按下?lián)芴?hào)鍵時(shí)游戲暫停下來(lái)**/ public void keyPressed(int keyCode) { if (keyCode == FIRE) { tempcontinue+=1。 ().stop()。 // ()。 if ((keyStates amp。 else if ((keyStates amp。 else if ((keyStates amp。 else if ((keyStates amp。 /**按鍵代碼暫停游戲**/ else if ((keyStates amp。 } public void stop(){ isPlay=false。 //獲取Graphics對(duì)象 while(isPlay) { long start =()。 //獲得鍵盤輸入 paint(g)。 long end=()。 if(sleeptime50) sleeptime=50。 //start()。} catch(InterruptedException ie){} } } }/**判斷蛇是否與自己重合**/ public void isCollide() { for (int i = 4。i++) { if([0][0]==[i][0]amp。[0][1]==[i][1]) { rePlay(level)。 ().stop()。 (,over)。 (0, 0, Width, Height)。 imap_bg_x。 jmap_bg_y。 } } /**繪制食物gold***/ for( int i=0。 i++ )//調(diào)用類GIF里的PAINT()來(lái)繪制gold圖形 { gold[i].paint(g)。 i。 } /**蛇與四墻碰撞**/ if( ()0 || ()Width || ()0 ||()Height )//蛇頭碰到邊就重來(lái) { rePlay(level)。 ().stop()。 (,over)。 i。//蛇的身體自動(dòng)加1 eatfood+=1。//記錄吃食物的總數(shù)/**如果蛇的長(zhǎng)度達(dá)到規(guī)定的長(zhǎng)度則換下一關(guān)**/ if(win) { /****讓聲音停止****/ ().stop()。 ()。//碰著食物則重新定位食物的位置 } } /**如果蛇與食物貓發(fā)生碰撞 ***/ for( int i=0。 i++ ) { if( isIntersect((), (), 8, 8, cat[i].pos_x, cat[i].pos_y, cat[i].w, cat[i].h )) { =3。//記錄當(dāng)前屏幕上吃食物的總數(shù) =3。 if(eatfood=0) eatfood=0。 cat[i].setPos()。//黃色 ( font )。//字體,X坐標(biāo),Y坐標(biāo),方位 /**繪制字體靠右***/ ( 0xf0FF00 )。 ( eat:+eatfood, 3, 2, 0 )。 ( font )。//字體,X坐標(biāo),Y坐標(biāo),方位 /**繪制字體靠下***/ ( 0xf0FF00 )。 ( eat:+eatfood, 2, 3, 0 )。 ( font )。//字體,X坐標(biāo),Y坐標(biāo),方位 (g)。 //將緩沖屏幕上的內(nèi)容繪制到手機(jī)屏幕上 }/**碰撞檢測(cè)函數(shù)***/ boolean isIntersect(int x1,int y1, int w1, int h1, int x2, int y2, int w2, int h2)//判斷蛇的頭是否和食物重合在做的動(dòng)作 { if( (x2x1) (w1+w2)/2 amp。 (y2y1) (h1+h2)/2 )//(x2x1):返回一個(gè)數(shù)字的絕對(duì)值 { return true。 }/***增加蛇的長(zhǎng)度***/ public void addSnake(boolean addsnake_n){ addsnake_n=true。//把寬高分成16*16的小塊背景(X軸要多少塊) map_bg_y = Width/16。//撲滿整個(gè)背景要多少?gòu)垐D片的總數(shù) for( int i=0。 i++ ) //繪制背景,從Y軸開始繪制 { for( int j=0。 j++ ) { int r = (maxRand)。 09隨即數(shù) 可以用 ()*9。 k。向右移n位相當(dāng)于除以2的n次方 // b1=ai。 } } } } ()。這個(gè)游戲也不例外,啟動(dòng)MIDlet后,就立即生成一個(gè)重繪線程,該線程每隔50ms繪制一次屏幕。游戲畫布是一個(gè)CommandListener,可以接受用戶鍵盤命令,控制蛇的左移,右移,下移,上移。import .*。public class Snakes extends Sprite{ public int[][] snakes。 private Random random。 public SnakeGameSprite snakegamesprite。 public static final int BULLET_TYPE_LEFT=0。 public static final int BULLET_TYPE_TOP=2。 private int CanvasWidth,CanvasHeight。 /**向上*/ private final int DIRECTION_UP = 0。 /**向左*/ private final int DIRECTION_LEFT = 2。 private int aspect_x= 0。 public Snakes(Image image,int frameWidth,int frameHeight) {
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1