【发布时间】:2019-01-08 00:01:28
【问题描述】:
我正在使用 CocoSharp.PCL.Shared Nuget 版本 1.6.2,我正在尝试获取 tile 属性。
这是 TileSet.tsx:
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.2" tiledversion="1.2.1" name="wood_tileset" tilewidth="32" tileheight="32" tilecount="256" columns="16">
<image source="wood_tileset.png" width="512" height="512"/>
<tile id="68">
<properties>
<property name="IsTreasure" value="true"/>
</properties>
</tile>
</tileset>
我调用来获取我的财产的函数:
void HandleCustomTilePropertyAt(int worldX, int worldY, CCTileMapLayer layer)
{
CCTileMapCoordinates tileAtXy = layer.ClosestTileCoordAtNodePosition(new CCPoint(worldX, worldY));
CCTileGidAndFlags info = layer.TileGIDAndFlags(tileAtXy.Column, tileAtXy.Row);
if (info != null && info.Gid == 68)
{
Dictionary<string, string> properties = null;
try
{
properties = tileMap.TilePropertiesForGID(info.Gid);
}
catch
{
// CocosSharp
}
if (properties != null && properties.ContainsKey("IsTreasure") && properties["IsTreasure"] == "true" )
{
layer.RemoveTile(tileAtXy);
// todo: Create a treasure chest entity
}
}
}
问题是:properties = tileMap.TilePropertiesForGID(info.Gid); 总是返回 null。
但是如果我打破并查看非公共变量,我可以看到我的 tile 的属性:
我做错了什么?
【问题讨论】:
-
老实说我没有正确理解你的问题,你能说清楚一点吗?
-
我的问题是“属性”始终为空。但它应该包含 xml 文件中的所有属性。 Cocosharp 库坏了吗?
-
不,据我所知,它不是正常工作
-
好吧,我不是回答这个问题的合适人选,我知道在原生 iOS 中你使用 cocos 2D 和 3D 进行游戏开发,我不确定 xamarin 是否有等价物
-
CocosSharp ,MonoGame 和 UrhoSharp 用于跨平台开发,可以参考这个链接。 docs.microsoft.com/en-us/xamarin/graphics-games/monogame
标签: xamarin cocossharp