我正在使用直接嵌入我的网站的 HTML5 和 JavaScript 创建一个网络 RPG。游戏将是与电脑对手的单人游戏……设计将是自上而下的 2D,塞尔达风格。这将是实时的,但与计算机玩家的对话将被编写脚本......他们会说些什么,并且会为您提供一些响应选项。
我正在考虑用 XML 编写对话框,但有人告诉我应该使用 JSON,因为使用 JavaScript 更容易解析。
我在 XML 中看到了Abstract Chaos 的答案......
<?xml version="1.0" encoding="UTF-8"?>
<npcs>
<npc name="Abstract">
<dialogue>
<text>Welcome #{PlayerName} to Stack Exchange, What would you like to know? </text>
<options>
<option action="dialogue5">Tell me about Stack Exchange?</option>
<option action="quest1">Give me quest</option>
<option action="object1">Give me object</option>
</options>
</dialogue>
<dialogue id="5">
<text>Stack Exchange is a fast-growing network of 87 question and answer sites on diverse topics</text>
<text>We build libraries of high-quality questions and answers, focused on the most important topics in each area of expertise</text>
</dialogue>
</npc>
</npcs>
并且想知道如何在 JSON 中实现相同的布局......
我的问题是:
- 如何在 JSON 中布局 RPG 对话框脚本以供 JavaScript 解析?
- 我可以举一个例子,说明在特定条件下如何使用 JavaScript 逻辑解析 JSON(例如:NPC 问问题:“你能帮帮我吗?”,JSON 应该有“是”和“否”选项,这可以基于如果玩家确实有该技能可以提供帮助)。
- JSON对话框文本将存储在我的项目文件夹中的一个单独的“对话框”文件夹中......因此需要从外部访问
我发现的关于如何布局和解析 JSON 的唯一内容是:
var json = '{"result":true,"count":1}',
obj = JSON && JSON.parse(json) || $.parseJSON(json);
alert(obj.result);
但它没有 XML 似乎具有的整洁因素。
任何帮助,将不胜感激...
谢谢!
尝试加载和警告外部 JSON 文本文件不起作用:
HTML:
<html>
<head>
<title>Working with JSON</title>
<script src="jquery.js"></script>
<script>
(function() {
var data = "/JSON_TEXT.txt";
var first_q = data.npcs[0].dialogs[0];
alert(first_q.text);
}());
</script>
</head>
<body>
</body>
</html>
JSON纯文本文件:JSON_TEXT.txt
'npcs': [
{
'name': 'Abstract',
'dialogs': [
{
'text': 'Welcome',
'options': [
'df', 'f'
]
}
]
}
]