## 市场
:-: ![Marketplace Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/tools_marketplacewindow.png)
**市场(Marketplace)**是 YoYo Games 在线购买和出售资产包(package)的市场。 资产包可以是与*GameMaker Studio 2*相关的任何内容,即:精灵、脚本、着色器,甚至是完整的游戏引擎或框架。 为了能够创建、购买和销售资产包,你必须首先在市场上作为发布者注册并通过*GameMaker Studio 2*登录(这将在你登录该程序时自动登录)或从[Marketplace](https://marketplace.yoyogames.com/)主页登录。 你可以从 YoYo Games 知识库[市场 - 设置发布者帐户](http://help.yoyogames.com/entries/53343873)文章中找到有关如何成为发布者的完整详细信息。
**注意**: 为了能够创建或使用资产包,你**必须已经创建用户配置文件证书**。你可以从**市场偏好设置(Marketplace Preferences)**执行此操作,[此页面](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/1_overview/1_getting_started/preferences/prefs_marketplace.html)上对此进行了说明。
在此窗口中,你可以从页面右上角访问你的用户帐户(以及它链接的发布者帐户),你还可以浏览和购买或下载资产包以供使用。你可以从 YoYo 游戏帮助中心[市场 - 购买资产包](http://help.yoyogames.com/entries/70186988)文章中找到有关如何购买和下载资产包的完整信息。
你可以从*GameMaker Studio 2*IDE 顶部的下拉**市场**菜单轻松访问市场,它可以让你打开资产包库以及创建自己的(资产或教程)并更新现有资产包。下面将详细介绍这些想法:
### 库
**库**窗口显示你已购买的资产包,并为你提供下载和将其添加到项目中的选项。
:-: ![Marketplace Library](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/tools_marketplacelibrary.png)
左侧是不同的类别过滤器,你可以使用这些过滤器查看每个过滤器中的内容,然后在中间列出库中的资产列表。可以选择其中每一项查看它的功能概述(在右侧),并且它们都具有在项目中查看、下载或安装资产包的图标。请注意,主窗口顶部还有两个额外的过滤器,你可以选择*仅*查看专门为*GameMaker Studio 2*创建的资产,以及仅显示已下载到你电脑上资产包。你还可以通过单击**刷新**按钮随时刷新显示的资产列表:![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_refresh.png)
要将资产包添加到当前项目,必须先单击**下载**按钮下载它,然后在下载完成后,单击**导入**按钮将其添加到项目中。以这种方式添加资产包将在当前项目中创建*扩展*,并要求你从资产包中的不同资源中选择要添加的资产包(或者你可以导入所有资源)。你还可以选择**将所有资源导入到一个新项目**的选项,而不是将资产添加到当前项目,*GameMaker Studio 2*将提示你提供新项目名称并将资产保存在该项目中。请注意,如果从**起始页**直接进入**库**,你会发现大多数资产无法单独添加,而是强制你使用**全部添加**按钮。这是因为你没有要添加资产的项目,因此*GameMaker Studio 2*必须创建一个新项目,以便将包中的所有资产添加进去(当你单击*导入*按钮时,系统将提示你保存具有你提供名称的新项目)。
:-: ![Marketplace Import Resources](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/tools_marketplaceimport.png)
将资产添加到资源树后,你可以继续在中使用它们,就像你自己创建的资产一样。请注意,*从市场下载的资产仅供个人使用,不能与第三方共享*\- 尽管你可以将其备份并将其复制到其他位置以确保安全 - 除非资产具有相反的自定义最终用户许可协议(EULA)。
**注意**:为市场创建资产包的人员非常难以为你创建一个很好的资源,因此请在测试它们或使用它们时考虑对你购买的资产进行评级。这将鼓励开发人员,并且对于其他用户而言,这也是可用资产质量的有用指南。 你可以从 “库” 窗口给下载的资产轻松评级。
### 创建资产包
从 IDE 菜单中选择**创建资产包**选项时,将转到以下工作空间:
:-: ![Marketplace Create Package](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/tools_marketplace_createpackage.png)
在这里,你必须首先选择要发布资产包的**发布者**身份(你应该从[发布者仪表板(Publisher Dashboard)](http://help.yoyogames.com/entries/53343873)中设置),然后提供**显示名称(Display Name)**和**版本号(Version Number)**。然后将根据所使用的显示名称和发布者帐户为你创建包 ID,但只要你愿意,只要它保持反向 URL 格式,你就可以将其编辑为其他内容。然后,你需要选择要制作的资产包类型:
* **资产(Asset)**: 这是你希望在市场上销售的资产(精灵、脚本、物体等)的集合
* **演示(Demo)**: 演示一些概念或游戏理念
* **教程(Tutorial)**: 从*GameMaker Studio 2*IDE 中运行的教程(有关详细信息,请参阅下面的部分)
完成后,你可以使用右侧部分选择要添加到资产包中的项目中的哪些资源。 你可以添加所有资源,或仅添加其中一些资源,也可以删除你可能错误添加的资源。 假设你先前已在*GameMaker Studio 2*中创建了要上传的资产,并且当前项目包含你需要上传的所有内容。
如果你对选择的资产感到满意并希望将资产包上传到市场,只需单击底部的**确定**按钮,即可创建资产包并上传到市场。上传完成后,将打开一个新工作区,其中包含资产页面的浏览器视图供你编辑。 有关如何设置此页面的更多信息,请参阅此处的**市场清单(Market Listing)**部分:[资产清单(Listing An Asset)](http://help.yoyogames.com/hc/en-us/articles/216755548-Marketplace-Listing-An-Asset)。
**记住!**为了能够创建或使用资产包,你**必须已经创建用户配置文件证书**。你可以从**市场偏好设置(Marketplace Preferences)**执行此操作,[此页面](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/1_overview/1_getting_started/preferences/prefs_marketplace.html)上对此进行了说明。
### 创建教程
创建教程类似于创建常规资产包,现在只需添加特定的内含文件,并包含初始教程页面(和可选的视频页面)。 教程工作区看起来像这样:
:-: ![Marketplace Tutorial Package](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/tools_marketplace_createtutorial.png)
如上所述,你需要选择一个发布者,然后为你的教程提供一个名称和一个唯一 ID(反向 URL 格式),然后在 “资产包类型” 下拉列表中选择*教程*。然后,这将为你提供其他选项,以添加基本 HTML 文件以启动教程以及(可选)视频文件和 URL。视频文件应该使用市场提供的模板 - 就像本教程的其余部分一样 - 你可以在[这里](https://marketplace.yoyogames.com/assets/4785/tutorial-templates)获得,当用户加载教程时,视频将被加载到 IDE 的单独框架中。请注意,你为起始页面和视频页面提供的页面是**内含文件**中的相对路径,你可以打开资源管理器以选择除*GameMaker Studio 2*使用的默认路径以外的页面。
实际上,创建教程将要求你将[内含文件](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/1_editors/included_files.html)添加到教程项目中,并且必须以非常特定的方式添加这些文件,以便 IDE 正确检测要用于教程的文件。基本文件夹结构如下图所示:
:-: ![Marketplace Tutorial Files](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/tools_marketplace_tutorialfiles.png)
所以,我们有两个主文件夹:
* **TutorialContent**: 所有教程 HTML 文件、用于样式设置的 CSS 文件以及它们所需的图像(不是*资源*所需的图像,而是教程中显示的图像),以及如果需要视频模板,请放在此处。 例如,如果你希望将教程分成章节,也可以创建子文件夹,但是你应该至少有一个基本 HTML 文件用作教程的起始页面。
* **TutorialResources**: 此文件夹中还有两个子文件夹,用于**图像**和**声音**资源。如果你的教程要求用户添加精灵(例如)并且你希望将其包含在教程中,那么你可以将图像资源放在**Images**文件夹中。这些文件夹将导入到教程项目中,当用户打开精灵编辑器并添加图像时,资源管理器窗口的默认路径将位于此位置,使用户可以更轻松地找到必要的资产。
要使你的教程在 IDE 中工作,你*必须具有此文件夹结构*,并且具有基本 HTML 开始页面,其中包含用于样式化的 CSS 文件。可以在教程项目中使用许多特殊链接,这些链接将跳过视频的某些部分,或打开手册的特定章节或函数,这些都在市场的官方教程模板中给出。
**重要!**我们强烈建议你在尝试创建自己的教程之前[从 Marketplace 下载教程模板](https://marketplace.yoyogames.com/assets/4785/tutorial-templates)。它们包含 HTML 的所有重要部分以及 CSS 和图像的示例,以便在教程中重新创建按钮和菜单,让你可以花费更多时间在内容详情而不是如何显示内容。
一旦你设置了内含文件并提供了所需的信息,你可以单击*确定*,教程将上传到市场,完成后打开工作区的资产清单,以便你可以编辑它并添加图标、文本、屏幕截图等。一旦教程资产发布,用户就可以在[起始页](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/1_overview/2_quick_start/2_start.html)的**教程**部分找到它,可以在其中下载和安装教程。
### 更新资产包
更新教程的工作方式与创建资产包的方式完全相同,只需要指定要更新的资产包并且不能设置资产包 ID。 你应该知道显示的版本号将是*当前*版本号,并且应该适当增加,否则更新将失败(因为你不能拥有两个具有相同版本号的资产包)。
- 介绍
- 新手须知
- 版本授权
- 安装
- 更新
- 发布日志
- 所需SDK
- 账号
- 首选项设置
- 拖拽编程
- 扩展编辑器设置
- 基本项设置
- 图片编辑器设置
- 语言设置
- 市场设置
- 对象编辑器设置
- 插件设置
- 资源树设置
- 场景编辑器设置
- 运行库设置
- 样条编辑器设置
- 精灵编辑器设置
- 文本编辑器设置
- 瓷片编辑器设置
- 时间轴设置
- 输入
- 快速上手
- 概览
- 启动页
- 工作区
- 资源树
- 工作流
- 创建精灵
- 创建瓷片集
- 创建音频
- 创建对象
- 创建场景
- 编译
- 调试
- 快捷键
- 菜单
- 文件菜单
- 编辑菜单
- 构建菜单
- 窗口菜单
- 工具菜单
- 市场菜单
- 帮助菜单
- 布局菜单
- 附加信息
- 位运算符和二进制
- 命令行
- 出错信息
- 文件系统
- 导入非位图精灵
- JSDoc使用
- 微型WEB服务端
- 过时函数
- 纹理页
- 使用缓冲区
- 编辑器
- 扩展编辑器
- 字体编辑器
- 图像编辑器
- 内含文件编辑器
- 备注编辑器
- 对象编辑器
- 路径编辑器
- 场景编辑器
- 脚本编辑器
- 着色器编辑器
- 音频编辑器
- 精灵编辑器
- 瓷片集编辑器
- 时间轴编辑器
- 对象可用事件
- 异步事件
- 绘制事件
- 手势事件
- 其它
- 调试管理器
- 设备管理器
- YoYo资源市场
- 输出停靠栏
- 项目图生成器
- 最近使用窗口
- 远程工作
- 混音器
- 版本控制
- 设置项
- 音频组
- 配置项
- 跨平台配置
- 纹理组
- 游戏配置选项
- AmazonFire 配置
- Android配置
- HTML5配置
- iOS配置
- Linux配置
- Mac配置
- Windows配置
- WindowsUWP配置
- 脚本编程
- 拖放编程概览
- 拖放编程功能索引
- GML概览
- 代码
- 数组
- array_create
- array_copy
- array_equals
- array_length_1d
- array_height_2d
- array_length_2d
- 赋值
- 表达式
- 数据存取
- 功能性语法
- 函数
- 脚本
- 注释
- 关键词
- 变量及作用域
- variable_global_exists
- variable_global_get
- variable_global_set
- variable_instance_exists
- variable_instance_get
- variable_instance_get_names
- variable_instance_set
- 寻址变量
- 评估顺序
- 数据类型
- is_array
- is_bool
- is_int32
- is_int64
- is_matrix
- is_ptr
- is_real
- is_string
- is_undefined
- is_vec3
- is_vec4
- 变元计数
- 指针
- 内置变量属性
- async_load
- health
- lives
- score
- GML函数索引
- asset_get_index
- asset_get_type
- Compatibility_Functions
- Asynchronous Functions
- Audio
- Buffers
- Cameras And Display (摄像机和显示)
- Cameras(摄像机)
- camera_apply
- camera_create
- camera_create_view
- camera_destroy
- camera_get_active
- camera_get_begin_script
- camera_get_default
- camera_get_end_script
- camera_get_proj_mat
- camera_get_update_script
- camera_get_view_angle
- camera_get_view_border_x
- camera_get_view_border_y
- camera_get_view_height
- camera_get_view_mat
- camera_get_view_speed_x
- camera_get_view_speed_y
- camera_get_view_target
- camera_get_view_width
- camera_get_view_x
- camera_get_view_y
- camera_set_begin_script
- camera_set_default
- camera_set_end_script
- camera_set_proj_mat
- camera_set_update_script
- camera_set_view_angle
- camera_set_view_border
- camera_set_view_mat
- camera_set_view_pos
- camera_set_view_size
- camera_set_view_speed
- camera_set_view_target
- view_camera
- view_current
- view_enabled
- view_get_camera
- view_get_hport
- view_get_surface_id
- view_get_visible
- view_get_wport
- view_get_xport
- view_get_yport
- view_hport
- view_set_camera
- view_set_hport
- view_set_surface_id
- view_set_visible
- view_set_wport
- view_set_xport
- view_set_yport
- view_surface_id
- view_visible
- view_wport
- view_xport
- view_yport
- The Screen Display
- Controls
- Data_Structures(数据结构)
- ds_exists
- ds_set_precision
- DS Grids
- DS Lists(列表)
- ds_list_create
- ds_list_destroy
- ds_list_clear
- ds_list_empty
- ds_list_size
- ds_list_add
- ds_list_set
- ds_list_delete
- ds_list_find_index
- ds_list_find_value
- ds_list_insert
- ds_list_replace
- ds_list_shuffle
- ds_list_sort
- ds_list_copy
- ds_list_read
- ds_list_write
- ds_list_mark_as_list
- ds_list_mark_as_map
- DS Maps(映射表)
- ds_map_exists
- ds_map_create
- ds_map_add
- ds_map_clear
- ds_map_copy
- ds_map_replace
- ds_map_delete
- ds_map_empty
- ds_map_size
- ds_map_find_first
- ds_map_find_last
- ds_map_find_next
- ds_map_find_previous
- ds_map_find_value
- ds_map_read
- ds_map_write
- ds_map_destroy
- ds_map_secure_save
- ds_map_secure_save_buffer
- ds_map_secure_load
- ds_map_secure_load_buffer
- ds_map_add_list
- ds_map_add_map
- ds_map_replace_list
- ds_map_replace_map
- DS Priority Queues
- DS Queues
- DS Stacks
- Debugging
- Drawing
- draw_enable_drawevent
- draw_flush
- Colour(颜色)
- colour_get_blue
- colour_get_green
- colour_get_hue
- colour_get_red
- colour_get_saturation
- colour_get_value
- draw_clear
- draw_clear_alpha
- draw_get_alpha
- draw_get_colour
- draw_getpixel
- draw_getpixel_ext
- draw_set_alpha
- draw_set_colour
- make_colour_hsv
- make_colour_rgb
- merge_colour
- Forms
- draw_arrow
- draw_button
- draw_circle
- draw_circle_colour
- draw_ellipse
- draw_ellipse_colour
- draw_healthbar
- draw_line
- draw_line_colour
- draw_line_width
- draw_line_width_colour
- draw_path
- draw_point
- draw_point_colour
- draw_rectangle
- draw_rectangle_colour
- draw_roundrect
- draw_roundrect_colour
- draw_roundrect_colour_ext
- draw_roundrect_ext
- draw_set_circle_precision
- draw_triangle
- draw_triangle_colour
- GPU
- gpu_get_alphatestenable
- gpu_get_alphatestref
- gpu_get_blendenable
- gpu_get_blendmode
- gpu_get_blendmode_dest
- gpu_get_blendmode_destalpha
- gpu_get_blendmode_ext
- gpu_get_blendmode_ext_sepalpha
- gpu_get_blendmode_src
- gpu_get_blendmode_srcalpha
- gpu_get_colorwriteenable
- gpu_get_cullmode
- gpu_get_fog
- gpu_get_state
- gpu_get_texfilter
- gpu_get_texfilter_ext
- gpu_get_texrepeat
- gpu_get_texrepeat_ext
- gpu_get_zfunc
- gpu_get_ztestenable
- gpu_get_zwriteenable
- gpu_pop_state
- gpu_push_state
- gpu_set_alphatestenable
- gpu_set_alphatestref
- gpu_set_blendenable
- gpu_set_blendmode
- gpu_set_blendmode_ext
- gpu_set_blendmode_ext_sepalpha
- gpu_set_colorwriteenable
- gpu_set_cullmode
- gpu_set_fog
- gpu_set_state
- gpu_set_texfilter
- gpu_set_texfilter_ext
- gpu_set_texrepeat
- gpu_set_texrepeat_ext
- gpu_set_zfunc
- gpu_set_ztestenable
- gpu_set_zwriteenable
- Lighting
- draw_get_lighting
- draw_light_define_ambient
- draw_light_define_direction
- draw_light_define_point
- draw_light_enable
- draw_light_get
- draw_light_get_ambient
- draw_set_lighting
- Mipmapping
- gpu_get_tex_max_aniso
- gpu_get_tex_max_aniso_ext
- gpu_get_tex_max_mip
- gpu_get_tex_max_mip_ext
- gpu_get_tex_min_mip
- gpu_get_tex_min_mip_ext
- gpu_get_tex_mip_bias
- gpu_get_tex_mip_bias_ext
- gpu_get_tex_mip_enable
- gpu_get_tex_mip_enable_ext
- gpu_get_tex_mip_filter
- gpu_get_tex_mip_filter_ext
- gpu_set_tex_max_aniso
- gpu_set_tex_max_aniso_ext
- gpu_set_tex_max_mip
- gpu_set_tex_max_mip_ext
- gpu_set_tex_min_mip
- gpu_set_tex_min_mip_ext
- gpu_set_tex_mip_bias
- gpu_set_tex_mip_bias_ext
- gpu_set_tex_mip_enable
- gpu_set_tex_mip_enable_ext
- gpu_set_tex_mip_filter
- gpu_set_tex_mip_filter_ext
- Particles
- Particle Emitters
- part_emitter_burst
- part_emitter_clear
- part_emitter_create
- part_emitter_destroy
- part_emitter_destroy_all
- part_emitter_exists
- part_emitter_region
- part_emitter_stream
- Particle Systems
- part_particles_clear
- part_particles_count
- part_particles_create
- part_particles_create_colour
- part_system_automatic_draw
- part_system_automatic_update
- part_system_clear
- part_system_create
- part_system_create_layer
- part_system_depth
- part_system_destroy
- part_system_draw_order
- part_system_drawit
- part_system_exists
- part_system_get_layer
- part_system_layer
- part_system_position
- part_system_update
- Particle Types
- part_type_alpha1
- part_type_alpha2
- part_type_alpha3
- part_type_blend
- part_type_clear
- part_type_colour_hsv
- part_type_colour_mix
- part_type_colour_rgb
- part_type_colour1
- part_type_colour2
- part_type_colour3
- part_type_create
- part_type_death
- part_type_destroy
- part_type_direction
- part_type_exists
- part_type_gravity
- part_type_life
- part_type_orientation
- part_type_scale
- part_type_shape
- part_type_size
- part_type_speed
- part_type_sprite
- part_type_step
- Simple Effects
- ef_cloud
- ef_ellipse
- ef_explosion
- ef_firework
- ef_flare
- ef_rain
- ef_ring
- ef_smoke
- ef_smokeup
- ef_snow
- ef_spark
- ef_star
- effect_clear
- effect_create_above
- effect_create_below
- Primitives(基本几何体)
- draw_primitve_begin
- draw_primitive_begin_texture
- draw_primitive_end
- draw_vertex
- draw_vertex_colour
- draw_vertex_texture
- draw_vertex_texture_colour
- Primitive Building
- vertex_argb
- vertex_begin
- vertex_colour
- vertex_create_buffer
- vertex_create_buffer_ext
- vertex_create_buffer_from_buffer
- vertex_create_buffer_from_buffer_ext
- vertex_delete_buffer
- vertex_end
- vertex_float1
- vertex_float2
- vertex_float3
- vertex_float4
- vertex_freeze
- vertex_get_buffer_size
- vertex_get_number
- vertex_normal
- vertex_position
- vertex_position_3d
- vertex_submit
- vertex_texcoord
- vertex_ubyte4
- Vertex Formats
- vertex_format_add_colour
- vertex_format_add_custom
- vertex_format_add_normal
- vertex_format_add_position
- vertex_format_add_position_3d
- vertex_format_add_textcoord
- vertex_format_begin
- vertex_format_delete
- vertex_format_end
- Sprites_and_Tiles
- draw_enable_swf_aa
- draw_get_swf_aa_level
- draw_self
- draw_set_swf_aa_level
- draw_skeleton
- draw_skeleton_collision
- draw_skeleton_instance
- draw_skeleton_time
- draw_sprite
- draw_sprite_ext
- draw_sprite_general
- draw_sprite_part
- draw_sprite_part_ext
- draw_sprite_pos
- draw_sprite_stretched
- draw_sprite_stretched_ext
- draw_sprite_tiled
- draw_sprite_tiled_ext
- draw_tile
- draw_tilemap
- Surfaces
- application_get_position
- application_surface
- application_surface_draw_enable
- application_surface_enable
- application_surface_is_enabled
- draw_surface
- draw_surface_ext
- draw_surface_general
- draw_surface_part
- draw_surface_part_ext
- draw_surface_stretched
- draw_surface_stretched_ext
- draw_surface_tiled
- draw_surface_tiled_ext
- surface_copy
- surface_copy_part
- surface_create
- surface_create_ext
- surface_exists
- surface_free
- surface_get_height
- surface_get_texture
- surface_get_width
- surface_getpixel
- surface_getpixel_ext
- surface_reset_target
- surface_resize
- surface_save
- surface_save_part
- surface_set_target
- surface_set_target_ext
- The Application Surface
- Text
- draw_highscore
- draw_set_font
- draw_set_halign
- draw_set_valign
- draw_text
- draw_text_colour
- draw_text_ext
- draw_text_ext_colour
- draw_text_ext_transformed
- draw_text_ext_transformed_colour
- draw_text_transformed
- draw_text_transformed_colour
- Textures
- draw_texture_flush
- texture_get_height
- texture_get_texel_height
- texture_get_texel_width
- texture_get_uvs
- texture_get_width
- texture_global_scale
- texture_set_stage
- File Handing
- Fonts
- Game
- In App Purchases
- Instances
- 数学运算(Maths)
- Date and Time
- 数字方法(Number Functions)
- Vector Functions
- Matrices
- Miscellaneous
- Movement and Collisions
- Networking
- Objects
- Paths
- Physics
- 场景(Rooms)
- 常规的场景函数及变量(General Room Functions And Varibales)
- 常规图层函数(General Layer Functions)
- 瓷片函数(TIlemap Tile Functions)
- 背景图层(Backgrounds)
- 精灵图层(Sprites)
- Scirpts
- Shaders
- Sprites
- Steam API
- Strings
- Timelines
- Web
- XBox_Live
- 翻译名词对照表