目录

我的学习分享

记录精彩的程序人生

X

How To Use Tiled To Create Stendhal Maps

https://stendhalgame.org/wiki/HowToUseTiledToCreateStendhalMaps


如何使用Tiled

Tiled是一个tile编辑器,支持图层和不同的tileset。 您可以在http://www.mapeditor.org/下载最新版本。

如果您还没有Stendhal的地图文件,请按照以下说明设置包含最新源代码和地图文件的开发环境:Eclipse上的Stendhal

如何创建一个新地图

TODO:将这些屏幕截图更新为最新版本的Tiled
在您创建新地图之前,我建议您打开一些现有地图并查看它们是如何构建的。 Stendhal已经有很多地方可以使用一些改进或增加。
Tiled1.png
Figure 1: The Tiled map editor
首先,您需要加载template.tmx地图文件并将地图调整为所需大小。
单击文件,然后选择打开,找到您解压缩stendhal_mapeditor-2.00.zip的位置找到template.tmx并单击打开
Tiled2.png
Figure 2: How to open the template map
我们将开发64x64(64个瓦片,64个瓦片)地图。 在调整大小之前,首先确保所有图层都可见。 使用侧面板对话框中的“显示”复选框执行此操作。
Tiled3a.png
Figure 3: Layers view
然后单击Map并选择Resize。 注意,一个64x64的地图并不大(玩家需要大约40秒从一端移动到另一端)但是它对于我们的例子足够大。
Tiled3.png
Figure 4: The Map Menu
正如您在调整大小对话框中看到的那样,您可以调整地图的大小,甚至可以将当前地图放置在新地图大小的任意位置。 因此,您可以随时调整地图大小。 在调整任何地图大小之前,请确保所有图层都可见。
Tiled3b.png
Figure 4: The resize dialog
不要更改图层名称:

  • protection
  • collision
  • objects
  • 4_roof_add
  • 3_roof
  • 2_object
  • 1_terrain
  • 0_floor
    等模板文件上看到的等等。
    现在将此地图保存为Level 0 / semos / small_village.tmx,方法是单击File并选择Save as ....
    注意:您需要输入扩展名为.tmx的完整名称。
    Tiled5.png
    Figure 6: Save As...

Tilesets

地图template.tmx没有预装任何tilesets。 要加载图块集,请单击Tilesets并选择New Tileset ....现在勾选Reference tileset image ...旁边的框,然后单击Browse按钮。 这使您可以选择图块集图像。 它们都位于tiles /tileset/文件夹中。
Tiled6.png
找到你想要的东西应该很容易,因为tileset根据它们的用途被拆分成文件夹:

building
    window
    column
    decoration
    door
    entrance
    fence
    roof
    stairs
    wall
ground
    fire
    ice
    indoor
    ladder
    ridge
    rock
    water
item
    armor
    banner
    candle
    chemistry
    chest
    corpse
    drink
    food
    furniture
        bathroom bed carpet chair clock crockery curtain light other picture shelve sink statue table
    gothic
    pot
    statue
    textile
    weapon
logic
    creature
    item
object (for larger items that don't belong anywhere else)
plant
    bush
    flower
    indoor
    stump
    tree
sky
    cloud

我们需要草,所以我们去tileset/ground并选择ground.png
Tiled7.png
任何不在tileset /中的图像都不应该使用。 如果您愿意,可以填写Tileset名称以帮助您稍后找到它。 你可以保留原样。 然后单击“确定”,您的图块集即可使用!
Tiled8.png
单击Tiled应用程序左下角的方块以显示调色板选择器。 稍后会有更多内容,请继续阅读..

Layers

除了4_roof_add(可选)之外,不能重命名地图图层并且必须全部存在。 但是,任何图层都可以为空。

这五个层是托管游戏图形的层:

  • 0_floor
  • 1_terrain
  • 2_objects
  • 3_roof
  • 4_roof_add optional layer

逻辑层

  • objects
  • collision
  • protection

这基本上意味着靠近屏幕底部的任何物体,即我们的伪3D世界中的前景将位于其他物体的顶部,并且屋顶和屋顶的添加将高于一切。

好的,现在让我们编辑。

Editing the map

选择0_floor图层。

我们的村庄将是一个富裕的村庄,所以让我们寻找一个漂亮的地砖。

点击填充并用您选择的瓷砖填充地板。
Tiled9.png
Figure 7: The ground on the floor layer

好的,但地图看起来仍然太简单了。

所以现在让我们为地形图层(鲜花和灌木丛)添加一些细节。 我们需要加载这些图块,所以重复步骤加载地面图块,但要查找tileset/plant/bush/bushes.png和tileset/plant/flower/daisy_white.png。 确保选择1_terrain图层。
然后在左下角你会看到一个带有瓷砖的小方块。 单击此按钮将打开一个tile选择器对话框。 在右侧,您将看到可用的Stendhal Tilesets,左侧是所有瓷砖。 提示:如果您将托盘拖出并使其变大,最终可以将所有类似的瓷砖对齐(例如,组成树的瓷砖将全部在一起),这将使您的生活更轻松!
点缀一些灌木和鲜花
Tiled10.png
Figure 8: Adding some plants

我们需要一个路径,所以我们将tileset/ground/green_paving_3.png添加到我们的调色板中,然后在1_terrain上绘制一个。 我们现在改为2_object层(或者地形也可以)将墓葬添加到坟墓场。
Tiled11.png
Figure 9: adding a path

现在让我们为我们的村庄增加房屋和一棵树。 正如您所看到的,添加元素并不难,您只需在图层之间切换即可。

现在为树。 树比房子复杂一点,因为它们分为两层:1和2。
确保树的上半部分始终位于3_roof或4_roof_add上。 这意味着当它们站在“后面”时它会被玩家吸引。

首先我们添加tileset / plant / tree / spruce.png,然后将其下半部分绘制到1_terrain层。
Tiled12.png
Figure 10: The foot of the tree on the terrain layer

现在切换到屋顶层。 屋顶层用于在游戏中的玩家和生物之上绘制的物体。

在屋顶层绘制树的上部。
Tiled13.png
Figure 11: The upper part of the tree on the roof layer

我们来练习吧。 让我们添加另一棵树。
Tiled14.png
Figure 12: The bottom of our second tree

还记得如何处理两层? 确保树的顶部位于屋顶层。
Tiled15.png
Figure 13: The Top of our second tree

一个村庄不是没有房子的村庄。 我们来画一个。 从墙上开始。
Tiled16.png
Figure 14: The start of a house - a wall

这次是在地形上绘制的,因此我们可以为2_object添加一些装饰,使其更有趣。
Tiled17.png
Figure 15: Wall decorations added

屋顶可以在3_roof上绘制,以便在房子后面行走的玩家将被它覆盖。 对于我们的地图,我们还在那里添加了门的顶部,因为窗口边框已经使用了2_object中的空间。
Tiled18.png
Figure 16: House with a roof

蓝色屋顶的前部没有像其他部分那样的边框。 此外,我们还有另一个问题:长角形头骨被门顶部分覆盖。 幸运的是还剩下一个地图图层。 所以我们将缺失的边框绘制到4_roof_add,并将头骨移到那里。
Tiled19.png
Figure 17: Finished house

还在那儿? 好的,现在让我们添加很多细节来制作一张好地图!
Tiled20.png
Figure 18: The map with more details

自己完成地图:)

最后,我们需要添加两个更重要的事情:

     对象(实体,活动游戏对象,包括门户,标志,NPC等)
     碰撞
     保护(定义非pvp区域)

碰撞层确定什么是可通过的,什么不通过。
您需要添加新的tileset tileset/logic/collision.png然后选择红色方块。 要定义不能行进的内容,请在每个不可通过的图块上的“碰撞”图层中绘制一个红色正方形。 将此碰撞图层的不透明度拖动到约30%是有帮助的。
Tiled21.png
Figure 19: Collision Tile selected and we have marked the house

Tiled22.png
Figure 20: The completed collision map

完成此操作后,我们必须在Stendhal服务器中添加真实实体的对象。 像NPC,一些门户,生物等等......注意我们正在研究的是什么层。 要添加怪物,请从对象图层中的tileset/logic/creature/中选择它们。

我们将添加一些羊,羊食物和几只鸡。
Tiled23.png
Figure 21: The active objects have been added and can been seen in white

我们想要保护整个区域,我们添加tileset tileset/logic/protection.png并填充保护层
Tiled24.png
Figure 22: The finished map with the protection layer.

你完成了!:)

现在,去构建自己的地图。

请注意,如果您在工作期间发现某些重要的瓷砖丢失,请创建瓷砖并将其发送给我们,以便每个人都可以获得并可以看到您的瓷砖。

Some suggestions when making interiors maps

如果您要为Stendhal创建地图,请遵循以下简单指南:

  • The walls have two tiles. The main and the bricks. The bricks goes inside.
  • Put a black space between rooms like in semos hall
  • On buildings Look from outside the building. If it's wide and small for example 10 tiles width and 5 height, make the interior wide and smallX2 like close to 20X10
  • If you enter the map from the south, make the door of the interior also at the south, etc.
  • When you put the portals in for new levels, interiors need only the plain white tile saying 'Portal' (even if you are going upstairs). This is because all interior portals are coded by hand so they need the plain white one, not an arrow pointing up or down.
  • To help you understand and to have similar approach, take a look on similar dungeons, outside houses or interiors

How to use the map in Stendhal

要将地图添加到Stendhal,您需要编写一些XML代码,但不要担心。 很简单!。

将区域添加到data/conf/zones.xml,如如何将新映射添加到服务器中所述

最后,如果您想通过添加NPC或其他内容来微调地图,只需创建map.java的新文件名基本名称(在我们的示例中是您的区域)并进行编辑。 请参阅同一文件夹中的其他文件以了解如何执行此操作,以及如何将新映射添加到服务器中的更多说明

Trouble shooting

  • 如果您要提交此内容以包含在游戏中,请编辑tilesets的路径以使其正确。通常是“../../tileset/XX/YY.png”。 最简单的方法是在文本编辑器中打开.tmx文件。
  • 平铺只会调整可见图层的大小。 如果要调整地图大小,请确保在调整大小之前显示所有图层(选中“显示”复选框)。 但不要担心,如果您忘记这样做,您可以在文本编辑器中打开.tmx文件,并手动更改已遗漏的图层的大小。

Danter已经制作了一个扩展教程,专注于对stendhal地图格式所做的更改以及他使用的一些技术,请查看以下内容:
How To Use Tiled To Create Stendhal Maps: Continued