📅  最后修改于: 2021-01-02 09:52:02             🧑  作者: Mango
JSON( JavaScript对象表示法)是一种轻量级的数据可互换格式。读写很简单。机器很容易解析和生成。它基于JavaScript编程语言(标准ECMA-262第3版-1999年12月)的子集。JSON是一种完全独立于语言的文本格式,但是它使用C语言家族的程序员所熟悉的约定,并且还包括C,C++,C#,Java,JavaScript,Perl, Python等。这些属性使JSON成为理想的数据交换语言。
JSON建立在两种结构上:
这些是通用数据结构。几乎所有现代编程语言都以一种形式和另一种形式支持它们。有意义的是,也基于结构与编程语言交换的数据格式。
在JSON中,它们采用以下形式:
一个对象是一组无序的值/名称对。对象以{(左括号)开始,以}(右括号)结束。每个名称后跟有:(冒号) ,而名称/值对则由(逗号)选择。
该数组是值的有序集合。数组以[(左大括号)和](右大括号)开头。值之间用(逗号)分隔。
[值1,值2 ,?]
p="" {“键1”:值,“键2”:值?}<="">
脚步
我们现在有一个开放的Godot引擎。
首先,转到res:// ,然后在文件管理器中单击“打开”。
然后,该文件将打开。
然后在这里我们使用ATOM IDE。
首先,安装Atom IDE ,然后对其进行处理。
Atom是适用于macOS,Linux和Microsoft Windows的免费开放源代码文本和源代码编辑器,支持由Node.js编写的插件以及由GitHub开发的嵌入式Git Control。 Atom是使用Web技术构建的桌面应用程序。
ATOM IDE改进了语言集成。 ATOM用于获取更智能的上下文感知自动完成功能,代码导航功能(如大纲视图),进行定义,查找所有引用以及悬停到,显示信息,诊断(错误和警告_)和文档格式。
首先,进入ATOM的官方网站( atom.io )进行下载。
我们可以下载以单击“下载”按钮。
这是一个免费的开源想法,我们可以使用Visual Studio Code。打开atom并保存该文件夹,以免重新打开该文件夹。
保存后,我们必须返回到Godot游戏引擎的脚本选项卡。我们在脚本中创建的故事(在上一教程中已对此进行了评论) ,在这里我们无需对其进行注释。然后将其粘贴到ATOM IDE中。
然后再次将其从Godot的脚本选项卡中删除。
之后,我们必须在此处从JSON添加一些内容。
extends Control
var player_words=[]
var current_story = {}
onready var PlayerText= $VBoxContainer/HBoxContainer/PlayerText
onready var DisplayText= $VBoxContainer/DisplayText
func _ready():
set_current_story()
DisplayText.text="Welcome all of u in the world of game and have a wondeful time!"
check_player_words_length()
PlayerText.grab_focus()
func set_current_story():
var stories = get_from_json("StoryBook.json")
randomize()
current_story= stories[randi()%stories.size()]
#var stories = $StoryBook.get_child_count() # is used for how many children u have as here are 4 chilren 0, 1, 2, 3.
#var selected_story=randi()%stories
#current_story.prompts= $StoryBook.get_child(selected_story).prompts
#current_story.story= $StoryBook.get_child(selected_story).story
#current_story=template[randi()% template.size()]
func get_from_json(filename):
var file = File.new()
file.open(filename, File.Read)
var text= file.get_as_text()
var data= parse_json(text)
file.close()
return data
func _on_PlayerText_text_entered(new_text):
add_to_player_words()
func _on_TextureButton_pressed():
if is_story_done():
get_tree().reload_current_scene()
else:
add_to_player_words()
func add_to_player_words():
player_words.append(PlayerText.text)
DisplayText.text=""
PlayerText.clear()
check_player_words_length()
func is_story_done():
return player_words.size() == current_story.prompts.size()
func check_player_words_length():
if is_story_done():
end_game()
else:
prompt_player()
func tell_story():
DisplayText.text= current_story.story % player_words
func prompt_player():
DisplayText.text += "May I have" +current_story.prompts[player_words.size()]+"please?"
func end_game():
PlayerText.queue_free()
$VBoxContainer/HBoxContainer/Label.text="Again!"
tell_story()
输出:
在下一个教程中,我们将学习如何在Godot中导出项目。
>