J2ME游戏APIの构建地图TiledLayer

在J2ME中游戏精灵Sprite是Layer的子类,而MIDP2.0中关于Layer图层接口还有一个重要的类TiledLayer,该类的作用是用于构建游戏地图。游戏中除了精灵的活动之外,还需要有背景地图,使得精灵在地图上走动形成逼真的环境效果,因此MIDP2.0提供我们用于构建游戏地图的TiledLayer类,我们能使用TiledLayer容易的构建形象美观的各种地图背景。本文叙述有关TiledLayer的重要方法以及如果使用TiledLayer构造出游戏地图。

1、TiledLayer是一个将tiled平铺于格子状排列着的cell中,通过使用图片填满整站地图中的cell从而形成一张游戏地图的类。

2、TiledLayer的constructor为:public TiledLayer(int columns,int rows,Image image,int tiledWidth,int tiledHeight);

其中参数columns指定了图层中cell横向和纵向的个数,image指定了在图层中使用的图片Image对象,tiledWidth和tiledHeight则分别指定了image中小图片的尺寸。

image对象跟Sprite中一样,由多张不同形态的小图片组成,从构造方法中可以看出,TiledLayer类在构造出自身大小的同时,能对image进行分割。

TiledLayer的用法:

TiledLayer map;
    image = Image.create("/tl.png");
    map = new TiledLayer(9,9,image,image.getWidht()/9,image.getHeight());

3、贴砖

构建出地图大小跟分割图片后,将分割后的图片组装到地图中的各个cell中的过程这里叫贴砖。使用的方法是setCell(int col,int row,int tiledIndex),就是在地图的第col列和第row行的地方贴上第tiledIndex张图片,当全部cell被贴完则形成了我们想得到的游戏地图。通常情况下,地图中的cells我们用二维数组来存储排列情况,并通过一个二维循环来完成贴砖任务。

如: final static int[][] mapData = {

{4,4,4,4,4,4,4,4,4},
      {4,1,2,3,1,3,2,1,4},
      {4,1,5,1,1,2,4,3,4},
      {4,3,5,6,4,3,7,8,4},
      {4,3,6,7,7,7,3,2,4},
      {4,7,2,1,1,1,6,2,4},
      {4,3,6,7,7,7,3,2,4},
      {4,7,2,1,1,1,6,2,4},
      {4,4,4,4,4,4,4,4,4},
      };

贴砖过程:

for(int y = 0; y<mapData.length; y++){
       for(int x = 0; x<mapData[y].length; x++)
         {
            map.setCell(x,y,mapData[y][x]);
         }
      }

时间: 2024-08-31 07:24:30

J2ME游戏APIの构建地图TiledLayer的相关文章

J2ME游戏APIのGameCanvas游戏画布

GameCanvas是MIDP2.0的一个最主要元素,提高了J2ME游戏开发的方便性,相对于MIDP1.0,降低了J2ME游戏开发的难度跟成本,本文专门详述了GameCanvas游戏画布的有关内容,对GameCanvas有个大概的剖析. 一.GameCanvas中的主要方法.方法原型跟方法的作用如下总结: 1.方法GameCanvas,方法原型protected GameCanvas(boolean suppressKeyEvents),作用:构造方法,参数 suppressKeyEvents

J2ME游戏APIの游戏精灵Sprite

在J2ME手机游戏开发中,MIDP2.0以上版本提供了一个有助于游戏制作的类,该类称为游戏精灵Sprite,在J2ME中使用游戏精灵Sprite可以简单的管理角色动画使用的frame图像. 以下我将归纳一下游戏精灵Sprite的一些核心内容. 一.图像分割 在使用Sprite类时候,只需要准备一张图像就可以构造出生动的动画效果,将要制作的动画效果使用的图像按照顺序排列后制作成一张图片,在Sprite构造方法中设定图片源跟图片的分割frame数,Sprite就能自动根据frame数对图片进行分割.

在J2ME平台上构建你的邮件程序

程序 在J2ME平台上构建你的邮件程序Jacky Pan Table of Contents1. 教程的介绍和程序的安装 2. 程序的结构 3. 界面的设计 4. 账户的管理 5. MIDlet和Servlet的网络连接 6. Servlet和JavaMail 7. 简单的XML 8. 小结 1.教程的介绍和程序的安装 本教程讲述了如何在J2ME平台上编写一个简单的邮件应用程序,包括界面的设计,邮件的发送/接受,邮件账户的创建/修改/删除,后台Servlet的编写. 为了运行本教程所带的演示程序

J2ME游戏开发中的地图设计与绘制

设计 在开发很多类型的游戏中,地图系统都需要良好的设计,直观的说,我们需要的地图系统仅仅是一个2D数组,然后用最快的方式将数组影射到屏幕上.       游戏中的地图通常不是由程序员用键盘输入到程序里然后再在程序中修改然后再修改的狂乱过程,而是一般先由程序员做一个地图编辑器,在这个地图编辑器中用鼠标点点点,再保存的过程,或者是从网络上下载的一些成熟编辑器比如:mappy这样的工具生成地图,再用脚本语言为mappy写一个应该保存成什么样格式的程序.通常地图分为45度角,侧视角和俯视角等等,45度角

State模式在J2ME游戏设计中的应用(需要源代码留下e-mail)

设计|源代码    游戏设计中的状态转换是一个既是非常重要又十分复杂的部分.我前几天做移植的时候看到一个public void keyPressed(int keyCode)中间竟然有着近2000千行的代码,这样的话冗长的代码不仅不符合OO的思更加严重的是会打扰我们的程序思路.这两天运用State模式做了一个J2ME游戏中的状态转换由于只是一个实验的例子所以只做了开始菜单和帮助的转换,在这个框架下再加入其他的状态实际就是十分的简单的了. 现在DEMO中只有两个状态,两种状态下keyPressed

j2me游戏引擎的基本构成

游戏引擎在国内还是有一批人走在前沿的,但出于种种的原因发展的并不是很好,并且引擎的神秘面纱和不可揣测的高难度使一些人还没有正式开始就已经打了退堂鼓.通常我们说游戏引擎的时候总是想到3D游戏引擎,的确游戏引擎发展到今天将它发挥到极致的正是3D引擎,但在3D引擎之前其实还是有很多2D,2.5D游戏引擎的,它们现在虽然看起来很弱,但却为3D引擎的产生提供了巨大的理论支持. 原理上讲引擎的结构真的很简单,并没有大多数人想的那么复杂.本篇文章不会讲更复杂的引擎,仅仅针对j2me来讲,但麻雀虽小五脏俱全,我

J2ME游戏开发技巧

不久前我曾用J2ME开发了一个MotoT720下的彩色游戏-宝石方块(GridOne).开发过程中积累了一些经验,现在写出来与大家分享. 使用双缓冲避免屏幕闪烁 双缓冲技术是编写J2ME游戏程序的关键技术之一.实际上,双缓冲技术是计算机动画的一项传统技术.造成屏幕闪烁的主要原因在于,画面在显示的同时,程序又在改变它,于是画面闪烁.解决办法就是在内存中开辟一片区域作为后台画面,程序对它更新,修改,完成后再显示它.这样被显示的图像永远是已经完全画好的图像,程序修改的将不是正在被显示的图像.当然还有其

通过Knockout.js + ASP.NET Web API构建一个简单的CRUD应用

较之面向最终消费者的网站,企业级Web应用对用户体验的要求要低一些.不过客户对"用户体验"的要求是"与日俱增"的,很多被"惯坏了"的用户已经不能忍受Postback带来的页面刷新,所以Ajax在企业级Web应用中得到了广泛的应用.企业级Web应用的一个特点是以"数据处理"为主,所以"面向绑定"的Knockout.js 是一个不错的选择.ASP.NET Web API,作为.NET平台最好的REST服务开发平

凨-百度地图API之地图标注(JS版),地理位置信息,根据地址获取经度纬度

使用的时候记得更改百度地图的开发者KEY <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>凨-百度地图API之地图标注(JS版),地理位置信息,根据地址获取经度纬度</title> <script type="text