package wyf.tzz.gdl;
import java.io.IOException;
import java.io.InputStream;
import android.opengl.GLSurfaceView;
import android.opengl.GLU;
import android.opengl.GLUtils;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.MotionEvent;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import static wyf.tzz.gdl.Constant.*;
class MySurfaceView extends GLSurfaceView {
GL_Demo activity; //Activity
int objectCount=0; //得分
int failCount=0; //失败次数
boolean isWin=false;//是否胜利标记
boolean isFail=false;//是否失败标记
boolean beginFlag=false; //动画线程开始的标志,true为开始
float targetPointY=(BASE_HEIGHT+LINE_OFF_BOX)*UNIT_SIZE; //箱子坐标,目标点y坐标
float cx=-8f; //摄像机x坐标
float cy=targetPointY+1f; //摄像机y坐标
float cz=18; //摄像机z坐标
float tx=0; //观察目标点x坐标
float ty=targetPointY; //观察目标点y坐标
float tz=0; //观察目标点z坐标
private SceneRenderer mRenderer;//场景渲染器
float width; //屏幕宽度
float height; //屏幕高度
float ratio; //屏幕宽高比
Handler hd;
ActionThread actionThread; //动画线程,绳子摆动和箱子下落
public MySurfaceView(Context context) {
super(context);
activity=(GL_Demo)context;
mRenderer = new SceneRenderer(); //创建场景渲染器
setRenderer(mRenderer); //设置渲染器
setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);//设置渲染模式为主动渲染
hd=new Handler() //初始化消息处理器
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
switch(msg.what)
{
case 0: //达到赢的目标数量
isWin=true; //将胜利标志置为false
beginFlag=false; //让动画线程停止
if(activity.isSound) //是否打开了声音
{
activity.mpWin.start();//播放胜利音乐
activity.mpBack.pause();//背景音乐停止
}
activity.setWinView(); //切换到胜利的画面
break;
case 1:
isFail=true;
beginFlag=false; //让动画线程停止
if(activity.isSound) //是否打开了声音
{
activity.mpFail.start();//播放胜利音乐
activity.mpBack.pause();//背景音乐停止
}
activity.setFailView(); //切换到失败的画面
}
}
};
new Thread() //创建一个新的线程,检验是否胜利
{
@Override
public void run()
{
while(!isWin&&!isFail) //如果还没有胜利
{
//发消息加载游戏
if(objectCount==GOAL_COUNT)
{
hd.sendEmptyMessage(0);//发送现在得分即为成功落下箱子数量
}
else if(failCount==GOAL_COUNT)
{
hd.sendEmptyMessage(1);//发送现在得分即为成功落下箱子数量
}
try {
Thread.sleep(200); //睡眠200ms
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start(); //启动线程
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event) //为按键添加监听
{
switch(keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER: //如果按下OK键
actionThread.beginDown=true; //将下落标志箱子开始下落
return true;
case KeyEvent.KEYCODE_BACK: //如果按下返回键
beginFlag=false; //让动画线程停止
activity.msv=new MySurfaceView(activity);
activity.setMenuView(); //切换到主菜单界面
return true;
}
return false; //false,其他按键交给系统处理
}
//触摸事件回调方法
@Override
public boolean onTouchEvent(MotionEvent e) {
float y = e.getY(); //触点x坐标
float x = e.getX(); //触点y坐标
switch(e.getAction())
{
case MotionEvent.ACTION_DOWN:
if(x>width-BUTTON_WIDTH*UNIT_SIZE*240&&x<width
&&y>height-BUTTON_HEIGHT*UNIT_SIZE*240&&y<height) //如果落在虚拟OK键上
{
actionThread.beginDown=true; //箱子开始下落
return true;
};
break;
}
return super.onTouchEvent(e);
}
private class SceneRenderer implements GLSurfaceView.Renderer //创建场景渲染器类
{
Base base; //基台
Background bk; //背景
Floor floor; //地面
BoxGroup bg; //管理箱子的箱组
Line line; //绳子
Tree tree; //树
Score score; //得分
TextureRect mOKButton; //虚拟OK键
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);//清除颜色缓存于深度缓存
gl.glMatrixMode(GL10.GL_MODELVIEW); //设置当前矩阵为模式矩阵
gl.glLoadIdentity(); //设置当前矩阵为单位矩阵
ty=targetPointY; //观察目标点坐标 Y
cy=ty+1f; //摄像机坐标
GLU.gluLookAt
(
gl,
cx, //摄像机坐标x
cy, //摄像机坐标Y
cz, //摄像机坐标Z
tx, //观察目标点坐标 X
ty, //观察目标点坐标 Y
tz, //观察目标点坐标 Z
0,
1, //摄像机朝向
0
);
//画背景
gl.glPushMatrix(); //保护当前矩阵
gl.glTranslatef(0,BACKGROUND_HEIGHT*UNIT_SIZE/2,0); //向Y正平移
gl.glTranslatef(0,0,-BASE_WIDTH/2-0.5f); //向z负方向平移
bk.drawSelf(gl); //画背景
gl.glPopMatrix(); //回复之前变换矩阵
//画地面
gl.glPushMatrix(); //保护当前矩阵
gl.glTranslatef(0, 0,FLOOR_WIDTH*UNIT_SIZE/3); //向z正方向平移
floor.drawSelf(gl); //画地板
gl.glPopMatrix(); //回复之前变换矩阵
//画基台
gl.glPushMatrix(); //保护当前矩阵
gl.glTranslatef(0,BASE_HEIGHT*UNIT_SIZE/2,0); //向x正方向平移
base.drawSelf(gl); //画基台
gl.glPopMatrix(); //回复之前变换矩阵
//画线和箱子
gl.glPushMatrix(); //保护当前矩阵
bg.drawSelf(gl); //画箱子
line.drawSelf(gl); //画绳子
gl.glPopMatrix(); //回复之前变换矩阵
//画树
gl.glPushMatrix(); //保护当前矩阵
gl.glTranslatef(1.5f, 0, 0f); //向x正方向平移
tree.drawSelf(gl); //画树
gl.glTranslatef(-3f, 0, 0f); //向x负方向平移
tree.drawSelf(gl); //画树
gl.glPopMatrix(); //回复之前变换矩阵
gl.glLoadIdentity(); //设置当前矩阵为单位矩阵
gl.glEnable(GL10.GL_BLEND); //开启混合
g
没有合适的资源?快使用搜索试试~ 我知道了~
motiandalou.rar_android
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共108个文件
class:33个
png:29个
java:24个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 176 浏览量
2022-09-19
19:27:07
上传
评论
收藏 2.82MB RAR 举报
温馨提示
ANDROID系统3D游戏开发源程序,休闲游戏《摩天大楼》
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
共 108 条
- 1
- 2
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/5df8bff20ad645abb899a1a8333a748d_weixin_42651281.jpg!1)
小波思基
- 粉丝: 74
- 资源: 1万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)