原文链接:http://blog.csdn.net/cng1991/article/details/7293946
今天看了下libgdx,觉得加载3d模型的功能很炫。所以分享下代码。
首先用blender(开源的3D模型工具,百度即可搜到)新建一个工程,然后导出为cube.obj。最主要的是获取obj文件。将.obj文件放在android工程的assets/data目录下。然后搭建android下的libgdx环境,即导入架包。
然后编写代码:
- package com.cng;
-
-
-
-
- import android.os.Bundle;
-
- import com.badlogic.gdx.ApplicationListener;
- import com.badlogic.gdx.Gdx;
- import com.badlogic.gdx.backends.android.AndroidApplication;
- import com.badlogic.gdx.graphics.Color;
- import com.badlogic.gdx.graphics.GL10;
- import com.badlogic.gdx.graphics.Mesh;
- import com.badlogic.gdx.graphics.PerspectiveCamera;
- import com.badlogic.gdx.graphics.Texture;
- import com.badlogic.gdx.graphics.Texture.TextureFilter;
- import com.badlogic.gdx.graphics.g2d.BitmapFont;
- import com.badlogic.gdx.graphics.g2d.SpriteBatch;
- import com.badlogic.gdx.graphics.g2d.TextureRegion;
- import com.badlogic.gdx.graphics.g3d.loaders.ModelLoaderOld;
- import com.badlogic.gdx.utils.ScreenUtils;
-
-
-
-
- public class MyGameActivity extends AndroidApplication {
-
- class MyGameListen implements ApplicationListener
- {
- SpriteBatch batch;
- Texture texture;
- TextureRegion fbteRegion;
- BitmapFont font;
- PerspectiveCamera camera;
- Mesh mesh;
- Color clearColor=new Color(0.2f, 0.2f, 0.2f, 1);
- float angle;
- @Override
- public void create()
- {
- mesh=ModelLoaderOld.loadObj(Gdx.files.internal("data/cube.obj").read());
- texture=new Texture(Gdx.files.internal("data/badlogic.jpg"),true);
- texture.setFilter(TextureFilter.MipMap, TextureFilter.Linear);
-
- batch=new SpriteBatch();
- font=new BitmapFont();
-
- camera=new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
- camera.position.set(3, 3, 3);
- camera.direction.set(-1, -1, -1);
- }
- @Override
- public void dispose()
- {
-
- }
-
- @Override
- public void pause()
- {
-
- }
-
- @Override
- public void render()
- {
- GL10 gl=Gdx.graphics.getGL10();
- gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
- gl.glClearColor(clearColor.r, clearColor.g, clearColor.b, clearColor.a);
- gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);
- gl.glEnable(GL10.GL_DEPTH_TEST);
- gl.glEnable(GL10.GL_TEXTURE_2D);
-
- camera.update();
- camera.apply(gl);
- angle+=45*Gdx.graphics.getDeltaTime();
- gl.glPushMatrix();
- gl.glRotatef(angle, 1, 0, 0);
- texture.bind();
- mesh.render(GL10.GL_TRIANGLES);
- gl.glPopMatrix();
- if(fbteRegion==null||Gdx.input.justTouched())
- {
- if(fbteRegion!=null) fbteRegion.getTexture().dispose();
- fbteRegion=ScreenUtils.getFrameBufferTexture();
- }
- batch.begin();
- if(fbteRegion!=null)
- {
- batch.draw(fbteRegion, 0, 0, 100, 100);
- }
- batch.end();
- }
-
- @Override
- public void resize(int arg0, int arg1)
- {
-
- }
-
- @Override
- public void resume()
- {
- }
-
-
-
-
- }
-
-
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- initialize(new MyGameListen(), false);
- }
-
- }
因为我是libgdx的初学者,里面有些代码不能解释,所以就先不解释了,只是提供一个例子。
分享到:
相关推荐
libgdx-nightly-20140711.zip libgdx 1.2.0
libgdx---MySuperJumper
libgdx-nightly-20110809.zip
libgdx-cookbook-cookbook的书中示例代码
libgdx-演示-metagun Libgdx 演示 --metagun
libGDX游戏引擎官网地址 What's libGDX? libGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux, Mac OS X, Android, your WebGL enabled ...《libGDX系列
类似俄罗斯方块小游戏,拖动组合方块,消除得分 类似俄罗斯方块小游戏,拖动组合方块,消除得分 类似俄罗斯方块小游戏,拖动组合方块,消除得分
2048 是一款非常热门的数字益智类游戏,操作规则很简单,在屏幕中有四行四列共 16 个卡片,初始时随机在其中两个卡片生成两个数字 2 或 4,然后手指可在卡片组区域 上下左右滑动 将所有卡片移动到 上侧 / 下侧 / ...
通过libgdx-crypt-texture可执行jar加密生成的纹理文件。 步骤3.在libGdx项目源代码中: 如果使用Texture ,则通过TextureDecryptor解密 如果要向皮肤加载纹理,请使用CryptTextureAtlas创建皮肤 加密 类...
如何使用libgdx编写一个简单的游戏(一)— 雏形。...教程地址:http://www.huangyunkun.com/2013/02/14/libgdx-game-1/?c819a6de2f0b491b84f298fd67f01dda=88dbcf12c4e84a29ba9cabf8655c914b 此码使用libgdx0.99包
libgdx-设计-编辑器
LibGDX-3D-第一人称例子 如何使用 LibGDX 创建 3D 第一人称场景的示例。 此代码可以随心所欲地使用,但如果您想出售它,则必须对其进行修改。 由于某种原因,格式有点混乱。 希望这可以帮助某人。
LibGDX-SocketIO-带节点 安装并运行节点。 将directoy更改为服务器文件夹。 确保已安装Node JS。 终端,“ npm install” 终端,节点server.js 成功。 应用程式设定 在“ sockettest / core / src / ...
android平台使用libgdx库 解析obj文件。
https://github.com/libgdx/libgdx-demo-cuboc 基于libgdx-demo-cubu开发的demo。
Libgdx开发丛书之 Libgdx cross-platform game development cookbook
o2d-libgdx-setup-plugin 插件到无限制的libGDX设置应用程序
libgdx-pixel-runner Libgdx port van de moai-pixel-runner
Over 75 practical recipes to help you master cross-platform 2D game development using the powerful Libgdx framework
libGDX-LWJGL-音频 来自 gdx-backend-lwjgl 的音频包以及来自 libGDX 的支持类和接口。 所有文件都已从其原始版本进行了修改。