Browse Source

continuous translation (CN) (#264)

* update physics

* update input

* update

* update code sharing in getting-help.md

* Export Compliance

* update on file i/o

* pi / 4

* inputs

* forum url

* read only user

* html5 gamepad

* sdk api update

* update

* image properties

* update editor

* defold sdk update

* animation updates

* animation fix

* run as admin

* update bob

* update about AndroidX support

* software render

* linux-faq.md update

* 4.28.2021 updates

* Basis Universal format

* sound & mesh

* gamepad event mapping

* admob url

* Minor edit to building blocks intro text

* update gamepad & ios

* project settings

* libffi version

* scaling

* image compression

* update gamepads

* increase memory

* caching assets

* update 2021/10/6

* update 2021/10/16
blend-modes.md

* update 2021/11/12

* allow dynamic transforms update

* Bundle update

* update faq

* bullet & bob

* script properties update

* editor-styling

* build server url

* editor templates

* spine extension update

* Fix typo in the "optimizations" word in Chinese docs

* Update to material.md - Constants buffers

* Verify Graphics Calls

* H5 parameters

* OpenJDK downloads

* cn update corresponds to [pull 259](https://github.com/defold/doc/pull/259)

* application security

* porting guidelines

* update for 8f1651f

* cn update for 094bf6f

* cn update for 20fdfc5 & 6263317
COCO 3 years ago
parent
commit
5a8675108d

+ 1 - 56
docs/zh/manuals/android.md

@@ -60,7 +60,7 @@ Defold 支持创建 APK 和 AAB 文件. 从打包格式下拉菜单中选择.
 
 #### 安装 APK
 
-编辑器生成 Android 应用包 *.apk* 文件. 应用包可以通过 `adb` 工具 (见下文), 或者通过 Google Play 的 [Google Play 开发者控制台](https://play.google.com/apps/publish/) 安装到设备上.
+编辑器生成 Android 应用包 *.apk* 文件. 应用包可以通过 `adb` 工具安装到设备上, 或者通过 [Google Play 开发者控制台](https://play.google.com/apps/publish/) 发布到 Google Play 上.
 
 ```
 $ adb install Defold\ examples.apk
@@ -87,60 +87,6 @@ Defold 引擎需要一些权限来运行各种功能. 权限在 `AndroidManifest
 允许应用阻止屏幕息屏和调光. 接收通知保持亮屏时需要此权限. ([[Android 官方文档-亮屏锁定](https://developer.android.com/reference/android/Manifest.permission#WAKE_LOCK))
 
 
-## Android Debug Bridge
-
-`adb` 命令行工具是一个多功能易使用的用来与 Android 设备进行交互的工具. 可以在 Mac, Linux 或者 Windows 上下载 Android SDK Platform-Tools 来安装 `adb`.
-
-下载 Android SDK Platform-Tools 地址: https://developer.android.com/studio/releases/platform-tools. *adb* 工具就在 */platform-tools/* 里. 或者, 也通过各个平台的软件包管理器下载安装.
-
-Ubuntu Linux:
-
-```
-$ sudo apt-get install android-tools-adb
-```
-
-Fedora 18/19:
-
-```
-$ sudo yum install android-tools
-```
-
-macOS (Homebrew)
-
-```
-$ brew cask install android-platform-tools
-```
-
-通过如下代码让 `adb` 通过电脑 USB 与 Android 设备进行连接:
-
-```
-$ adb devices
-List of devices attached
-31002535c90ef000    device
-```
-
-如果连接不上, 确保在 Android 设备上开启了 *USB debugging*. 在设备 *设置* 里找 *开发者选项* (或称 *开发选项*).
-
-![Enable USB debugging](images/android/usb_debugging.png)
-
-## 应用包调试
-
-使用调试版引擎打包的应用 (即打包时选择 "Debug" 变体) 会把控制台信息全部发送至 Android 系统日志上. 使用 `adb` 工具的 `logcat` 命令访问日志. 使用标签 (`-s [标签名]`) 可以对日志信息进行过滤:
-
-```
-$ adb logcat -s "defold"
---------- beginning of /dev/log/system
---------- beginning of /dev/log/main
-I/defold  ( 6210): INFO:DLIB: SSDP started (ssdp://192.168.0.97:58089, http://0.0.0.0:38637)
-I/defold  ( 6210): INFO:ENGINE: Defold Engine 1.2.50 (8d1b912)
-I/defold  ( 6210): INFO:ENGINE: Loading data from:
-I/defold  ( 6210): INFO:ENGINE: Initialised sound device 'default'
-I/defold  ( 6210):
-D/defold  ( 6210): DEBUG:SCRIPT: Hello there, log!
-...
-```
-
-
 ## 使用 AndroidX
 AndroidX 一個較大改動就是, 不再維護 Android Support Library 了. AndroidX 應用使用雲計算功能和新庫完整取代了 Support Library. [Asset Portal](/assets) 裏的绝大多数擴展包已經支持 AndroidX. 如果希望使用旧版安卓库而不是 AndroidX, 可以主动关闭它:
 
@@ -150,6 +96,5 @@ AndroidX 一個較大改動就是, 不再維護 Android Support Library 了. And
 
 ![](images/android/enable_supportlibrary.png)
 
-
 ## 常见问题
 :[Android 问答](../shared/android-faq.md)

+ 30 - 19
docs/zh/manuals/debugging-game-and-system-logs.md

@@ -40,35 +40,46 @@ $ > ./mygame.app/Contenst/MacOS/mygame
 
 ### Android
 
-可以使用 [Android Debug Bridge (ADB) 工具](https://developer.android.com/studio/command-line/adb.html) 查看游戏和系统日志.
+可以使用 Android Debug Bridge (ADB) 工具来查看游戏和系统日志.
 
-  工具安装好之后, 通过 USB 连接你的设备, 启动控制台, 输入:
-
-  ```txt
-  cd <path_to_android_sdk>/platform-tools/
-  adb logcat
-  ```
+:[Android ADB](../shared/android-adb.md)
 
-  设备会把所有日志信息打印在当前控制台上, 包含游戏输出信息.
+  工具安装好之后, 通过 USB 连接你的设备, 启动控制台, 输入:
 
-  要只查看 Defold 输出的日志信息, 可以这么输入:
+```txt
+$ cd <path_to_android_sdk>/platform-tools/
+$ adb logcat
+```
 
-  ```txt
-  cd <path_to_android_sdk>/platform-tools/
-  adb logcat -s defold
-  ```
+设备会把所有日志信息打印在当前控制台上, 包含游戏输出信息.
+
+要想只查看 Defold 输出的日志信息, 可以这么输入:
+
+```txt
+$ cd <path_to_android_sdk>/platform-tools/
+$ adb logcat -s defold
+--------- beginning of /dev/log/system
+--------- beginning of /dev/log/main
+I/defold  ( 6210): INFO:DLIB: SSDP started (ssdp://192.168.0.97:58089, http://0.0.0.0:38637)
+I/defold  ( 6210): INFO:ENGINE: Defold Engine 1.2.50 (8d1b912)
+I/defold  ( 6210): INFO:ENGINE: Loading data from:
+I/defold  ( 6210): INFO:ENGINE: Initialised sound device 'default'
+I/defold  ( 6210):
+D/defold  ( 6210): DEBUG:SCRIPT: Hello there, log!
+...
+```
 
 ### iOS
 
 可以使用 [控制台工具](https://support.apple.com/guide/console/welcome/mac) 读取游戏和系统日志. 可以使用 LLDB 调试器连接设备上运行的游戏. 调试前确保设备上存有该应用的 “Apple Developer Provisioning Profile”. 从编辑器的打包对话框那里提供档案文件 (只能在 macOS 平台上打包 iOS 应用).
 
-  需要一个叫做 [ios-deploy](https://github.com/phonegap/ios-deploy) 的工具才能进行调试. 命令如下:
+需要一个叫做 [ios-deploy](https://github.com/phonegap/ios-deploy) 的工具才能进行调试. 命令如下:
 
-  ```txt
-  ios-deploy --debug --bundle <path_to_game.app> # 注意: 不是 .ipa 文件
-  ```
+```txt
+ios-deploy --debug --bundle <path_to_game.app> # 注意: 不是 .ipa 文件
+```
 
-  它会把应用安装到设备上, 启动应用并且把 LLDB 调试器连接到应用上. 如果不熟悉 LLDB, 参考 [LLDB 基础教程](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-basics.html).
+它会把应用安装到设备上, 启动应用并且把 LLDB 调试器连接到应用上. 如果不熟悉 LLDB, 参考 [LLDB 基础教程](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-basics.html).
 
 
 ## 从日志文件中读取日志信息
@@ -89,4 +100,4 @@ iOS
   容器被下载解压之后就可以在 *Finder* 中看到了. 右键单击容器选择 <kbd>Show Package Content</kbd>. 找到 "log.txt", 一般位于 "AppData/Documents/".
 
 Android
-: "log.txt" 的获取取决于操作系统版本和制造商. 在这里有一个简单的获取步骤: [https://stackoverflow.com/a/48077004/129360](https://stackoverflow.com/a/48077004/129360).
+: "log.txt" 的获取取决于操作系统版本和制造商. 这里有一个简单的 [步骤教程](https://stackoverflow.com/a/48077004/129360).

+ 4 - 4
docs/zh/manuals/debugging-native-code-android.md

@@ -1,11 +1,11 @@
 ---
 title: Android 平台调试
-brief: 本教程介绍了在安卓设备上调试游戏的方法.
+brief: 本教程介绍了在使用 Android Studio 调试游戏的方法.
 ---
 
 # Android 平台调试
 
-下面列出了一些在 Android 设备上调试游戏的方法
+下面介绍了如何使用 [Android Studio](https://developer.android.com/studio/), 即 Google 的 Android 操作系统的官方 IDE, 来调试游戏的方法.
 
 ## Android Studio
 
@@ -43,9 +43,9 @@ brief: 本教程介绍了在安卓设备上调试游戏的方法.
 
 * 要是动过引擎源码, 也要对引擎代码添加路径映射
 
-		* 注意一定要获取与你所用版本完全一致的引擎版本
+* 注意一定要获取与你所用版本完全一致的引擎版本
 
-			defold$ git checkout 1.2.148
+		defold$ git checkout 1.2.148
 
 * 点击 `Apply changes`
 

+ 6 - 6
docs/zh/manuals/debugging-native-code-ios.md

@@ -9,11 +9,11 @@ brief: 本教程介绍了如何使用 Xcode 进行调试.
 
 ## Xcode
 
-* 使用 bob, 加上 `--with-symbols` 选项打包应用
+* 使用 bob, 加上 `--with-symbols` 选项打包应用 ([更多详情](/manuals/debugging-native-code/#symbolicate-a-callstack)):
 
 		$ cd myproject
 		$ wget http://d.defold.com/archive/<sha1>/bob/bob.jar
-		$ java -jar bob.jar --platform armv7-darwin build --with-symbols debug --archive bundle -bo build/ios -mp <app>.mobileprovision --identity "iPhone Developer: Your Name (ID)"
+		$ java -jar bob.jar --platform armv7-darwin build --with-symbols --variant debug --archive bundle -bo build/ios -mp <app>.mobileprovision --identity "iPhone Developer: Your Name (ID)"
 
 * 安装应用, 可以通过 `Xcode`, `iTunes` 或者 [ios-deploy](https://github.com/ios-control/ios-deploy)
 
@@ -76,15 +76,15 @@ brief: 本教程介绍了如何使用 Xcode 进行调试.
 
 调试应用有如下方法
 
-* 可以使用 `Debug` -> `Attach to process...` 然后选择要调试应用
+1. 可以使用 `Debug` -> `Attach to process...` 然后选择要调试应用
 
-* 也可以选择 `Attach to process by PID or Process name`
+1. 也可以选择 `Attach to process by PID or Process name`
 
 	![select_device](images/extensions/debugging/ios/attach_to_process_name.png)
 
-	然后在设备上启动应用
+1. 从设备上启动应用
 
-* 在 `Edit Scheme` 中加入 <AppName>.app 作为可运行文件夹
+1. 在 `Edit Scheme` 中加入 <AppName>.app 作为可运行文件夹
 
 ### 调试 symbols
 

+ 14 - 15
docs/zh/manuals/debugging-native-code.md

@@ -58,7 +58,7 @@ Defold 几经测试鲜有崩溃情况出现. 但是崩溃这种事谁能保证
 如果应用是 [可调式的](/manuals/project-settings/#Android), 就可以使用 [Android Debug Bridge (ADB) 工具](https://developer.android.com/studio/command-line/adb.html) 和 `adb shell` 命令得到崩溃日志:
 
 ```
-	$ adb shell "run-as com.defold.example sh -c 'cat /data/data/com.defold.example/files/_crash'" > ./_crash
+$ adb shell "run-as com.defold.example sh -c 'cat /data/data/com.defold.example/files/_crash'" > ./_crash
 ```
 
 #### iOS
@@ -72,29 +72,28 @@ Defold 几经测试鲜有崩溃情况出现. 但是崩溃这种事谁能保证
 
 从 `_crash` 文件或者 [日志文件](/manuals/debugging-game-and-system-logs), 都可以进行代码文件映射. 即把调用堆栈里的每个地址映射到文件名和代码行, 利于寻找代码的问题.
 
-注意引擎版本要选择正确. 不然映射会错乱. 需要编译原生扩展, 命令行要加入 [--with-symbols](https://www.defold.com/manuals/bob/) 参数给 [bob](https://www.defold.com/manuals/bob/) 或者在编辑器打包对话框里点选 "Generate debug symbols" 才能下载到所需的全部数据:
+注意引擎版本要选择正确. 不然映射会错乱. 使用 [bob](https://www.defold.com/manuals/bob/) 编译时命令行加入 [--with-symbols](https://www.defold.com/manuals/bob/) 或者在编辑器打包对话框里点选 "Generate debug symbols":
 
-* iOS 与 macOS - `build.zip` 里的 `dmengine.dSYM` 文件夹下包含了调试映射数据.
-* Android 与 Linux - 可执行文件中就包含全部调试映射数据.
-* Windows - `build.zip` 里的 `dmengine.pdb` 文件中包含了调试和映射数据.
-* HTML5 - `build.zip` 里的 `dmengine.js.symbols` 文件中包含了调试和映射数据.
+* iOS - 在 `build/arm64-ios` 下的 `dmengine.dSYM.zip` 中包含有 iOS 编译用 debug symbols.
+* macOS - 在 `build/x86_64-darwin` 下的 `dmengine.dSYM.zip` 中包含有 macOS 编译用 debug symbols.
+* Android - 在打包输出目录 `projecttitle.apk.symbols/lib/` 下包含有各架构编译用 debug symbols.
+* Linux - 可执行文件本身包含 debug symbols. 
+* Windows - 在 `build/x86_64-win32` 下的 `dmengine.pdb` 中包含有 Windows 编译用 debug symbols.
+* HTML5 - 在 `build/js-web` 或 `build/wasm-web` 下的 `dmengine.js.symbols` 中包含有 HTML5 编译用 debug symbols.
 
-如果无需编译原生扩展, 那么调试用信息可以从 [Defold 下载站](http://d.defold.com) 下载到:
-
-* iOS - `engine/armv7-darwin/dmengine_release.dSYM.zip` 和 `engine/arm64-darwin/dmengine_release.dSYM.zip` 文件分别包含32位和64位调试映射数据.
-* macOS - `engine/x86_64-darwin/dmengine_release.dSYM.zip` 文件包含调试映射数据.
-* Android - `engine/armv7-android/dmengine.apk` 和 `engine/arm64-android/dmengine.apk` 游戏引擎文件分别包含32位和64位调试映射数据.
-* Linux - `engine/x86_64-linux/dmengine_release` 游戏引擎文件包含调试映射数据.
-* Windows -  `engine/x86_64-win32/dmengine_release.pdb` 文件包含调试映射数据.
-* HTML5 - `engine/js-web/dmengine_release.js.symbols` 文件包含调试映射数据.
 
 ::: 注意
 对于游戏的每个发布版本一定要保留一套对应的调试数据. 不然的话原生扩展上线以后出错误就没法调试! 为了方便查看调用堆栈, 也要保存好对应的游戏引擎.
 :::
 
+
+### 把 symbols 上传到 Google Play
+可以 [上传 debug symbols 到 Google Play](https://developer.android.com/studio/build/shrink-code#android_gradle_plugin_version_40_or_earlier_and_other_build_systems) 以便让 Google Play 上的崩溃日志显示可读的调用堆栈. 详情请见 [原生代码调试教程](/manuals/debugging-native-code).
+
+
 ### Android调用堆栈映射
 
-1. 找到编译文件夹
+1. 从编译文件夹下找到引擎文件
 
 	$ ls <project>/build/<platform>/[lib]dmengine[.exe|.so]
 

+ 3 - 1
docs/zh/manuals/extensions.md

@@ -11,12 +11,14 @@ brief: 本教程介绍了给 Defold 游戏引擎编写原生扩展的方法以
 - 与底层软件交互, 例如未提供的底层网络交互要使用 Luasocket 扩展包实现.
 - 高性能计算, 数据处理等.
 
-## 编译平台
+## 编译服务器
 
 Defold 提供了一个云端服务器编译方案. 游戏项目的各种依赖, 或者直接引用或者通过 [库项目](/manuals/libraries/) 加入, 都会变成项目内容的一部分. 没有必要重新编译特别版引擎然后分发给开发组成员, 任何成员对项目的编译运行使所有成员都能得到嵌入全部所需库的引擎程序.
 
 ![Cloud build](images/extensions/cloud_build.png)
 
+Defold 免费提供云编译服务器, 没有使用限制. 服务器托管于欧洲, 代码上传的 URL 可以在 [编辑器首选项窗口](/manuals/editor-preferences/#extensions) 进行设置, 或者用命令行工具 [bob](/manuals/bob/#usage) 设置 `--build-server` 参数进行指定. 关于云编译服务器及假设私人编译服务器的详情请参考 [GitHub 上的介绍](https://github.com/defold/extender).
+
 ## 项目结构
 
 在项目根目录下为扩展程序建立一个文件夹. 这个文件夹将包含扩展程序所需要的一切, 源代码, 外部库和资源文件. 云编译服务器解析这个结构以便分别获取所需要的各种文件.

+ 37 - 0
docs/zh/manuals/porting-guidelines.md

@@ -0,0 +1,37 @@
+---
+title: 移植指南
+brief: 本手册重点介绍了将游戏移植到新平台时需要考虑的一些事项
+---
+
+将 Defold 游戏移植到新平台通常是一个非常简单的过程. 理论上只要在 *game.project* 文件里配置好就行了, 但是处于对平台充分利用的考量还是推荐针对目标平台进行适配. 本教程包含一些通用移植的最佳实践和一些平台相关的细节.
+
+
+## 最佳实践
+
+### 输入
+确保游戏适配平台的输入法. 只要支持 [游戏手柄](/manuals/input-gamepads) 的平台就做好手柄支持! 确保游戏有一个暂停菜单 - 万一输入控制器突然断掉, 游戏有必要暂停!
+
+
+### 本地化
+本地化翻译游戏中的任何文本以及商店页面中的文本,因为这将对销售产生积极影响! 对于本地化, 确保玩家可以在游戏的不同语言之间轻松切换 (通过暂停菜单).
+
+
+### 性能
+用真机进行调试! 必要的话查找性能瓶颈然后进行优化. 可以使用 [性能分析器](/manuals/profiling) 分析找出代码性能瓶颈.
+
+
+### 屏幕分辨率
+对于具有固定方向和屏幕分辨率的平台: 检查游戏能否在目标平台屏幕分辨率和长宽比上正常运行. 对于具有可变屏幕分辨率和长宽比的平台: 检查游戏是否适用于各种屏幕分辨率和长宽比. 考虑在渲染脚本和摄像机中使用什么样的 [视口映射](/manuals/render/#default-view-projection) 最好.
+
+移动平台可以在 *game.project* 配置中锁定屏幕方向, 或者做好适配确保游戏在横向和纵向模式下都能运行.
+
+
+### Nintendo Switch
+集成目标平台代码 - 比如 Nintendo Switch 就有一个特殊的扩展包以及很多工具供用户使用
+
+Defold 的 Nintendo Switch 使用 Vulkan 作为图形后端 - 要使用 [Vulkan 图形后端](https://github.com/defold/extension-vulkan) 测试游戏.
+
+
+### HTML5
+在手机上玩网页游戏正越来越流行 - 当然前提是要确保游戏在手机浏览器可以流畅运行! 还要注意的是网页游戏要能快速载入! - 换句话说就是优化游戏体积. 同时还要考虑加载速度,以免造成不必要的玩家流失.
+

+ 33 - 0
docs/zh/shared/android-adb.md

@@ -0,0 +1,33 @@
+`adb` 命令行工具是一个多功能易使用的用来与 Android 设备进行交互的工具. 可以在 Mac, Linux 或者 Windows 上下载 Android SDK Platform-Tools 来安装 `adb`.
+
+下载 Android SDK Platform-Tools 地址: https://developer.android.com/studio/releases/platform-tools. *adb* 工具就在 */platform-tools/* 里. 或者, 也通过各个平台的软件包管理器下载安装.
+
+Ubuntu Linux 上:
+
+```
+$ sudo apt-get install android-tools-adb
+```
+
+Fedora 18/19 上:
+
+```
+$ sudo yum install android-tools
+```
+
+macOS (Homebrew) 上
+
+```
+$ brew cask install android-platform-tools
+```
+
+通过如下代码让 `adb` 通过电脑 USB 与 Android 设备进行连接:
+
+```
+$ adb devices
+List of devices attached
+31002535c90ef000    device
+```
+
+如果连接不上, 确保在 Android 设备上开启了 *USB debugging*. 在设备 *设置* 里找 *开发者选项* (或称 *开发选项*).
+
+![Enable USB debugging](images/android/usb_debugging.png)