Articles of 地图

Cocos3D:调整三维飞机之间的奇怪线条

我已经创建了一个大小为2×2的搅拌机的质感飞机,我用它作为一个瓷砖。 这是我在搅拌机上完成的截图。 没什么特别的,在原点的默认平面上,我只是添加了一个纹理。 我把这架飞机作为POD文件导出到iPhone上。 使用下面的代码,我创建了我的瓷砖地图。 //getting the tile CC3MeshNode * greenSlate = (CC3MeshNode*)[self getNodeNamed:@"GreenSlate"]; CC3Vector greenSize = [self returnSizeOfNode:greenSlate]; //This one printed as 2.0, 0.0, 2.0 . NSLog(@"greenSlate : %f %f %f", greenSize.x, greenSize.y, greenSize.z); float xOffset = -3; float zOffset = -3; for (int column = 0; column < 3; column++) { for (int […]

计算小数点后数字返回数字的步长

我怎样才能从小数点后返回数字的计算得到舍入数字? 而所有的数字将是从中分出的数字。 说明: 我目前正在使用精灵animation制作基于JavaScript tile-based的游戏。 一些步行/奔跑的精灵是less或多。 比方说,我有3步行精灵走路。 1:向下看 2:walkanimation精灵 3:walkanimation精灵 每个瓦片之间的距离,比方说,是16个像素。 16个像素除以3个子画面为5.33333。 所以,如果玩家走下来,每个animation预览将向下移动5.3333个像素。 这将导致玩家在步行animation完成时的15.999像素。 如果玩家走了很多次,那就不好了。 所以我想要dynamic地获得以分割数为结尾的步长。 在这个例子中: 16/3 将返回: 1/3:6 1/3:5 1/3:5 总计:16像素走

元胞自动机中的“随机元素”是做什么的?

我在TutsPlus上阅读这篇关于使用元胞自动机生成程序级的文章。 我的问题出现在这个代码片段中: float chanceToStartAlive = 0.45f; public boolean[][] initialiseMap(boolean[][] map){ for(int x=0; x<width; x++){ for(int y=0; y<height; y++){ if(random() < chanceToStartAlive){ map[x][y] = true; } } } return map; } 在第一行中,作者声明了一个代表45%的浮动。 这是有道理的。 不过,这个角色对我来说还不清楚。 在这一行中: if(random() < chanceToStartAlive) 正在生成一个随机数字,如果小于0.45f ,正在testing。 既然这是一个不等式,这个expression式可以返回true还是false正确的? 这个百分比究竟是如何影响这个循环? 谢谢!

如何绘制一个迷你地图OpenGL和OpenGL ES?

我正在试图画一张迷你地图。 成功通过FBO将当前屏幕放到较小的屏幕(迷你地图)。 但是我不知道如何在hover的时候让迷你屏幕更加明亮。 你可以想象,真实的屏幕非常大,你在左下方有一个迷你屏幕(如“星际争霸”),当你hover在它上面时,它比其他的更亮。 我试图在FBO中使用多个附件,但它不起作用。 事实上,我不知道多重附件如何工作,它是如何使用的? 我的方法是先用attachment_0绘制地图,然后用attachment_1绘制一个hover的矩形。 绑定然后以合法的顺序绘制所有的附件纹理(NOT WORKED)。 我的意思是,第一个画一个迷你“大屏幕”。 第二个hover时绘制一个更亮的矩形。 任何人都可以引导我如何做到这一点或给我任何建议吗? 非常感谢你!

平铺的瓷砖 – 等轴测图

我正在尝试从Tiled中的斜映射(45度角)移动到等角(30度角)。 我在Photoshop中做了一个testing瓷砖: 做了一个等轴测图: 但是我的瓷砖显得完全扭曲,“等轴测图”只是以45度旋转的自顶向下的格子显示: 如何使用平铺创建适当的等距场景? 嗨,在你的例子( 这里 ),你的瓷砖网格是倾斜的。 正如你所看到的,我的出现在上面。 我如何configuration?

导航网格和2D图片

寻找一些帮助/方向; 我正在编写一个插件来从我的游戏中的任何2D地图生成导航网格,并且遇到了障碍。 为了解释,网格的三角形正在产生: 首先,在地图的“碰撞”层上使用行进平方(Marching Squares)algorithm。 多次传递提取在此图层上find的所有块“船体”。 完成后,我在步骤1生成的边上运行约束Delaunayalgorithm。 (实际的寻路工作正常,使用星型和漏斗algorithm来获得最佳path,需要调整,但只是次要的东西) 现在,它第一次工作,技术上是完美的,除了当那些船体内有孔洞或可通行区域时。 这是国际海事组织的一个可行的scheme,地图可能会阻止其中的分区。 根据我对行进方块的理解,无论如何都不应该find内部轮廓,所以我想知道我是否在这里使用了正确的algorithm – 如果不是,我应该使用什么来计算碰撞产生的所有轮廓边瓷砖? 我进行的很多研究都是关于游行广场的,但是在这种情况下肯定是行不通的? 下面的图片希望能说明问题,如果我的解释不够: 图1显示了Marching Squares发现的“充满”的船体; 一切正常图2显示了一个类似的船体,但具有可通行区域(黑色)以及较小的碰撞区域/边缘 有什么想法吗?

为p5.js创建滚动的贴图

我创造了一个像agar.io这样的小游戏,我可以在那里四处收集点数来增加我的体型。 我相当新的JavaScript和p5.js引起了我的注意,所以我开始这样做。 到目前为止这么好,现在我唯一不知道该怎么做的事情就是创建一个摄像头,可以在比视口更大的地图上移动。 关于如何做到这一点,网上没有很多的教程,我需要确保你们不要混淆了滚动的背景。 我不想让一张照片一遍又一遍地重复我只是想要一个相机跟随一个大地图周围的玩家。 这是我的代码,如果你想啾啾,使其更好或有建议。 var user; var bushes = []; var newCords = false; var sizeW = 20, sizeH = 20; var moveX; var moveY; var botW = 20; var botH = 20; function setup(){ createCanvas(windowWidth-10, windowHeight-10); user = new player(); bot1 = new bot(); bot2 = new bot(); bot3 = new bot(); […]

使用二进制空间分区来布置游戏中的场景

问:如何在大场面中随机摆放这些场景,使它们不重叠? 我正在使用Godot引擎来创建一个小型的2D RPG类游戏。 我正在以一种程序化的方式铺设一座村庄,最大的房子首先被放下,然后是小房子,等等。 这些房屋被设置在一个tilemap ,而它本身被设置在一个更大的tilemap场景中。 我尝试过使用Vector2对象中的随机值随机设置它们,但它们可能会相互重叠。 经过大量的实验,我发现了一篇关于二进制空间分区的文章,并试图find一个在Godot引擎中做出的例子。 我在YouTube上find了这个video ,并使用该代码来制作一个小function: func bsp(map_size_width, map_size_height): var rec1 var rec2 var back = [] var contents = [[0, 0, map_size_width, map_size_height]] for i in range(0, 4): back.clear() for rec in contents: randomize() if rec[2] > rec[3]: var width = round(rand_range(0.3,0.7) * rec[2]) rec1 = [rec[0], rec[1], width, rec[3]] […]

二维地形生成algorithm的优化

我正在用二维开放的复杂噪声生成二维地形,但是在生成TileMap中的地形时,我遇到了FPS较低的问题。 我的游戏如何在javascript中生成地形的示例: function generator(map_size=0, _posWorld=[0, 0], size=[1, 48], seed=0) { var simplex = new SimplexNoise(seed); var x = 0; var y = 0; var pos_modx = 0; var pos_mody = 0; while (x < size[0]) { pos_modx = utilsfunctions.mod(_posWorld[0] + x, map_size); y = 0 while (y < size[1]){ pos_mody = utilsfunctions.mod(_posWorld[1] + y, map_size); […]

我怎样才能确定一个面向方向的边界框(OBB)的瓷砖贴图中的哪个贴图?

我需要检测定向边界框和静态瓷砖地图之间的碰撞。 我的瓷砖地图类看起来像这样: function Tilemap(width, height, tiles) { this.width = width; // Width of the map in tiles this.height = height; // Height of the map in tiles this.tiles = tiles; // 1D array containing tiles, grouped by row } Tilemap.prototype.getTile = function (x, y) { return this.tiles[y * this.width + x]; }; Tilemap.prototype.setTile = function […]