1、Android大作业报告移动设备软件应用与开发大作业报告姓 名: 学 号: 班 级: 院 系: 日 期: 任课教师: 一、程序的运行环境、安装步骤1、运行环境游戏运行环境:Android1.5以上版本2、程序的组成部份:2。1、JDK安装1.我的电脑属性高级环境变量-系统变量中添加以下环境变量:2.JAVA_HOME值为: D:Program FilesJavajdk1。6。0_18(你安装JDK的目录)3.CLASSPATH值为:.;%JAVA_HOMElibtools。jar;%JAVA_HOME%libdt。jar;%JAVA_HOMEbin;4.Path: 在开始追加 JAVA_HOM
2、E%bin;5.NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java version 查看JDK的版本信息。出现类似下面的画面表示安装成功了:2.2、Eclipse安装2.3、Android SDK安装在Android Developers下载androidsdk_r05windows。zip,下载完成后解压到任意路径。运行SDK Setup。exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的”Force https:/.。这项,再
3、点击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 如果有类似以下的输出,表明安装成功:图3、验证Androi
4、d SDK是否安装成功2。4、ADT安装打开 Eclipse IDE,进入菜单中的 ”Help - Install New Software”点击Add。.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http:/dlssl。确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如下图所示:然后就是按提示一步一步next。完成之后:选择Window Preferences.。在左边的面
5、板选择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、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创建AVD注意:如果你
6、点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候你:点击左侧面板的Available Packages,在右侧勾选https:/dlssl。google。com/android/repository/repository.xml,如下图所示:然后点击Install Selected按钮,接下来就是按提示做就行了要做这两步,原因是在1.3、Android SDK安装中没有安装一些必要的可用包(Available Packages)。2.5、创建Android工程三、 程序开发平台 (1)代码行数:1000 (2)开发环境:Android
7、 Developer Tools Build: v22。6.21085508apache-ant1。9。3四、 程序功能说明:单机屏幕按住不放可以拖动魔方转动,魔方上下左右空白处可以转动魔方相对那一面。五、应用核心源码class MFtestSurfaceView extends GLSurfaceView private MFtestRenderer mRenderer; private float mPreviousX; private float mPreviousY;/上一次的点 private float mDownPreviousX; private float mDownPrev
8、iousY;/上一次的Down点 / private int oldDownX; / private int private float theta; private float fai;/球坐标 public MFtestSurfaceView(Context 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
9、(mRenderer); setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); Override public 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.g
10、etX(); float y = e.getY(); switch (e.getAction()) case MotionEvent.ACTION_MOVE:/如果是 移动的话 float dx = x mPreviousX; float dy = y - mPreviousY;/x,y的变换值(不是0,就是1) float te=theta; theta=theta+dy/100; /角度是弧度值 if (!(theta0&theta3.14159)) theta=te; /法线始终向上 fai=fai+ dx/100; /x=rsincos mRenderer.eyez=(float)(3
11、*Math.sin(theta)*Math.cos(fai); /y=rsinsin mRenderer。eyex=(float)(3*Math。sin(theta)*Math.sin(fai); /z=rcos 利用球坐标使观察点始终维持在半径为3的球上 mRenderer。eyey=(float)(3*Math。cos(theta); requestRender(); /System。out。println(x+” ”+y); break; case MotionEvent.ACTION_DOWN: mDownPreviousX=x; mDownPreviousY=y; break; ca
12、se MotionEvent。ACTION_UP: if((((x-mDownPreviousX)5)&(x-mDownPreviousX)5))(((y-mDownPreviousY)-5)(ymDownPreviousY)3)) /System.out。println(xmDownPreviousX); if( x 0) & (mRenderer.eyez 0) ) mRenderer.move=76; else if( (mRenderer.eyex 0) & (mRenderer。eyez 0) ) mRenderer。move=70; else if( (mRenderer。eyex
13、 0) & (mRenderer。eyez 0) ) mRenderer。move=82; else if( (mRenderer.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) & (mRend
14、erer.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; mRenderer。face_colorone+1=mRenderer
15、。face_colortwo+1; mRenderer.face_colorone+2=mRenderer。face_colortwo+2; private void LeftShift(int a,int b,int c,int d) / abcd 左 移 float temp1=mRenderer.face_colora; float temp2=mRenderer.face_colora+1; float temp3=mRenderer。face_colora+2; memcpy(a,b); memcpy(b,c); memcpy(c,d); mRenderer。face_colord=
16、 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(gl); DrawCube8(gl); DrawCube18(gl); DrawCu
17、be10(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(gl); DrawCube14(gl); DrawCube23(gl); g
18、l。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); DrawCube15(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。glPopMatr
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1