`
- 浏览:
1540617 次
-
android游戏开发学习 博客分类: android
相关资源(转自:http://yuanzhifei89.iteye.com/blog/1166835)2D中如何判断一点在另一个点的那个方位:http://blog.csdn.net/rabbit729/article/details/4424929游戏开发书籍推荐:http://rightmost.blog.163.com/blog/static/18058539920112223202311/http://blog.csdn.net/hsz8250/article/details/639771地图绘制算法:http://bbs.chinaunix.net/viewthread.php?tid=1669931如何成为android游戏程序员:http://www.microdu.com/thread-3235-1-1.htmlsilverlight c#游戏开发相关文章:http://www.silverlightchina.net/html/zhuantixilie/game/游戏引擎剖析:http://blog.csdn.net/xiaominghimi/article/details/6556289游戏开发常用工具游戏图片提取工具、png压缩、音乐压缩工具:http://www.silverlightchina.net/html/zhuantixilie/game/2010/0520/1148.htmlcocos2d游戏开发,常用工具集合:http://www.cocoachina.com/bbs/read.php?tid-68951.html游戏开发库、框架、引擎android中常见游戏引擎:http://my.oschina.net/ahuaahua/blog/16930libgdx:项目地址:http://code.google.com/p/libgdx/作者博客:http://www.badlogicgames.com/wordpress/libgdx官方指南:http://code.google.com/p/libgdx/wiki/TableOfContents?tm=6强烈建议看看begin android games,因为那本书的作者就是libgdx的开发者,那本书基本是从基础开始讲述了libgdx的一个雏形的开发。libgdx入门:http://www.oschina.net/question/12_15850libgdx学习笔记:http://www.cnblogs.com/tianjian/category/315324.htmlLGame游戏引擎作者blog(国人):http://blog.csdn.net/cping1982?viewmode=contentsmin3d:http://code.google.com/p/min3d/游戏开发网站、论坛open gl官方网站http://www.khronos.org/opengles/最经典的Nehe 学习网站http://nehe.gamedev.net/中文的Nehe学习网站http://www.owlei.com/DancingWind/GLUT 的下载网站http://www.opengl.org/resources/libraries/glut/老牌的游戏开发网站http://www.gamedev.net面向工业的老牌游戏开发网站http://www.gamasutra.com游戏开发wikihttp://wiki.gamedev.net经典代码档案网站http://www.flipcode.com/archives/java游戏开发的首选网站:http://www.java-gaming.orgopen glAndroid OpenGL ES 分析与实践系列:http://blog.163.com/gobby_1110/blog/static/29281715201132033017409/OpengGL ES教程:http://www.zeuscmd.com/tutorials/opengles/index.php什么是open gl:http://www.kuqin.com/baike/20081006/21130.htmlopen gl、egl简介?open gl是一套与平台无关的图形api,但它只提供了图形渲染功能,没有与宿主系统交互的功能。egl就是对open gl的一个扩展,使之具有与宿主系统交互等的功能。其它的还包括:wgl-window平台上的opengl扩展,xgl-基于xwindow的平台的opengl扩展,agl-apple
mac平台的opengl扩展open gl es基本图形的绘制open gl es初始化部分
-
publicvoidonSurfaceCreated(GL10gl,EGLConfigconfig){
-
initFloatGL();
-
initXXX
-
}
-
-
privatevoidinitFloatGL(){
-
-
gl.glViewport(0,0,mWidth,mHeight);
-
-
gl.glMatrixMode(GL10.GL_PROJECTION);
-
gl.glLoadIdentity();
-
-
gl.glOrthof(0,mWidth,0,mHeight,1,-1);
-
-
-
-
gl.glColor4f(1.0F,0.0F,0.0F,1.0F);
-
-
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
-
}
绘制三角形
-
privatevoidinitTriangles(){
-
-
intpointNum=6;
-
ByteBufferbyteBuffer=ByteBuffer.allocateDirect(pointNum*2*4);
-
byteBuffer.order(ByteOrder.nativeOrder());
-
byteBuffer.clear();
-
FloatBufferfloatBuffer=byteBuffer.asFloatBuffer();
-
floatBuffer.put(newfloat[]{
-
-
0.0F,0.0F,
-
50.0F,0.0F,
-
25.0F,50.0F,
-
-
0.0F,60.0F,
-
50.0F,60.0F,
-
25.0F,110.0F
-
});
-
floatBuffer.flip();
-
-
-
gl.glVertexPointer(2,GL10.GL_FLOAT,0,floatBuffer);
-
System.out.println("initTriangles");
-
}
绘制三角行带
-
privatevoidinitTriangleStrip(){
-
-
intpointNum=5;
-
ByteBufferbyteBuffer=ByteBuffer.allocateDirect(pointNum*2*4);
-
byteBuffer.order(ByteOrder.nativeOrder());
-
byteBuffer.clear();
-
FloatBufferfloatBuffer=byteBuffer.asFloatBuffer();
-
floatBuffer.put(newfloat[]{
-
60.0F,0.0F,
-
110.0F,0.0F,
-
85.0F,100.0F,
-
135.0F,100.0F,
-
180.0F,0.0F,
-
});
-
floatBuffer.flip();
-
-
-
gl.glVertexPointer(2,GL10.GL_FLOAT,0,floatBuffer);
-
}
绘制三角扇形
-
privatevoidinitTriangleFan(){
-
-
intpointNum=5;
-
ByteBufferbyteBuffer=ByteBuffer.allocateDirect(pointNum*2*4);
-
byteBuffer.order(ByteOrder.nativeOrder());
-
byteBuffer.clear();
-
FloatBufferfloatBuffer=byteBuffer.asFloatBuffer();
-
floatBuffer.put(newfloat[]{
-
50.0F,50.0F,
-
0.0F,100.0F,
-
30.0F,120.0F,
-
60.0F,120.0F,
-
90.0F,100.0F
-
});
-
floatBuffer.flip();
-
-
-
gl.glVertexPointer(2,GL10.GL_FLOAT,0,floatBuffer);
-
}
绘制点
-
privatevoidinitPoints(){
-
-
ByteBufferbyteBuffer=ByteBuffer.allocateDirect(2*4*4);
-
byteBuffer.order(ByteOrder.nativeOrder());
-
byteBuffer.clear();
-
FloatBufferfloatBuffer=byteBuffer.asFloatBuffer();
-
floatBuffer.put(newfloat[]{
-
20.0F,20.0F,
-
20.0F,21.0F,
-
20.0F,22.0F,
-
22.0F,20.0F
-
});
-
floatBuffer.flip();
-
-
-
gl.glVertexPointer(2,GL10.GL_FLOAT,0,floatBuffer);
-
}
绘制线段
-
privatevoidinitLines(){
-
-
intpointNum=6;
-
ByteBufferbyteBuffer=ByteBuffer.allocateDirect(pointNum*2*4);
-
byteBuffer.order(ByteOrder.nativeOrder());
-
byteBuffer.clear();
-
FloatBufferfloatBuffer=byteBuffer.asFloatBuffer();
-
floatBuffer.put(newfloat[]{
-
20.0F,20.0F,100.0F,200.0F,
-
50.0F,50.0F,300.0F,100.0F,
-
200.0F,200.0F,200.0F,20.0F
-
});
-
floatBuffer.flip();
-
-
-
gl.glVertexPointer(2,GL10.GL_FLOAT,0,floatBuffer);
-
}
绘制线条
-
privatevoidinitLineStrip(){
-
-
intpointNum=4;
-
ByteBufferbyteBuffer=ByteBuffer.allocateDirect(pointNum*2*4);
-
byteBuffer.order(ByteOrder.nativeOrder());
-
byteBuffer.clear();
-
FloatBufferfloatBuffer=byteBuffer.asFloatBuffer();
-
floatBuffer.put(newfloat[]{
-
20.0F,20.0F,
-
100.0F,200.0F,
-
200.0F,200.0F,
-
200.0F,20.0F
-
});
-
floatBuffer.flip();
-
-
-
gl.glVertexPointer(2,GL10.GL_FLOAT,0,floatBuffer);
-
}
绘制环形线路
-
privatevoidinitLineLoop(){
-
-
intpointNum=4;
-
ByteBufferbyteBuffer=ByteBuffer.allocateDirect(pointNum*2*4);
-
byteBuffer.order(ByteOrder.nativeOrder());
-
byteBuffer.clear();
-
FloatBufferfloatBuffer=byteBuffer.asFloatBuffer();
-
floatBuffer.put(newfloat[]{
-
20.0F,20.0F,
-
100.0F,200.0F,
-
200.0F,200.0F,
-
200.0F,20.0F
-
});
-
floatBuffer.flip();
-
-
-
gl.glVertexPointer(2,GL10.GL_FLOAT,0,floatBuffer);
-
}
实际图形的绘制
-
publicvoidonDrawFrame(GL10gl){
-
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
-
-
gl.glDrawArrays(具体的形状);
-
-
}
-
-
-
gl.glDrawArrays(GL10.GL_TRIANGLES,0,6);
-
-
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,0,5);
-
-
gl.glDrawArrays(GL10.GL_TRIANGLE_FAN,0,5);
-
-
gl.glDrawArrays(GL10.GL_POINTS,0,4);
-
-
gl.glDrawArrays(GL10.GL_LINES,0,6);
-
-
gl.glDrawArrays(GL10.GL_LINE_STRIP,0,4);
-
-
gl.glDrawArrays(GL10.GL_LINE_LOOP,0,4);
open gl es使用过程中遇到的问题及解决1. 贴图(texture)无法显示,我遇到的主要原因主要有以下几个:1. 图片的宽或高不是2的n次方2. 图片放在了drawable, drawable-hdpi等会被android缩放的目录(这样在不同dpi的机器上时,图片可能就被拉升为宽或高不是2的n次方了),所以要将图片放在drawable-nodpi或assets中3. open gl es对图片大小有一定的限制,可以尝试多换几个大小试试。1024x1024, 512x512, 128x256在测试时是可以的4. 代码设置不正确(下面是一段可用代码,中间用// ********************说明了一些需要注意的地方)
-
-
intstrideBytes=(2+2)*4;
-
-
ByteBufferbyteBuffer=ByteBuffer.allocateDirect(3*strideBytes);
-
byteBuffer.order(ByteOrder.nativeOrder());
-
-
-
FloatBuffermVertexs=byteBuffer.asFloatBuffer();
-
mVertexs.put(newfloat[]{
-
100.0F,100.0F,
-
0.0F,1.0F,
-
-
228.0F,100.0F,
-
1.0F,1.0F,
-
-
228.0F,228.0F,
-
1.0F,0.0F,
-
});
-
mVertexs.flip();
-
-
-
int[]texIds=newint[1];
-
gl.glGenTextures(1,texIds,0);
-
-
-
gl.glBindTexture(GL10.GL_TEXTURE_2D,texIds[0]);
-
-
GLUtils.texImage2D(GL10.GL_TEXTURE_2D,0,Assets.sGL,0);
-
-
-
-
gl.glTexParameterf(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_MIN_FILTER,GL10.GL_NEAREST);
-
gl.glTexParameterf(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_MAG_FILTER,GL10.GL_NEAREST);
-
-
gl.glBindTexture(GL10.GL_TEXTURE_2D,0);
-
-
-
-
gl.glViewport(0,0,480,320);
-
-
gl.glMatrixMode(GL10.GL_PROJECTION);
-
gl.glLoadIdentity();
-
-
gl.glOrthof(0,480,0,320,1,-1);
-
-
-
gl.glClearColor(1.0F,1.0F,1.0F,1.0F);
-
-
gl.glColor4f(1.0F,0.0F,0.0F,1.0F);
-
-
-
-
-
gl.glEnable(GL10.GL_TEXTURE_2D);
-
gl.glBindTexture(GL10.GL_TEXTURE_2D,mTexIds[0]);
-
-
-
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
-
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
-
-
-
mVertexs.position(0);
-
gl.glVertexPointer(2,GL10.GL_FLOAT,strideBytes,mVertexs);
-
mVertexs.position(2);
-
gl.glTexCoordPointer(2,GL10.GL_FLOAT,strideBytes,mVertexs);
-
-
-
-
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
-
-
gl.glDrawArrays(GL10.GL_TRIANGLES,0,3);
****************************************************************************************************************************************************************************************************************************************************************************************photoshop相关几种png格式的区别PNG图片格式现在包含三种类型:1.PNG82.PNG243.PNG32如果你经常使用Photoshop,那你这里就会问了:到底PNG32是个什么东西。基本上PNG32就是PNG24,但是附带了全alpha通道。就是说每个像素上不仅存储了24位真色彩信息还存储了8位的alpha通道信息,就如同GIF能存储透明和不透明信息一样。当我们把图片放到不太搭配的背景上的时候,透明PNG图片的边缘会显示得更加平滑。当然,我也知道你的想法,“但是Photoshop也能生成带透明通道的PNG图片!”我也知道,它只是表面上这么说是PNG24,让我也产生困惑了。作为一个伤感的Fireworks倡导者,我只使用PNG32支持附带alpha通道的真色彩图片。不管怎样,如果你习惯使用Photoshop,你就应该知道,Photoshop在“存储为WEB格式”中只提供PNG8和PNG24两种PNG格式。我敢肯定你经常会勾选“支持透明”选项,以获得带有透明度的PNG图片,但是这样你就获取了一张PNG32图片。——Photoshop只是觉得把PNG32这个名称给隐藏掉了。png保存时的交错选项
交错:就是指浏览器下载它的时候隔行下载,这样下载一张图只用一半的时间就可以看到它的样子,只不过只是隔行的图,然后它再下载另一般,这样可以减少你等待看它的时间.无:就是没有优化alpha通道,蒙板,路径通道只有两个功能就是保存图像选区和颜色信息。例如RGB模式下通道里就有红绿蓝三个颜色的信息,你可以实验一下如果你画一个纯红色的东西,那么红色通道里就显示白色,绿蓝通道里就显示为黑色,意思是说红色是满的,绿和蓝是完全没有的。因为通道是用黑白灰来记录颜色信息的。至于图象选区,你在通道栏里点下面的新建通道,他出来的就是个ALPHA1通道。如果在此通道画白色,那么白色部分就是被记录下的选区。至于蒙板,如果给图层添加个蒙板,用处就是为了让此图层显示某些地方隐藏某些地方。白色代表显示黑色代表隐藏。你可以看到在通道里面,也会有个ALPHA通道但它名字叫图层1蒙板。所以蒙板其实就是一个ALPHA通道。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
学习Android驱动开发需要具备Linux内核知识、C/C++编程基础以及对Android系统架构的理解。开源社区提供了许多资源,如Kernel源码、Android源码、官方文档,以及各种论坛和技术博客。 综上所述,"android driver.rar...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
以下是一些值得关注的CSDN博客分类: 1. **Akof1314的Cocos2d-x游戏开发专栏**:此专栏专注于Cocos2d-x在游戏开发中的应用,不仅有基础理论讲解,还有多个实战项目分享,适合希望通过具体项目加深理解的学习者。 2...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
Android Market,现在称为Google Play Store,是Google提供的官方应用程序商店,用于分发Android应用、游戏、音乐、电影和其他数字内容。在这一特刊中,我们将深入探讨这个过程的各个环节,包括应用的打包、测试、...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
6. 游戏开发:用Unity或Unreal Engine制作2D或3D游戏。 7. 并发编程:通过多线程或多进程实现高性能计算或实时系统。 8. 系统设计:构建分布式系统、微服务架构或云基础设施。 这些项目不仅提供了实际的编程经验,...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
无论是在桌面应用、移动应用(如Android智能手机)、游戏开发(如Minecraft)还是在电子商务和网站后台开发中,Java的身影无处不在。为了更好地理解和掌握Java编程,跟随最新的技术和趋势,参考高质量的博客是非常...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
总的来说,这个资源对于想要了解或开发具有类似360手机助手功能的Android开发者来说非常有价值,可以学习到如何在Android平台上实现高效、自动化的应用安装服务。通过深入学习和实践,开发者可以提升自己的Android...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
cocos2d-x是一个强大的2D游戏开发框架,广泛应用于iOS、Android等多平台,它的灵活性和高效性使得开发者能够轻松创建各种复杂的游戏场景。 首先,我们要理解积分系统的核心是数据的管理和更新。在C++中,我们可以...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...
多媒体应用:如图像编辑软件、AR/VR应用、游戏开发等,利用OpenCV进行图像和视频处理。 物联网与嵌入式系统:在资源受限的嵌入式设备上,OpenCV提供轻量级的计算机视觉解决方案。 学习与社区资源 OpenCV拥有...