小编Dul*_*ahx的帖子

oldschool 2D zelda-like游戏的最佳方法

出于学习目的,我想在nes/gb上编写一个受Zelda系列启发的简单2D游戏.

http://www.5min.com/Video/The-Legend-of-Zelda-a-Link-to-the-Past---Walkthrough-Part3-89824010就是一个很好的例子.

玩家可以在可滚动的视图上移动,并且当达到定义的地图限制时,例如房门,地牢或新区域,加载新的特定地图.

什么是实现这一目标的最佳和最简单的方法,特别是对于Android设备?你能指点我一些有用的资源,片段,书籍.

我已经阅读了一些关于OpenGL ES的东西,但对于我愿意做的事情听起来太过分了:2D; 但是,我不确定我能用Canvas处理比手机屏幕更大的东西.

谢谢.

android

10
推荐指数
1
解决办法
4787
查看次数

Android Opengl ES平铺引擎,流畅滚动

接下来:针对oldschool 2D塞尔达式游戏的最佳方法

我有一个简单的2D瓷砖生成器工作,我正在读取填充1或0的int地图[100] [100]并根据他们的瓷砖ID绘制瓷砖,0是水,1草.

我使用一些基本的Numpad控制处理程序,使用camIncr(32.0f),我根据运动设置摄像机位置:

 case KeyEvent.KEYCODE_DPAD_RIGHT:
 cameraPosX = (float)(cameraPosX + camIncr);
 break;
Run Code Online (Sandbox Code Playgroud)

在我的绘制循环中,我只是绘制足够的瓷砖以适合我的屏幕,并使用cameraOffsetX和cameraOffsetY(它的相机位置/瓷砖大小)跟踪左上方的瓷砖

我使用GLU.gluOrtho2D进行投影.

这是我的自定义渲染器中的绘制循环:

 gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

  gl.glMatrixMode( GL10.GL_PROJECTION );
  gl.glLoadIdentity( );
  GLU.gluOrtho2D(gl, 0, scrWidth, scrHeight, 0);
  repere.draw(gl, 100.0f); // this is just a helper, draw 2 lines at the origin

  //Call the drawing methods
  gl.glMatrixMode(GL10.GL_MODELVIEW);
  gl.glLoadIdentity();

  tiledBackground.draw(gl, filtering);
Run Code Online (Sandbox Code Playgroud)

我的tilesBackground绘图功能:

  int cols = (569 / 32) + 2;      // how many columns can fit on the screen 
  int rows = (320 / 32) + 1;     // haw …
Run Code Online (Sandbox Code Playgroud)

android opengl-es

5
推荐指数
1
解决办法
8727
查看次数

标签 统计

android ×2

opengl-es ×1