从名称列表中抽取项目

时间:2018-07-07 13:38:06

标签: c# monogame

我在单人游戏中工作,试图从名称列表中提取一个项目:

//fetched json string from database
ie.[{"name":"abc","score":5}]
$database_data = $row['JSONstring'];

//decode both string the database data string and the new one which is to be merged
$json_decode_database_data = json_decode($database_data, true);
$json_decode_new_data = json_decode($database_data, true);

//merge both the decoded array by array_merge() 
$required_json_data = array_merge($json_decode_data, $new_json_string); 

//at last encode required json data
$updated_json_data = json_encode($required_json_data); 

// You will get required json data
[{"name":"abc","score":5},{"name":"efg","score":8},{"name":"xyz","score":6}]

这是列表。这是在另一个脚本中,然后在其中绘制它们:

    private void MakeCards()
    {
        _cardsOnTable = new List<Card>()
        {
            new Card(CardCategory.Teachers, "Jelle"),
            new Card(CardCategory.Teachers, "Ed"),
            new Card(CardCategory.Teachers, "Silvan"),
            new Card(CardCategory.Teachers, "Richard"),

            new Card(CardCategory.Movies, "Forrest Grump"),
            new Card(CardCategory.Movies, "Toy Story"),
            new Card(CardCategory.Movies, "Dead Pool"),
            new Card(CardCategory.Movies, "Wolverine"),

            new Card(CardCategory.Places, "Toronto"),
            new Card(CardCategory.Places, "Rome"),
            new Card(CardCategory.Places, "New York"),
            new Card(CardCategory.Places, "Amsterdam")
        };
我试图在名称上绘制对象,但首先我需要从列表项中获取名称。因为我的png文件的名称与列表项的名称完全相同(列表项为字符串名称)

有人知道我该怎么称呼他们并解决这个问题吗?

再说一次,我在draw函数中绘制它,我只是在那儿调用addblanccard。而且我还没有关于抽奖的代码。

1 个答案:

答案 0 :(得分:0)

假设您将卡的名称存储在Card类的“名称”的可公开访问的属性中,则可以这样访问名称:

var name = _game._cardsOnTable[i].Name;

但是,访问名称的潜在问题可能是由于数据覆盖引起的。在您的for循环中,您将用新卡替换列表中的所有卡,而无需返回原始对象/名称:

_game._cardsOnTable[i] = new Card(cardBackTexture);

因此,每次您尝试在覆盖后访问卡名时,很可能会获得默认名称字符串(无论您将其设置为什么)。