




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.wd移动设备软件应用与开发大作业报告姓 名:学 号:班 级:院 系:日 期:任课教师:一、程序的运行环境、安装步骤1、运行环境游戏运行环境:Android1.5以上版本2、程序的组成部份:2.1、JDK安装1. 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:2. JAVA_HOME值为: D:Program FilesJavajdk1.6.0_18你安装JDK的目录3. CLASSPATH值为:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;4. Path:
2、在开场追加 %JAVA_HOME%bin;5. NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。安装完成之后,可以在检查JDK是否安装成功。翻开cmd窗口,输入java version 查看JDK的版本信息。出现类似下面的画面表示安装成功了:2.2、Eclipse安装2.3、Android SDK安装在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的&q
3、uot;Force s:/."这项,再点击Available Packages 。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开场下载安装所选包在用户变量中新建PATH值为:Android SDK中的tools绝对路径本机为D:AndroidDevelopandroid-sdk-windowstools。image图2、设置Android SDK的环境变量“确定后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。 运行 android h 如果有类似以下的
4、输出,说明安装成功:图3、验证Android SDK是否安装成功2.4、ADT安装翻开 Eclipse IDE,进入菜单中的 "Help" -> "Install New Software"点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入 :/dl-ssl.google /android/eclipse。如下列图所示:确定返回后,在work with后的下拉列表中选择我们刚刚添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android De
5、velopment Tool,勾选他们。 如下列图所示:然后就是按提示一步一步next。完成之后:选择Window > Preferences.在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为: D:AndroidDevelopandroid-sdk-windows点击Apply、OK。配置完成。2.5、创立AVD为使Android应用程序可以在模拟器上运行,必须创立AVD。1、在Eclipse中。选择Windows > Android SDK and AVD Manager2、点击左侧面板的Virtual Devices,再右侧点击New3、填
6、入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创立AVD注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候你:点击左侧面板的Available Packages,在右侧勾选 s:/dl-ssl.google /android/repository/repository.xml,如下列图所示:然后点击Install Selected按钮,接下来就是按提示做就行了要做这两步,原因是在1.3、Android SDK安装中没有安装一些
7、必要的可用包Available Packages。2.5、创立Android工程三、 程序开发平台 1代码行数:1000 2开发环境:Android Developer ToolsBuild: v22.6.2-1085508apache-ant-1.9.3四、 程序功能说明:单机屏幕按住不放可以拖动魔方转动,魔方上下左右空白处可以转动魔方相对那一面。五、应用核心源码class MFtestSurfaceV
8、iew extends GLSurfaceView private MFtestRenderer mRenderer;private float mPreviousX; private float mPreviousY;/上一次的点 private float mDownPreviousX; private float mDownPreviousY;/上一次的Down点 / private int oldDownX; / private int private float theta; private float fai;/球坐标 public MFtestSurfaceView(Contex
9、t context) super(context); theta=(float)3.14159/4; fai=(float)3.14159/4; / Set the Renderer for drawing on the GLSurfaceView mRenderer = new MFtestRenderer(); setRenderer(mRenderer); setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); Override public boolean onTouchEvent(MotionEvent e) / MotionEvent
10、 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.getX(); float y = e.getY(); switch (e.getAction() case MotionEvent.ACTION_MOVE:/如果是 移动的话 float dx = x - mPreviousX; float dy = y -
11、mPreviousY;/x,y的变换值不是0,就是1 float te=theta; theta=theta+dy/100;/角度是弧度值 if (!(theta>0&&theta<3.14159) theta=te;/法线始终向上 fai=fai+ dx/100; /x=rsincos mRenderer.eyez=(float)(3*Math.sin(theta)*Math.cos(fai); /y=rsinsin mRenderer.eyex=(float)(3*Math.sin(theta)*Math.sin(fai); /z=rcos 利用球坐标使观察点始
12、终维持在半径为3的球上 mRenderer.eyey=(float)(3*Math.cos(theta); requestRender(); /System.out.println(x+" "+y); break; case MotionEvent.ACTION_DOWN: mDownPreviousX=x; mDownPreviousY=y; break; case MotionEvent.ACTION_UP: if(x-mDownPreviousX)>-5)&&(x-mDownPreviousX)<5)&&(y-mDownPr
13、eviousY)>-5)&&(y-mDownPreviousY)<5)/(x-mDownPreviousX)>-3)|(x-mDownPreviousX)>-3)&&(y-mDownPreviousY)>-3)|(y-mDownPreviousY)>-3) /System.out.println(x-mDownPreviousX); if( x < (mRenderer.width*(1-Math.sqrt(18)/6)/2) ) /左 /System.out.println(x+" 左 "+y);
14、mRenderer.action = 1; DrawAnimation(); else if( x > mRenderer.width-(mRenderer.width*(1-Math.sqrt(18)/6)/2) ) /右 /System.out.println(x+" 右 "+y); mRenderer.action = 2; DrawAnimation(); else if(y < mRenderer.height/2.0 - (1.5*mRenderer.width)/6) /上 /System.out.println(x+" 上 "
15、+y); mRenderer.action = 3; DrawAnimation(); else if(y > mRenderer.height/2.0 + (1.5*mRenderer.width)/6) /下 /System.out.println(x+" 下 "+y); mRenderer.action = 4; DrawAnimation(); else mRenderer.action = 0; break; mPreviousX = x; mPreviousY = y;/保存这次点 return true; private void DrawAnimati
16、on() ChangeMoveByAction();/确定是哪个面旋转 mRenderer.angle=0; while(mRenderer.angle<85)/绘制旋转效果 mRenderer.angle=mRenderer.angle+5; try Thread.sleep(40); catch(InterruptedException e) requestRender(); /绘制旋转效果 mRenderer.angle=0; mRenderer.action = 0; DrawColorChange();/改变颜色 requestRender(); private void Dr
17、awColorChange() switch (mRenderer.move) 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*
18、27+6*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:
19、 LeftShift( 1*27+0*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 68: LeftShift( 4*27+0*3, 4
20、*27+2*3, 4*27+8*3, 4*27+6*3); LeftShift( 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+
21、2*3); LeftShift( 2*27+1*3, 2*27+3*3, 2*27+7*3, 2*27+5*3); 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*
22、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, 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() /F70B 66U 85D 68R 82L76(这个注释恐怕只有我能看懂 - -!) switch(mRe
23、nderer.action) case 1: if( (mRenderer.eyex > 0) && (mRenderer.eyez > 0) ) mRenderer.move=76; else if( (mRenderer.eyex > 0) && (mRenderer.eyez < 0) ) mRenderer.move=70; else if( (mRenderer.eyex < 0) && (mRenderer.eyez < 0) ) mRenderer.move=82; else if( (mRend
24、erer.eyex < 0) && (mRenderer.eyez > 0) ) mRenderer.move=66; break; case 2: if( (mRenderer.eyex > 0) && (mRenderer.eyez > 0) ) mRenderer.move=66; else if( (mRenderer.eyex > 0) && (mRenderer.eyez < 0) ) mRenderer.move=76; else if( (mRenderer.eyex < 0) &
25、& (mRenderer.eyez < 0) ) mRenderer.move=70; else if( (mRenderer.eyex < 0) && (mRenderer.eyez > 0) ) mRenderer.move=82; break; case 3: mRenderer.move=85; break; case 4: mRenderer.move=68; break; private void memcpy(int one,int two) mRenderer.face_colorone=mRenderer.face_colortwo;
26、 mRenderer.face_colorone+1=mRenderer.face_colortwo+1; mRenderer.face_colorone+2=mRenderer.face_colortwo+2; private void LeftShift(int a,int b,int c,int d) / a<b<c<d 左 移 float temp1=mRenderer.face_colora; float temp2=mRenderer.face_colora+1; float temp3=mRenderer.face_colora+2; memcpy(a,b);
27、memcpy(b,c); memcpy(c,d); mRenderer.face_colord= temp1; mRenderer.face_colord+1=temp2; mRenderer.face_colord+2=temp3; private void DrawRotation(GL10 gl)/ 绘制小立方体switch (move)case 70:DrawCube19(gl); DrawCube11(gl); DrawCube2(gl); DrawCube22(gl);DrawCube13(gl); DrawCube5(gl); DrawCube25(gl); DrawCube16
28、(gl);DrawCube8(gl); DrawCube18(gl); DrawCube10(gl); DrawCube1(gl);DrawCube21(gl); DrawCube4(gl); DrawCube24(gl); DrawCube15(gl); DrawCube7(gl);gl.glPushMatrix();gl.glRotatef(-angle,0.0f,0.0f,1.0f);DrawCube0(gl); DrawCube9(gl); DrawCube17(gl); DrawCube3(gl);DrawCube12(gl); DrawCube20(gl); DrawCube6(g
29、l); DrawCube14(gl); DrawCube23(gl);gl.glPopMatrix();break;case 66:DrawCube0(gl); DrawCube9(gl); DrawCube17(gl); DrawCube3(gl);DrawCube12(gl); DrawCube20(gl); DrawCube6(gl); DrawCube14(gl);DrawCube23(gl); DrawCube18(gl); DrawCube10(gl); DrawCube1(gl);DrawCube21(gl); DrawCube4(gl); DrawCube24(gl); Dra
30、wCube15(gl); DrawCube7(gl);gl.glPushMatrix();gl.glRotatef(angle,0.0f,0.0f,1.0f);DrawCube19(gl); DrawCube11(gl); DrawCube2(gl); DrawCube22(gl);DrawCube13(gl); DrawCube5(gl); DrawCube25(gl); DrawCube16(gl); DrawCube8(gl);gl.glPopMatrix();break;case 85:DrawCube3(gl); DrawCube23(gl);DrawCube24(gl); Draw
31、Cube25(gl);DrawCube4(gl); DrawCube5(gl); DrawCube6(gl); DrawCube7(gl);DrawCube8(gl); DrawCube12(gl); DrawCube13(gl); DrawCube14(gl);DrawCube15(gl);DrawCube16(gl);DrawCube20(gl); DrawCube21(gl); DrawCube22(gl); gl.glPushMatrix();gl.glRotatef(-angle,0.0f,1.0f,0.0f);DrawCube0(gl); DrawCube1(gl); DrawCu
32、be2(gl);DrawCube9(gl);DrawCube10(gl); DrawCube11(gl); DrawCube17(gl); DrawCube18(gl); DrawCube19(gl);gl.glPopMatrix();break;case 68:DrawCube0(gl); DrawCube1(gl); DrawCube2(gl); DrawCube3(gl);DrawCube4(gl); DrawCube5(gl); DrawCube9(gl); DrawCube10(gl); DrawCube11(gl);DrawCube12(gl); DrawCube13(gl); D
33、rawCube17(gl); DrawCube18(gl); DrawCube19(gl);DrawCube20(gl); DrawCube21(gl); DrawCube22(gl);gl.glPushMatrix();gl.glRotatef(angle,0.0f,-1.0f,0.0f);DrawCube6(gl); DrawCube7(gl); DrawCube8(gl);DrawCube14(gl); DrawCube15(gl);DrawCube16(gl); DrawCube23(gl);DrawCube24(gl); DrawCube25(gl);gl.glPopMatrix();break;case 82: DrawCube9(gl); DrawCube10(gl); DrawCube11(gl); DrawCube25(gl);DrawCube12(gl); DrawCube13(gl); DrawCube14(gl); DrawCube15(gl);Dra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 8的乘法口诀(教学设计)-2024-2025学年数学二年级上册冀教版
- 乘数末尾有0的乘法(教学设计)-2024-2025学年数学三年级上册冀教版
- 15 白鹅教学设计-2023-2024学年四年级下册语文统编版
- 2024年高中化学 第三章 重要的有机化合物 第二节 石油和煤重要的烃 第2课时 煤的干馏 苯教学设计 鲁科版必修2
- 《清理厨房》教学设计-2023-2024学年劳动四年级下册人教版
- 《年月日》(教学设计)-2024-2025学年三年级下册数学人教版
- 《8 搞好个人卫生》(教学设计)-2023-2024学年三年级上册综合实践活动皖教版
- 2023-2024学年高中化学 1.2.2 科学家怎样研究有机物教学设计 苏教版选择性必修3
- 三年级上册道德与法治教学设计-3.2我们的学校我介绍 第二课时 桂师星球版
- Unit 2 My class (教学设计)-2024-2025学年人教精通版英语三年级下册
- 正确使用文丘里面罩
- 破碎锤施工方案
- 2023年10月自考00161财务报表分析(一)试题及答案含评分标准
- 读书分享读书交流会《朝闻道》刘慈欣科幻小说读书分享
- 大学物理第8章-机械振动
- 《线面平行的判定》课件
- 《电力工程电缆设计规范》
- 2022-2023学年北京市怀柔区八年级下学期期末语文试题及答案
- 2022中国大学慕课批判性思维南林大答案
- 卫生检验习题库含参考答案
- 护理人文关怀培训课件PPT
评论
0/150
提交评论