Articles of 地图

使用OpenGL创建和处理等级/地图文件

游戏开发世界中的关卡/地图如何工作? 反恐精英,这是一个stream行的FPS,使用OpenGL作为graphics库,它的水平/地图创建为* .bsp文件。 你如何创建这样的文件,并使用OpenGL加载它们? 谢谢!

在Libgdx中实现Sign Sprite的问题

我在LibGdx中制作一个基于磁贴的游戏。 我正在使用.tmx格式的TiledMap。 我希望当我的玩家到达一个设置了属性的tile(tileType – > sign)的时候,他会看到一个Sign Sprite,在碰撞的时候,他会在Parent屏幕的游戏屏幕上看到SignScreen(小)。 这是我的代码 //在开始时调用这个方法…在create() TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().get(1); //test ="layer selected :-> "+layer; TiledMapTile tile; for(int y=0; y< mapHeight;y++){ for(int x=0;x<mapWidth;x++){ //Step-1: Search within the level map where should we construct a Sign //* try{ tile = layer.getCell(x,y).getTile(); if("sign".equals(tile.getProperties().get("tileType").toString())){ layer.setCell(x, y, null); / /创建我的标志精灵删除该瓷砖..在相同的位置signs.add(new Sign(x,y,signCount ++)); } } catch(NullPointerException […]

我怎样才能从一个大的源图像创建一个基于瓷砖的游戏地图?

我正在尝试为我的游戏制作一个巨大的基于瓷砖的地图。 我已经创作了地图的一个大的源图像并保存了它,但是现在我不确定如何将其分解为多个tile并将其渲染为一个网格,以便我可以使用基于tile的运动并将某些tile标记为collision,et等等。 我应该怎么做呢?

当我的玩家击中它时,是否应该使Tiledmap中的单元格为null

我正在使用Libgdx制作一个基于Tile的游戏。 我从Mario Zencher的SuperKoalio平台游戏演示中获得了这个想法。 当我想在我的游戏中实现Collectables时,我只需使用Tiled Map Editor绘制硬币。 当我的玩家击中时,我使用将该单元格设置为null。 有一天在这个网站上建议我不要这样做…从不使用null。 我同意。 什么可以是其他方式。 如果我使用layer.setCell(x,y)将单元格设置为任何其他单元格…即使是透明的单元格,我的播放器似乎被一个不可见的对象/障碍挡住了。 这是我的代码: for (Rectangle tile : tiles) { if (koalaRect.overlaps(tile)) { TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().get(1); try{ type = layer.getCell((int) tile.x, (int) tile.y).getTile().getProperties().get("tileType").toString(); } catch(Exception e){ System.out.print("Exception in Tiles Property"+e); type="nonbreakable"; } //Let us destroy this cell if(("award".equals(type))){ layer.setCell((int) tile.x, (int) tile.y, null); listener.coin(); score+=100; […]

在Crafty JS中dynamic加载文件的贴图

我对Crafty相当陌生,并且在加载大型世界地图时遇到问题。 所以我有一个世界拆分成多个js文件。 它们由两个瓦片数组表示:一个用于背景(使用哪个草图)和一个用于细节(使用悬崖)。 当我开始狡猾的时候,我加载了3×3的周边文件,像这样渲染它们: for(var i = 0; i < Game.map_grid.map_entities.length; i ++){ if(Game.map_grid.map_entities.hasOwnProperty(i)) Game.map_grid.map_entities[i].keep = false; } //render background terrain for (var i = 0; i < view_map["background"].length; i++) { var tile_object = view_map["background"][i]; var tile = tile_object["type"]; var x = tile_object["x"] – view_map["xoffset"]; var y = tile_object["y"] – view_map["yoffset"]; if(Game.map_grid.map_entities.length && (tile+"_"+x+"_"+y) in […]

Roguelike地图结构

我正在做一个roguelike,想知道如何构建我的地图数据。 我想这个问题也可以扩展到任何一种自上而下的二维游戏。 无论如何! 我的游戏将包含对象types,如地形,门,开关,怪物和物品。 物体应该如何存储在地图中? 我在网上收集的一些想法: 该地图是一个二维数组。 数组中的每个单元格可以存储对占据它的对象的多个引用。 该地图包含几层2d数组,每层存储对特定types对象的引用。 像1一样,但只能在二维数组中存储静态地形信息。 其余的对象是dynamic的,并存储在每个types的列表中。

在xna简单的二维瓷砖照明

我目前正试图在我的游戏中实现简单的照明。 我的世界是用二维数组来表示的,每个数字都是一个特定的瓦片。 我正在改变spritebatch.Draw方法中的颜色参数来调暗瓷砖,这对我来说工作得非常好(我不知道如何使用着色器)。每个瓷砖可以有一个从0到5的亮度级别,取决于它的水平,它会更明亮/更黑暗。 我遇到的问题是我使用这个代码来模拟灯光: public void Update() { foreach (NonCollisionTiles tile in nonCollisionTiles) { foreach (NonCollisionTiles otherTile in nonCollisionTiles) { if (otherTile.Rectangle.X == tile.Rectangle.X && (otherTile.Rectangle.Y / size == tile.Rectangle.Y – 1 || otherTile.Rectangle.Y / size == tile.Rectangle.Y + 1)) { if (tile.Light < otherTile.Light) { tile.Light = otherTile.Light – 1; } } else if […]

地图上的瓦片限制,移动设备?

我们允许使用Tiled之类的软件将多less个图块添加到Tile地图上以定位移动设备? 某些设备无法加载超过2048×2048的纹理,您是否知道瓷砖地图的工作原理以及存在大小限制? 谢谢

更新2d数组以包含更大的2d数组的块 – 用于2d瓷砖地图

我需要帮助的是如何获得一大块2d字符数组并更新它,所以我只绘制足够的瓷砖来覆盖屏幕? 目前,我加载一个文本文件中的所有字符,并将其存储在一个数组中。 然后我创建一个较小的数组: char[][] toDraw = new char[height][width]从大数组中获取字符的第一个高度*宽度区域,如下所示: public void filterMap() { for(int i = 0; i < height; i++) { for(int j = 0; j < width; j++) { toDraw[i][j] = MapLoader.mapData[i][j]; } } } 然后我使用这个drawMap方法绘制地图: public void drawMap(Canvas canvas) { for(int i = 0; i < height; i++) { for(int j = 0; […]

Android的跳转和运行 – 随机地图生成

我很新的游戏开发,但我工作的Android应用程序。 这是一个2D跳转和运行游戏。 我在Eclipse中执行,现在地图是从一个txt文件中提取出来的。 但我想做一个跳跃和运行的游戏,玩家必须跳过地面的洞。 这些孔应该随机创建。 所以我想要一个随机创建的无限地图。 有人可以给我提示如何开始呢? 我怎样才能做一个随机生成的地图? 我不想要完整的代码或其他的东西,只是一个小提示如何开始,因为我不知道如何做到这一点随机生成。 提前致谢! 希望你知道,我的意思是!