畢業(yè)論文~基于安卓系統(tǒng)的拼圖游戲設(shè)計(jì)-word文檔_第1頁(yè)
畢業(yè)論文~基于安卓系統(tǒng)的拼圖游戲設(shè)計(jì)-word文檔_第2頁(yè)
畢業(yè)論文~基于安卓系統(tǒng)的拼圖游戲設(shè)計(jì)-word文檔_第3頁(yè)
畢業(yè)論文~基于安卓系統(tǒng)的拼圖游戲設(shè)計(jì)-word文檔_第4頁(yè)
畢業(yè)論文~基于安卓系統(tǒng)的拼圖游戲設(shè)計(jì)-word文檔_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1附錄拼圖游戲主要代碼:1)選擇界面MainActivity代碼packagecom.angelnet.jigsaw.view;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.Dialog;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.DisplayMetrics;importandroid.view.KeyEvent;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.Button;importandroid.widget.GridView;importandroid.widget.SimpleAdapter;importandroid.widget.Spinner;importandroid.widget.AdapterView.OnItemClickListener;importandroid.widget.AdapterView.OnItemSelectedListener;importcom.angelnet.jigsaw.model.service.IMain;importcom.angelnet.jigsaw.model.service.MainImpl;publicclassMainActivityextendsActivity{ privateintscreenWidth=0;//屏幕的寬度privateintscreenHeight=0;//屏幕的高度privateSpinnerlevelSp;//等級(jí) privateGridViewpictureGridView;//圖片 privateButtonconfBtn; privatestaticfinalint[]pictureArray={R.drawable.pingtu_1_1,R.drawable.pingtu_2_2,R.drawable.pingtu_3_3,R.drawable.pingtu_4_4,R.drawable.pingtu_5_5,R.drawable.pingtu_6_6, R.drawable.pingtu_7_7,R.drawable.pingtu_8_8,R.drawable.pingtu_9_9}; privatestaticfinalintAUTHOR_INFO_ID=Menu.FIRST;//作者簡(jiǎn)介 privatestaticfinalintABOUT_ID=Menu.FIRST+1;//關(guān)于 privatestaticfinalintEXIT_ID=Menu.FIRST+2;//退出 privateIMainiMain; privateintpictureIndex=0;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);initControls();showGridView();}privatevoidinitControls(){ iMain=newMainImpl(); levelSp=(Spinner)findViewById(R.id.main_level_spinner); pictureGridView=(GridView)findViewById(R.id.main_picture_gridView); pictureGridView.setOnItemClickListener(newItemClickListener());//監(jiān)聽 pictureGridView.setOnItemSelectedListener(newItemSelectedListener());//選擇監(jiān)聽 levelSp.setAdapter(iMain.getLevelAdapter(this)); confBtn=(Button)findViewById(R.id.main_confirm_btn); confBtn.setOnClickListener(btnOnClickListener);}@Override publicbooleanonCreateOptionsMenu(Menumenu){ //TODOAuto-generatedmethodstub menu.add(0,AUTHOR_INFO_ID,0,R.string.author).setShortcut('1','i').setIcon(R.drawable.author_info); menu.add(0,ABOUT_ID,0,R.string.about).setShortcut('2','a').setIcon(R.drawable.about); menu.add(0,EXIT_ID,0,R.string.exit).setShortcut('4','e').setIcon(R.drawable.exit); returnsuper.onCreateOptionsMenu(menu); } @Override publicbooleanonOptionsItemSelected(MenuItemitem){ //TODOAuto-generatedmethodstub switch(item.getItemId()){ caseAUTHOR_INFO_ID:{ onCreateDialog(AUTHOR_INFO_DIALOG).show(); returntrue; } caseABOUT_ID:{ onCreateDialog(ABOUT_DIALOG).show(); returntrue; } caseEXIT_ID:{ exitApp(); returntrue; } } returnsuper.onContextItemSelected(item); } @Override publicbooleanonKeyDown(intkeyCode,KeyEventevent){ //TODOAuto-generatedmethodstub if(keyCode==KeyEvent.KEYCODE_BACK){ exitApp(); returntrue; } returnsuper.onKeyDown(keyCode,event); } privatestaticfinalintABOUT_DIALOG=1; privatestaticfinalintAUTHOR_INFO_DIALOG=2; @Override protectedDialogonCreateDialog(intid){ //TODOAuto-generatedmethodstub switch(id){ caseABOUT_DIALOG:{ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setIcon(R.drawable.alert_dialog_icon); builder.setTitle(R.string.about); builder.setMessage(R.string.aboutInfo); builder.setPositiveButton(R.string.confirm, newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhichButton){ } }); returnbuilder.create(); } caseAUTHOR_INFO_DIALOG:{ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setIcon(R.drawable.alert_dialog_icon); builder.setTitle(R.string.author); builder.setMessage(R.string.authorInfo); builder.setPositiveButton(R.string.confirm, newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhichButton){ } }); returnbuilder.create(); } } returnsuper.onCreateDialog(id); } /** *顯示就九空格 */ privatevoidshowGridView(){ //獲取屏幕大小 DisplayMetricsdm=newDisplayMetrics();dm=this.getApplicationContext().getResources().getDisplayMetrics();screenWidth=dm.widthPixels;screenHeight=dm.heightPixels;//兩列之間的邊距為10pictureGridView.setColumnWidth((screenWidth-10*4)/3); SimpleAdaptersaImageItems=newSimpleAdapter(this,getAllItemsForListView(), R.layout.grid_item, newString[]{"ImageView"}, newint[]{R.id.gridItem_imgView}); pictureGridView.setAdapter(saImageItems); pictureGridView.setSelector(R.drawable.menuitemshape); } publicList<Map<String,Object>>getAllItemsForListView(){ //TODOAuto-generatedmethodstub //生成動(dòng)態(tài)數(shù)組,并且傳入數(shù)據(jù) List<Map<String,Object>>imageItem=newArrayList<Map<String,Object>>(); for(inti=0;i<pictureArray.length;i++){ HashMap<String,Object>tempMap=newHashMap<String,Object>();// Bitmapbitamp=BitmapFactory.decodeResource(this.getResources(),pictureArray[i]); tempMap.put("ImageView",pictureArray[i]);// imageItem.add(tempMap); } returnimageItem; }/** *當(dāng)AdapterView被單擊(觸摸屏或者鍵盤),則返回的Item單擊事件 * */ privateclassItemClickListenerimplementsOnItemClickListener{ /** *@paramadapterView *TheAdapterViewwheretheclickhappened *@paramarg1 *TheviewwithintheAdapterViewthatwasclicked *@paramposition *Thepositionoftheviewintheadapter *@paramrowid *Therowidoftheitemthatwasclicked */ publicvoidonItemClick(AdapterView<?>adapterView, Viewview,intposition, longrowid){ //在本例中position=rowid pictureIndex=position; } } /** *選擇監(jiān)聽 */ privateclassItemSelectedListenerimplementsOnItemSelectedListener{ @Override publicvoidonItemSelected(AdapterView<?>adapterView,Viewview,intposition, longrowid){ //TODOAuto-generatedmethodstub// HashMap<String,Object>item=(HashMap<String,Object>)adapterView.getItemAtPosition(position); pictureIndex=position; } @Override publicvoidonNothingSelected(AdapterView<?>arg0){ //TODOAuto-generatedmethodstub } } /** *退出應(yīng)用程序 */ privatevoidexitApp(){ AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.question_dialog_icon); builder.setTitle("退出"); builder.setMessage("您確定要退出益智拼圖嗎?"); builder.setPositiveButton(R.string.confirm, newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhichButton){ MainActivity.this.finish(); } }); builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ } }); builder.create().show(); } privateView.OnClickListenerbtnOnClickListener=newView.OnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub switch(v.getId()){ caseR.id.main_confirm_btn: Bundleextras=newBundle(); extras.putInt("level",levelSp.getSelectedItemPosition()); extras.putInt("pictureIndex",pictureIndex); Intentintent=newIntent(MainActivity.this,JigsawActivity.class); intent.putExtras(extras); startActivityForResult(intent,1); break; } } };}2)游戲界面JigsawActivity代碼:packagecom.angelnet.jigsaw.view;importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.view.View;importandroid.widget.Button;importandroid.widget.ImageView;importandroid.widget.TextView;importcom.angelnet.jigsaw.model.widgets.JigsawView;publicclassJigsawActivityextendsActivity{ privateImageViewpreviewImgView; privateJigsawViewmJigsawView; privateTextViewlevelTV; privateTextViewstepNumTV; privateTextViewtimeTV; privateBitmapmBitmap; privateButtonstartBtn; privatebooleanisGaming=false; privatebooleanisFirstThread=false; privatebooleanisPlay=false; /** *第一次運(yùn)行該Activity時(shí),就要運(yùn)行onCreate方法 **/ @Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.jigsaw); initControls(); } privatevoidinitControls(){ Bundleextras=this.getIntent().getExtras(); intlevel=extras.getInt("level"); intpictureIndex=extras.getInt("pictureIndex"); previewImgView=(ImageView)findViewById(R.id.jigsaw_preview_imgview); mJigsawView=(JigsawView)findViewById(R.id.main_JigsawView); if(0==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_1); }elseif(1==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_2); }elseif(2==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_3); }elseif(3==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_4); }elseif(4==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_5); }elseif(5==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_6); }elseif(6==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_7); }elseif(7==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_8); }elseif(8==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_9); } levelTV=(TextView)findViewById(R.id.jigsaw_level_tv); if(level==0){ mJigsawView.setRowCol(3,3); levelTV.setText("3X3"); }elseif(level==1){ mJigsawView.setRowCol(3,4); levelTV.setText("3X4"); }elseif(level==2){ mJigsawView.setRowCol(4,3); levelTV.setText("4X3"); }elseif(level==3){ mJigsawView.setRowCol(4,4); levelTV.setText("4X4"); } previewImgView.setImageBitmap(mBitmap); mJigsawView.setBitamp(mBitmap); stepNumTV=(TextView)findViewById(R.id.jigsaw_stepNum_tv); stepNumTV.setText(String.valueOf(mJigsawView.getStep())); timeTV=(TextView)findViewById(R.id.jigsaw_time_tv); timeTV.setText(timeParser(second)); startBtn=(Button)findViewById(R.id.jigsaw_start_btn); startBtn.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub //開始游戲 if(!isPlay){ isPlay=true; }else{ mJigsawView.setBitamp(mBitmap); } isGaming=true; second=0; mJigsawView.setStep(0); mJigsawView.setGameing(isGaming); startBtn.setText("REPLAY"); if(!isFirstThread){ isFirstThread=true; newThread(newGameRunable()).start(); } Messagemsg=newMessage(); msg.what=INIT_MESSAGE; mHandler.sendMessage(msg); } };} /** * *@paramtotalSecond *@return */ privateStringtimeParser(inttotalSecond){ StringBuffersb=newStringBuffer(); intminute=totalSecond/60; sb.append(minute); sb.append(":"); intsecond=totalSecond%60; if(second>=10) sb.append(second); else sb.append("0"+second); returnsb.toString(); } privateintsecond=0; classGameRunableimplementsRunnable{ publicvoidrun(){ //TODOAuto-generatedmethodstub while(isGaming){ try{ second++; Messagemsg=newMessage(); msg.what=TIME_MESSAGE; mHandler.sendMessage(msg);

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論