标签: tile

Java:用于存储无限游戏世界的坐标图的良好数据结构是什么?

我习惯用PHP编码,但我并不熟悉Java,这已经有一段时间了.我希望它是一个相当简单的解决方案,但是我无法通过任何方式找到任何好的示例代码,所以这里是:

我正在编写一个游戏,它发生在基于图块的地图上的2d随机生成的无限世界中(挑剔:我知道它不会真正无限.我只是期望世界变得非常大).地图的常用方法[X] [Y]多维数组开始了作为一个基本的想法,但由于Java不用于非整数提供了一种方法(即负)阵列关键有心计,如PHP做,我不能正确有( - x,+ x,-y,+ y)带数组键的坐标系.

我需要能够在特定的x,y坐标处找到瓷砖上的对象,以及找到某个瓷砖的"相邻瓷砖".(如果我可以getObjectAt(x,y),我可以获得(x + 1,y)等等)

我读过四棵树和R树等.这个概念很令人兴奋,但我还没有在Java中看到任何好的,简单的示例实现.此外,我不确定这是否是我所需要的.

欢迎任何建议

谢谢

java map tile coordinate

45
推荐指数
2
解决办法
2万
查看次数

2D平铺地图生成

我正在开发一个2D磁贴引擎,此时我正在研究地图生成算法.

我试过通常涉及简单高度图生成的基本方法

  • 山一代
  • 柏林噪音
  • 钻石广场

但我总是遇到同样的问题:这种算法在处理也有高度组件的平铺地图时似乎很合适,但这不是我的情况.

我基本上有精灵,如草,海,沙漠等等,但它们不应该根据生成的高度放在地图内部但是像

  • 一切都从海洋开始
  • 岛屿被放置在地图的中间(这是我尝试过的算法失败的地方)
  • 沙漠生成(它们应该像周围的随机点)
  • 产生了山脉和丘陵链(它们应该像蛇一样)

我应该尝试什么样的方法?

我通过开发专门的算法来解决子组件的问题(比如沙漠,山丘和山脉)来做我需要的事情(比如山从一个点开始然后跟随一个有可能转向的方向)但是我没有成功基本岛屿(可以定制为只是一个pangea或多个大小的程度).

只是为了给你一个实用的想法我正在寻找的东西就像文明算法:

替代文字

algorithm 2d procedural-generation tile

28
推荐指数
2
解决办法
2万
查看次数

我如何在GWT中使用图像精灵?

我试图在图像资源中使用平铺图像,我正在参考GWT教程...

一节说你需要使用精灵:http: //code.google.com/webtoolkit/doc/latest/DevGuideClientBundle.html#ImageResource

repeatStyle是一个枚举值,与@sprite指令结合使用,表示图像是要平铺的

所以,现在我需要添加一个精灵指令..在哪里?关于精灵的研究,我来到这里:http: //code.google.com/webtoolkit/doc/latest/DevGuideClientBundle.html#Image_Sprites

该示例指示创建两个文件:

  1. MyCssResource
  2. 为MyResources

我会在哪里写这个:

@sprite .mySpriteClass {gwt-image:"imageAccessor"; 其他:财产;}

更多参考报价供参考:

@sprite对声明CSSResource的FooBundle很敏感; 在@sprite声明中命名的兄弟ImageResource方法将用于组成背景精灵.

css gwt image tile

23
推荐指数
2
解决办法
2万
查看次数

芒果应用瓷砖 - 删除回来

这是一个简单的问题,看似简单的任务,但我找不到任何关于如何完成我需要做的事情的信息.

我有一个应用程序,其主要图块(固定时)有时需要是默认的单面图块,有时需要在图块背面显示信息.我可以从ScheduledActionService成功添加BackBackgroundImage,BackContent和BackTitle,但是当不再需要它们时我无法删除它们.这不是辅助磁贴,因此我无法删除它并重新创建并重新添加它.

有没有人知道是否可以将双面贴砖恢复为单面通过代码,如果是这样,我怎么能实现这种行为呢?

编辑

从StandardTileData对象应用的设置是附加的 - 例如,如果您指定标题,则所有其他元素保持不变,只更新标题.我试图将出现在tile背面的三个参数设置为null并取得部分成功.效果是背景图像,标题文本和内容文本都被删除,但是图块仍然会翻转以显示完全空的反面.

再次编辑

因此,查看文档时,磁贴背面的行为与前端不同.将后面的内容或后缀设置为string.Empty将删除它们.一切都很好.但是,它确实说"如果设置为空URI,则不会显示BackBackgroundImage.".我如何创建一个空的Uri?我尝试了新的Uri(字符串,空),但是这会引发一个关于尝试创建一个空Uri的异常 - 这正是我想要做的.

tile windows-phone-7

20
推荐指数
1
解决办法
2239
查看次数

加载TileOverlay Map API v2 Android时保持瓷砖可见

我希望我TileOverlay的行为像真正的谷歌地图.放大时,图块仍然可见但按像素化,直到下载新图块.

当前的行为是:当您放大时,瓷砖消失,您看到丑陋的网格,用户必须等到新瓷砖加载.这有点烦人.

有这个问题的解决方案吗?

android dictionary tile

18
推荐指数
1
解决办法
906
查看次数

在imageview中重复绘制?

是否可以在ImageView中重复绘制?我设法重复我的drawable作为ListView中的分隔符,但不是作为ImageView.这是我重复的图像定义:

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/xdividerrepeat" android:tileMode="repeat"/> 
Run Code Online (Sandbox Code Playgroud)

谢谢马库斯

android tile drawable imageview

16
推荐指数
2
解决办法
2万
查看次数

将单个大图像叠加转换为Google地图的图块

我有一个大型高分辨率图像,我正在使用Google Maps v3 API进行叠加.这适用于具有合理网络连接的台式机和笔记本电脑,但毫不奇怪它对移动用户来说效果不佳.

什么是在各种缩放级别将图像分解为2D图块的最佳/最简单的方法,以便我可以通过API充当Google地图的图块服务器?

是否有一个程序可以为我可靠地生成切片,并为每个生成的切片提供必要的缩放和坐标和/或如果我提供缩放和坐标,给我正确的切片?

一旦你收集到正确的信息,是否可以很容易地编写一个磁贴服务器来实现它?也许那里有我可以用作模型的源代码?(我发现了一个瓦服务器在http://blog.gmapify.fr/a-map-tile-server-part-2-understanding-google-maps-tile-overlays-and-building-up-a-tile-server这肯定是有帮助的,但它不提供来自源图像的图块,所以我必须至少计算出那部分.​​.....)

或者也许有一步一步的算法我可以手动跟随,如果这更直接?(因为它只有一个图像,并且它覆盖了地图上可能是一平方英里的区域,如果不是这样的话,手动执行它可能是可行的.)

google-maps tile google-maps-api-3

14
推荐指数
2
解决办法
3万
查看次数

如何在C#中重复图像

我有一个具有特定模式的图像.如何使用GDI在另一个图像中重复它?
有没有办法在GDI中做到这一点?

c# image-manipulation image tile

13
推荐指数
1
解决办法
5992
查看次数

NES编程 - 名称表?

我想知道NES如何显示其图形肌肉.我已经在线研究过这些东西,并通过它阅读,但我想知道最后一件事:Nametables.

基本上,根据我的阅读,NES名称表中的每个8x8块指向模式表中的一个位置,该位置保存图形内存.此外,名称表还有一个属性表,为每个16x16块设置特定的调色板.他们像这样联系在一起:

(假设16个8x8块)Nametable,ABCD =指向精灵数据的指针:

ABBB
CDCC
DDDD
DDDD
Run Code Online (Sandbox Code Playgroud)

属性表,1 2 3 =指向调色板数据的指针,<左侧引用值,上方^,左侧和上方:

1<2<
^'^'
3<3<
^'^'
Run Code Online (Sandbox Code Playgroud)

因此,在上面的示例中,块将被着色

1A 1B 2B 2B

1C 1D 2C 2C

3D 3D 3D 3D

3D 3D 3D 3D
Run Code Online (Sandbox Code Playgroud)

现在,如果我在固定的屏幕上有这个 - 它很棒!因为NES分辨率是256x240像素.现在,这些表如何调整滚动?

因为Nametable 0可以滚动到Nametable 1,如果你继续滚动Nametable 0将再次回滚.我得到了.但我没有得到的是如何滚动属性表包装.从我在网上看到的情况来看,它分配属性的16x16块会导致屏幕边缘区域的颜色失真(如左右滚动时反映,SMB3反之亦然).

我关心的是我了解如何滚动名称表,但是如何滚动属性表?对于intsance,如果我在屏幕的左侧有一个绿色块,将屏幕向右移动理论上应该使右侧的瓷砖变为绿色,直到它们移动到框架中,然后它们将恢复到他们的正常颜色.

~~~~编辑:我想指出我知道扫描线,X和Y.这个想法刚刚贯穿我的脑海.

假设我的扫描线Y为10.这意味着我正在水平地读取10个值到我的名字表中.这意味着我的第一列不在屏幕上,因为它只有8的像素宽度.但是,颜色属性保持不变,因为它的宽度为16.

假设整个列的颜色属性为绿色,我认为对用户来说是正确的,屏幕左边的前6个像素是绿色,屏幕最右边的10个也应该是绿色的?那么,根据屏幕,左边的假设我是否正确?

sprite tile nintendo graphic

12
推荐指数
1
解决办法
2318
查看次数

使用ImageMagick重复或"平铺"图像

如何使用ImageMagick平铺图像?我不认为我可以使用,montage因为我希望列移位原始图像高度的50%.

显示我正在尝试做的事情的示例可能更容易:

从...开始:

在此输入图像描述

结束于:

在此输入图像描述

谢谢!

image imagemagick tile montage

12
推荐指数
3
解决办法
8361
查看次数