Android大作业报告_android大作业报告

2020-02-28 其他范文 下载本文

Android大作业报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“android大作业报告”。

移动设备软件应用与开

发 大作业报告

姓 名: 学 号: 班 级: 院 系: 日 期:

任课教师:

一、程序的运行环境、安装步骤

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: 在开始追加 %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中的“Force https://...”这项,再点击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、验证Android SDK是否安装成功

2.4、ADT安装

打开 Eclipse IDE,进入菜单中的 “Help”-> “Install New Software” 点击Add...按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http://dl-l.google.com/android/eclipse。如下图所示:

确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development 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、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值

4、点击Create AVD即可完成创建AVD 注意:如果你点击左侧面板的Virtual Devices,再右侧点击New,而target下拉列表没有可选项时,这时候你:

点击左侧面板的Available Packages,在右侧勾选https://dl-l.google.com/android/repository/repository.xml,如下图所示:

然后点击Install Selected按钮,接下来就是按提示做就行了

要做这两步,原因是在1.3、Android SDK安装中没有安装一些必要的可用包(Available Packages)。2.5、创建Android工程

三、程序开发平台

(1)代码行数:1000

(2)开发环境:Android Developer Tools Build: v22.6.2-1085508

apache-ant-1.9.3

四、程序功能说明:

单机屏幕按住不放可以拖动魔方转动,魔方上下左右空白处可以转动魔方相对那一面。

五、应用核心源码

cla MFtestSurfaceView 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(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(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.getX();

float y = e.getY();

switch(e.getAction()){

case MotionEvent.ACTION_MOVE://如果是 移动的话

float dx = xmPreviousY;//x,y的变换值(不是0,就是1)

float te=theta;

theta=theta+dy/100;//角度是弧度值

if(!(theta>0&&theta

{

theta=te;//法线始终向上

}

fai=fai+ dx/100;

//x=rsinθcosφ

mRenderer.eyez=(float)(3*Math.sin(theta)*Math.cos(fai));

//y=rsinθsinφ

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;

case MotionEvent.ACTION_UP:

if((((x-mDownPreviousX)>-5)&&((x-mDownPreviousX)-5)&&((y-mDownPreviousY)-3)||((x-mDownPreviousX)>-3))&&(((y-mDownPreviousY)>-3)||((y-mDownPreviousY)>-3))

{

//System.out.println(x-mDownPreviousX);

if(x

{

//左

//System.out.println(x+“

”+y);

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-!)

switch(mRenderer.action){

case 1:

if((mRenderer.eyex > 0)&&(mRenderer.eyez > 0)){

mRenderer.move=76;

}

else if((mRenderer.eyex > 0)&&(mRenderer.eyez

mRenderer.move=70;

}

else if((mRenderer.eyex

mRenderer.move=82;

}

else if((mRenderer.eyex 0)){

mRenderer.move=66;

}

break;

case 2:

if((mRenderer.eyex > 0)&&(mRenderer.eyez > 0)){

mRenderer.move=66;

}

else if((mRenderer.eyex > 0)&&(mRenderer.eyez

mRenderer.move=76;

}

else if((mRenderer.eyex

mRenderer.move=70;

}

else if((mRenderer.eyex 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_color[one]=mRenderer.face_color[two];

mRenderer.face_color[one+1]=mRenderer.face_color[two+1];

mRenderer.face_color[one+2]=mRenderer.face_color[two+2];

}

private void LeftShift(int a,int b,int c,int d){

// a

float temp1=mRenderer.face_color[a];

float temp2=mRenderer.face_color[a+1];

float temp3=mRenderer.face_color[a+2];

memcpy(a,b);

memcpy(b,c);

memcpy(c,d);

mRenderer.face_color[d]= temp1;

mRenderer.face_color[d+1]=temp2;

mRenderer.face_color[d+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);DrawCube10(gl);DrawCube1(gl);DrawCube21(gl);DrawCube4(gl);DrawCube24(gl);DrawCube15(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);

DrawCube7(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);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.glPopMatrix();

break;

case 85:

DrawCube3(gl);DrawCube23(gl);DrawCube24(gl);DrawCube25(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);DrawCube2(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);DrawCube17(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);

DrawCube16(gl);DrawCube17(gl);DrawCube18(gl);DrawCube19(gl);

DrawCube20(gl);DrawCube21(gl);DrawCube22(gl);DrawCube23(gl);DrawCube24(gl);

gl.glPushMatrix();

gl.glRotatef(-angle,1.0f,0.0f,0.0f);

DrawCube0(gl);DrawCube1(gl);DrawCube2(gl);DrawCube3(gl);

DrawCube4(gl);DrawCube5(gl);DrawCube6(gl);DrawCube7(gl);DrawCube8(gl);

gl.glPopMatrix();

break;

case 76:

DrawCube0(gl);DrawCube1(gl);DrawCube2(gl);DrawCube3(gl);

DrawCube4(gl);DrawCube5(gl);DrawCube6(gl);DrawCube7(gl);

DrawCube8(gl);DrawCube9(gl);DrawCube10(gl);DrawCube11(gl);

DrawCube12(gl);DrawCube13(gl);DrawCube14(gl);DrawCube15(gl);DrawCube16(gl);

gl.glPushMatrix();

gl.glRotatef(-angle,-1.0f,0.0f,0.0f);

DrawCube17(gl);DrawCube18(gl);DrawCube19(gl);DrawCube20(gl);

DrawCube21(gl);DrawCube22(gl);DrawCube23(gl);DrawCube24(gl);DrawCube25(gl);

gl.glPopMatrix();

break;

default:

break;

}

六、工程运行效果截图

10月20日 查找Android开发的配置及流程 10月22日 查找资料确定要使用的算法与数据结构 10月23日 系统设计 10月24日 开始编码

10月28日 游戏基本功能完成,进入测试阶段 11月2日 程序开发完成,编写文档

八、总结

因为之前自己学习过Android游戏开发的相关知识,也自己做过一个小游戏,所以对这方面比较了解,不过之前开发的小游戏是用Cocos2d引擎完成,和Android原生的不太一样,通过这次大作业的完成,对Android的基本开发有了一定的了解。对图像的绘制有了一定的了解。

《Android大作业报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
Android大作业报告
点击下载文档
相关专题 android大作业报告 报告 作业 Android android大作业报告 报告 作业 Android
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文