




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、移動(dòng)設(shè)備軟件應(yīng)用與開發(fā)丸作業(yè)掖告姓名:學(xué)號(hào):班級(jí):院系:日期:任課教師:一、程序的運(yùn)行環(huán)境、安裝步驟1、運(yùn)行環(huán)境游戲運(yùn)行環(huán)境:Android1.5以上版本2、程序的組成部份:2.1、JDK 安裝1. 我的電腦-> 屬性-> 高級(jí)-> 環(huán)境變量-> 系統(tǒng)變量中添加以下環(huán)境變量:2. JAVA_HOME 值為:D:Program FilesJavajdki.6.o_i8 (你安裝 JDK 的目錄)3. CLASSPATH 值為:.;JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA _HOME%bin;牛 Patli:在開始追
2、加 %JAVA_HOME%bin;5- NOTE:前面四步設(shè)置環(huán)境變量對(duì)搭建Android開發(fā)環(huán)境不是必須的,可以 跳過。安裝完成Z后,可以在檢查JDK是否安裝成功。打開cmd窗口,輸入java -version 查看JDK的版本信息。出現(xiàn)類似下面的畫面表示安裝成功了:版權(quán)所有2009 Microsoft Corporation保留所有權(quán)利。G:MJsersSAdministratorciva -versionjaua uevsion ,F1.7.0_45,pJaua<TM> SE Runtime Enuir-onnent <build 1.70_45bl8Java HotS
3、pot<TM> Client UM <build. 24.45-b08, nixed node, sharing)G: MJsersAdninist rator*>2.2、Eclipse 安裝2.3x Android SDK 安裝在 Android Developers 下載 android-sdk_r05-windows.zip,下載完成后解圧到 任意路徑。運(yùn)行SDK Setup.exe,點(diǎn)擊Available Packages如果沒有出現(xiàn)可安裝的包,請(qǐng) 點(diǎn)擊 Settings,選中 Misc 中的"Force https:/.”這項(xiàng),再點(diǎn)擊 Availab
4、le Packages 。選擇希望安裝的SDK及其文檔或者其它包,點(diǎn)擊Installation Selected. Accept All、Install Accepted,開始下載安裝所選包在用戶變量中新建PATH值為:Android SDK中的tools絕對(duì)路徑(本機(jī)為 D:AndroidDevelopandroid-sdk-windows'tools)。image圖2、設(shè)置Android SDK的環(huán)境變量“確定”后,重新啟動(dòng)計(jì)算機(jī)。重啟計(jì)算機(jī)以后,進(jìn)入cmd命令窗口,檢查SDK 是不是安裝成功。運(yùn)行android -h如果有類似以下的輸出,表明安裝成功:Nic>«o
5、2ort Uindowa【版本 G.1.76001版權(quán)所有2089 Microsoft Corporation«保留所有權(quán)刑°C: xJUsersqq>android -hJ0*30:Android (<<lob«l opt iono Act ion Coot ion opt iona rHobal opt ions: -u e>«bose inter).Uerhose node: e>*»*ors, uarninus and inforncttional nessages a be-h help -s -sile
6、ntThio ho 1p Silent node; on!</ errors arc printed out listHotevd-listtarget-createavd一noueavd-deleteaudupdatoavdRJalid actions area new SDK create project update projectconposed of a verb and an optional direct object: Lists existing targets ordcuicec. Lioto oxxstxn rtndroid UirtuaL Devicoo. Lis
7、ts existing targets:Creates a new Android UirtuAl Device.: Moves or renanes an Android Uirtual Device.:Deletes an Android Uirtual Device. Updfttoo an Android Uivtul Dovicc to natch the fo Ldoro of:Creates a new Android Project:Updates an Android Project must hnuc an An(lioidMAnife£t圖旅 驗(yàn)證Android
8、 SDK是否安裝成功2.4> ADT 安裝打開 Eclipse IDE.進(jìn)入菜單中的"Help”-> "Install New Softwaie”點(diǎn)擊Add.按鈕,彈出對(duì)話框要求輸入Name和Location: Name自己隨便取,Location 輸入 dl-ssl.google./android/eclipse如下圖所示:吉 Add SiteName:ADTLocal.Location: http:/dl-Archive.確定返回后,在work with后的下拉列表中選擇我們剛才添加的ADT,我們會(huì) 看到下面出有Developer Tools,展開它會(huì)有Ai
9、idioid DDMS和Android Development Tool,勾選他們。如下圖所示:3 InstallAvailable SoftwareCheck the items that you wish to install.Work with: adt http:/dl-$sl.googlexom/android/eclipse Add.Find more software by working with the 'Available Software Sites' preferences.type filter textNameVersion y 0(X1 Devel
10、oper Toolsiyj <£>AndroidDDMS0.9.6.v201002051504-24346J 如AndroidDevelopmentTool0.9.6.v201002051504-24346然后就是按提示一步一步next。完成之后:選擇 Window > Preferences.在左邊的面板選擇Android,然后在右側(cè)點(diǎn)擊Browse.并選中SDK路徑, 本機(jī)為:D:AiidroidDevelopandroid-sdk-windows 點(diǎn)擊 Apply、OK。配置完成。25創(chuàng)建AVD為使Android應(yīng)用程序可以在模擬器上運(yùn)行,必須創(chuàng)建AVD。在
11、Eclipse 中。選擇 Windows > Aiidioid SDK and AVD Manager2、點(diǎn)擊左側(cè)面板的Virtual Devices,再右側(cè)點(diǎn)擊New3、填入Name,選擇Target的APL SD Card大小任意,Skin隨便選,Hardware 目前保持默認(rèn)值4、點(diǎn)擊Create AVD即可完成創(chuàng)建AVD注意:如果你點(diǎn)擊左側(cè)面板的Virtual Devices,再右側(cè)點(diǎn)擊New ,而target I、 拉列表沒有可選項(xiàng)時(shí),這時(shí)候你:點(diǎn)擊左側(cè)面板的Available Packages,在右側(cè)勾選 https:/dl-ssl.google./android/repos
12、itoiy/repositoty.xml, 如下圖所示:q Android SDK and AVD ManagerVirtual Devices In stalled PackagesSites, Packages and ArchivesI Available Packages> 0 /android/re-pository/repository.xml然后點(diǎn)擊Install Selected按鈕,接下來就是按提示做就行了要做這兩步,原因是在1.3、Android SDK安裝中沒有安裝一些必要的可用包 (Available Packag
13、es)。25、創(chuàng)建Aiidioid T程三、程序開發(fā)平臺(tái)(1) 代碼行數(shù):1000(2) 開發(fā)環(huán)境:An droid Developer Tools Build: V22.6.2-1085508apache-ant-1.9.3 Java - MFteit/irc/hdiv/mftest/MFtestRenderer.java ADTFile Edit Refactor Source Navigate Search Project Run Window Hdpi Package Explorer 就 j4 酉 MFtestAndroid 1.5I,fw android.jor D:'.”
14、cbc;dodt nund c ./indcv/5-x86 20' *0321$d k'.plotform$ond roic D 3 src> 2? gE (Generated iles)以 Android Dependcndes咅 assets> 吐 bin0 res,AndroidManifestxml0 proguard.cfg自 perties&倪朗hlmI IT7374巧76777S-TODrffCube22(gl);Dror«Cube23(gl);Drawcube24(gl);Dr»wCube25(gl)
15、;glglTranslatef/艮26 I 四、程序功能說明:/Ws令川(32洛IMs 令"15單機(jī)屏幕按住不放可以拖動(dòng)魔方轉(zhuǎn)動(dòng),魔方上下左右空白處可以轉(zhuǎn)動(dòng)魔方相對(duì)那 一面。五、應(yīng)用核心源碼class MFtestSurfaceView extends GLSurfaceView private MFtestRenderer niRcnderer;private float mPreviousX;private float niPreviousY;上一次的點(diǎn)private float mDownPreviousX;private float mDownPreviousY7/±
16、;一次的 Down 點(diǎn)/ private int oldDownX;/ private intprivate float theta;private float fai;/球坐標(biāo)public MFtestSurfaceView(Context context) super(context);theta=(float)3.14159/4;fai=(float)3.14159/4;/ Set the Renderer for drawing on the GLSurfaceView niRenderer = new MFtestRendererO;setRenderer(mRenderer); s
17、etRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);)Overridepublic boolean onTouchEvent(MotionEvent e) / MotionEvent reports input details from the touch screen/ and other input controls In this case, you are only/ interested in events where the touch position changed.float x = e.getXO;float y = e.ge
18、tY();switch (e.getActionO) case MotionEvent.ACTIONMOVE:/如果是 移動(dòng)的話float dx = x - mPreviousX;float dy = y- mPreviousY7/x,y 的變換值(不是 0,就是 1)float te=theta;theta=theta+dy/l 00;/角度是弧度值if (!(theta> 0&&theta<34159)theta=te;法線始終向上fai=fai+d x/100;/x=rsm0cos<pmRenderer.eyez=(float)(3*Math.sin(t
19、heta)*Math.cos(fai); /5=rsin0sin(pniRenderer.eyex=(float)(3*Math.sin(theta)*Math.sin(fai);/z=rcos 0利用球坐標(biāo)使觀察點(diǎn)始終維持在半徑為3的球上mRenderer.eyey=(float)(3*Math.cos(theta);requestRenderO;/System.out.println(x+H n+y);break;case MotionEvent.ACTIONDOWN:mDownPreviousX=x;mDownPreviousY=y; break;case MotionEvent.ACT
20、IONUP:if(x-mDownPreviousX)>-5)&&(x-mDownPreviousX)<5)&&(y-mDownPreviousY)>-5 )&&(y-mDownPreviousY)<5)/(x-mDownPreviousX)>-3)ll(x-mDownPreviousX)>-3)&&( y-mDownPreviousY)>-3)ll(y-mDownPreviousY)>-3)/System.out.println(x-mDownPreviousX);if( x <
21、; (mRendere 匚 width% 1 Math.sqrt( 18)/6)/2)左/System.out.println(x+M 左 ,r+y); mRenderer.action = 1;DrawAnimation();elseif(x>mRenderer.width-(mRenderer.width*( 1 -Math.sqrt(l 8 )/6)/2)右/System.out.println(x+M 右 v+y); mRendere r. action = 2;DrawAnimationO;)else if(y <mRenderer.height/2.0 - (1.5*m
22、Renderer.width)/6)上 /System.out.println(x+M 上 ,r+y);mRenderer.action = 3;DrawAnimationO;else if(y > mRenderer.height/2.0 + (1.5*mRenderer.width)/6) 下/System.out.println(x+H F H+y);niRendere 匚 action = 4;DrawAnimationO;elseniRenderer.action = 0;break;mPreviousX = x;mPreviousY = y;保存這次點(diǎn)return tnie:
23、private void DrawAnimation()ChangeMovcByAction()7/確定是哪個(gè)而旋轉(zhuǎn)mRenderer.angle=O; while(mRenderer.angle<85)/ 繪制旋轉(zhuǎn)效果 niRendere 匚 anglc=mRcndcrc r.anglc+5; tryThread.sIecp(40);catchdnterruptedException e)requestRcnderO;/繪制旋轉(zhuǎn)效果mRenderer.angle=O;niRenderer.action = 0;DrawColorChange()y/ 改變顏色rcquestRenderO
24、;private void DrawColorChangeO switch (niRenderer.movc)case 70:LeftShift( 0*27+0*3,0*27+6*3,0*27+8*3,0*27+2*3);LeftShift( 0*27+1*3,0*27+3*3,0*27+7*3,0*27+5*3);LeftShift( 1*27+6*3,5*27+8*3,4*27+2*3,2*27+0*3);LeftShift( 1*27+7*3,5*27+5*3,4*27+1*3,2*27+3*3);LeftShift( 1*27+8*3, 5*27+2*3,4*27+0*3,2*27+6
25、*3); break;case 66:LeftShift( 3*27+0*3, 3*27+6*3, 3*27+8*3,3*27+2*3);LeftShift( 3*27+1*3, 3*27+3*3, 3*27+7*3,3*27+5*3);LeftShift( 1*27+0*3,2*27+2*3,4*27+8*3,5*27+6*3);LeftShift( 1*27+1*3, 2*27+5*3, 4*27+7*3, 5*27+3*3);LeftShift( 1*27+2*3,2*27+8*3,4*27+6*3, 5*27+0*3); break;case 85:LeftShift( 1*27+0*
26、3, 1*27+6*3, 1*27+8*3, 1*27+2*3);/LeftShift( 1*27+1*3, 1*27+3*3, 1*27+7*3, 1*27+5*3);LeftShift( 0*27+0*3,2*27+0*3, 3*27+0*3,5*27+0*3);LeftShift( 0*27+1*3,2*27+1*3,3*27+1*3,5*27+1*3);LeftShift( 0*27+2*3,2*27+2*3,3*27+2*3,5*27+2*3); break:case 6&LeftShift( 4*27+0*3,4*27+2*3,4*27+8*3,4*27+6*3);Left
27、Shift( 4*27+1*3,4*27+5*3,4*27+7*3,4*27+3*3);LeftShift( 0*27+6*3,2*27+6*3, 3*27+6*3,5*27+6*3);LeftShift( 0*27+7*3,2*27+7*3, 3*27+7*3,5*27+7*3);LeftShift( 0*27+8*3,2*27+8*3, 3*27+8*3,5*27+8*3); break:case 82:LeftShift( 2*27+0*3,2*27+6*3,2*27+8*3,2*27+2*3);LeftShift( 2*27+1*3,2*27+3*3,2*27+7*3,2*27+5*3
28、);LeftShift( 1*27+2*3,0*27+2*3,4*27+2*3,3*27+6*3);LeftShift( 1*27+5*3,0*27+5*3,4*27+5*3,3*27+3*3);LeftShift( 1*27+8*3,0*27+8*3,4*27+8*3,3*27+0*3); break;case 76:LeftShift( 5*27+0*3, 5*27+6*3, 5*27+8*3, 5*27+2*3);LeftShift( 5*27+1*3,5*27+3*3, 5*27+7*3, 5*27+5*3);LeftShift( 1*27+0*3, 3*27+8*3,4*27+0*3
29、,0*27+0*3);LeftShift( 1*27+3*3,3*27+5*3,4*27+3*3,0*27+3*3);LeftShift( 1*27+6*3, 3*27+2*3,4*27+6*3,0*27+6*3);break:default:break:private void ChangeMoveByAction()/F 70B66U85 D 68 R 82L76(這個(gè)注釋恐怕只有我能看懂!)switch(mRendere r. action”case 1:if( (mRenderer.eyex > 0) && (mRenderer.eyez >0)mRende
30、rer.move=76;else if( (mRenderer.eyex > 0) && (mRenderer.eyez < 0)mRenderer.move=70;else if( (mRenderer.eyex < 0) && (mRenderer.eyez < 0)niRenderer.move=82;else if( (mRenderer.eyex < 0) && (mRenderer.eyez > 0) niRenderer.move=66;break;case 2:if( (mRenderer.ey
31、ex > 0) && (mRenderer.eyez >0)mRenderer.move=66:else if( (mRenderer.eyex > 0) && (mRenderer.eyez < 0)mRendere imovc=76;else if( (mRenderer.eyex < 0) && (mRenderer.eyez < 0)mRender cr. move=70:else if( (mRenderer.eyex < 0) && (mRenderer.eyez > 0
32、)niRenderer.move=82;break;case 3:niRendere r.mcwc=85;break:case 4:niRendere 匚 mo vc=68;break:private void memcpy(int onejnt two) mRcnderer.face_color(one=niRendere r. facc_color two;niRenderer. face_color one+1 =mRcndere r.facc_colortwo+l ; niRenderer.face_colorone+2=mRcndere r.face_colortwo+2;priva
33、te void LeftShift(int a,int bunt cunt d)/ a<b<c<d 左移float temp 1 =mRenderer.face_colora;float temp2=mRenderer.face_colora+1 ;float temp3=mRendere r.face_colora+2;memcpy(a.b);memcpy(bx);mcmcpy(cd);mRendere r.face_colord= tempi;niRenderer. face_colord+1 =temp2;mRendere ifacc_colord+2=(cmp3;pr
34、ivate void DrawRotation(GL10 gl)/繪制小立方體switch (move)case 70:DrawCube 19(gl); DrawCubcll(gl); DrawCube2(gl): DrawCube22(gl); DrawCubcl3(gl); DrawCubc5(gl); DrawCubc25(gl): DrawCube 16(gl); DrawCubc8(gl); DrawCube 18(gl); DrawCube 10(gl); DrawCube l(gl);DrawCubc21(gl); DrawCube4(gl); DrawCube24(gl); D
35、rawCube 15(gl); DrawCube7(gl);gl.glPushMatrix();gl.glRotatef(-angle,O.Of,O.OfJ.Of);DrawCubcO(gl); DrawCubc9(gl); DrawCube 17(gl); DrawCube3(gl);DrawCube 12(gl); DrawCube20(gl); DrawCube6(gI); DrawCube 14(gl); DrawCube23(gl);gl.glPopMatrix();break;case 66:DrawCubcO(gl); DrawCubc9(gl); DrawCube 17(gl)
36、; DrawCube3(gl);DrawCube 12(gl); DrawCube20(gl); DrawCube6(gl); DrawCube 14(gl);DrawCubc23(gl); DrawCube 18(gl); DrawCube 10(gl); DrawCubel(gl); DrawCubc21(gl); DrawCube4(gl); DrawCube24(gl); DrawCube 15(gl);DrawCube7(gl);gl.glPushMatrixO;gl.glRotatef(angle,O.OLO.OL 1 .Of);DrawCube 19(gl); DrawCube
37、ll(gl); DrawCube2(gl): DrawCube22(gl); DrawCube 13(gl); DrawCube5(gI); DrawCube25(gl); DrawCube 16(gl);DrawCube8(gl);gl.glPopMatrix();break;case 85:DrawCube3(gl); DrawCube23(gl);DrawCube24(gl); DrawCube25(gl); DrawCube4(gl); DrawCube5(gl); DrawCube6(gl); DrawCube7(gl); DrawCubc8(gl); DrawCube 12(gl)
38、; DrawCube 13(gl): DrawCube 14(gl); DrawCube 15(gl);DrawCube 16(gl):DrawCube20(gl);DrawCube? 1 (gl);DrawCube22(gl);gl.glPushMatrixO;gl.glRotatef(-angle,O.Of, 1 .Of.O.Of);DrawCubcO(gl); DrawCube l(gl); DrawCube2(gl);DrawCube9(gl);DrawCube 10(gl); DrawCube 1 l(gl); DrawCube 17(gl); DrawCube 18(gl); Dr
39、awCube 19(gl);gl.glPopMatrix();break;case 6&DrawCubeO(gl); DrawCube l(gl); DrawCube2(gl); DrawCube3(gl); DrawCube4(gl); DrawCube5(gl); DrawCube9(gl); DrawCube 10(gl); DrawCube 11 (gl);DrawCube 12(gl); DrawCube 13(gl); DrawCube 17(gl); DrawCube 18(gl); DrawCube 19(gl);DrawCube20(gl); DrawCube21 (gl); DrawCube22(gl);gl.glPushMatrix();gl.glRotatef(angle,0.0f<1.0L0.0f);DrawCube6(gl); DrawCube7(gl); DrawCube8(gl);DrawCube 14(gl);DrawCube 15(gl);DrawCubc 16(gl); DrawCube23(gl);DrawCube24(gl); DrawCub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 滑雪場(chǎng)地建設(shè)與維護(hù)合同書
- 深圳市冷凍水產(chǎn)品購(gòu)銷合同
- 重大突破:中國(guó)與尼日爾簽訂基礎(chǔ)設(shè)施建設(shè)項(xiàng)目合同
- 正式婚后財(cái)產(chǎn)歸屬合同樣本
- 設(shè)備采購(gòu)與租賃合同樣本
- 社區(qū)衛(wèi)生服務(wù)中心藥師聘用合同范本
- 建筑工程總承包合同中新防水工程條款
- 緊急設(shè)備配送及維護(hù)合同
- 樓盤分銷代理合同范本
- 衛(wèi)浴產(chǎn)品標(biāo)準(zhǔn)制定與質(zhì)量認(rèn)證考核試卷
- 根管治療病例分享
- 數(shù)學(xué)課后訓(xùn)練:正態(tài)分布
- DB5115-T 129-2024《油樟優(yōu)樹選擇技術(shù)規(guī)程》
- (完整版)西泠印社出版社三年級(jí)下冊(cè)《書法練習(xí)指導(dǎo)》完整教案
- 《電工儀表與測(cè)量》課程教學(xué)大綱
- 【企業(yè)盈利能力探析的國(guó)內(nèi)外文獻(xiàn)綜述2400字】
- 危急值的考試題及答案
- 新犯罪學(xué)完整版課件電子教案
- 2025新高考方案一輪物理參考答案與詳解
- 數(shù)字孿生與光伏儲(chǔ)能集成
- 2025屆高考語文復(fù)習(xí):補(bǔ)寫語句+課件
評(píng)論
0/150
提交評(píng)論