diff --git a/.editorconfig b/.editorconfig
index 552be4bf..03bd2fa1 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -11,7 +11,7 @@ insert_final_newline = true
# Matches multiple files with brace expansion notation
# Set default charset
[*.{h,hpp,cpp}]
-charset = gb2312
+charset = utf8
# 4 space indentation
indent_style = space
diff --git a/projects/kiwano-audio/kiwano-audio.vcxproj b/projects/kiwano-audio/kiwano-audio.vcxproj
index 7836bc77..54a0883a 100644
--- a/projects/kiwano-audio/kiwano-audio.vcxproj
+++ b/projects/kiwano-audio/kiwano-audio.vcxproj
@@ -74,6 +74,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
@@ -92,6 +93,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano-imgui/kiwano-imgui.vcxproj b/projects/kiwano-imgui/kiwano-imgui.vcxproj
index 55833de5..2f1b8d03 100644
--- a/projects/kiwano-imgui/kiwano-imgui.vcxproj
+++ b/projects/kiwano-imgui/kiwano-imgui.vcxproj
@@ -73,6 +73,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
@@ -91,6 +92,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano-network/kiwano-network.vcxproj b/projects/kiwano-network/kiwano-network.vcxproj
index 6883d0be..4f6fbd77 100644
--- a/projects/kiwano-network/kiwano-network.vcxproj
+++ b/projects/kiwano-network/kiwano-network.vcxproj
@@ -69,6 +69,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
@@ -87,6 +88,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano-physics/kiwano-physics.vcxproj b/projects/kiwano-physics/kiwano-physics.vcxproj
index 8b9bb3d4..a7c96cec 100644
--- a/projects/kiwano-physics/kiwano-physics.vcxproj
+++ b/projects/kiwano-physics/kiwano-physics.vcxproj
@@ -79,6 +79,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
@@ -97,6 +98,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano/kiwano.vcxproj b/projects/kiwano/kiwano.vcxproj
index 7199f26f..4270463a 100644
--- a/projects/kiwano/kiwano.vcxproj
+++ b/projects/kiwano/kiwano.vcxproj
@@ -223,6 +223,7 @@
true
false
../../src;
+ /utf-8 %(AdditionalOptions)
Windows
@@ -241,6 +242,7 @@
true
false
../../src;
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/src/kiwano-audio/AudioEngine.h b/src/kiwano-audio/AudioEngine.h
index fd877360..c41aa2b7 100644
--- a/src/kiwano-audio/AudioEngine.h
+++ b/src/kiwano-audio/AudioEngine.h
@@ -32,7 +32,7 @@ namespace audio
/**
* \~chinese
- * \defgroup Audio 音频引擎
+ * \defgroup Audio 闊抽寮曟搸
*/
/**
@@ -42,7 +42,7 @@ namespace audio
/**
* \~chinese
- * @brief 音频引擎
+ * @brief 闊抽寮曟搸
*/
class KGE_API AudioEngine
: public Singleton
@@ -52,15 +52,15 @@ class KGE_API AudioEngine
public:
/// \~chinese
- /// @brief 开启音频设备
+ /// @brief 寮鍚煶棰戣澶
void Open();
/// \~chinese
- /// @brief 关闭音频设备
+ /// @brief 鍏抽棴闊抽璁惧
void Close();
/// \~chinese
- /// @brief 从解码器数据缓冲中创建音频对象
+ /// @brief 浠庤В鐮佸櫒鏁版嵁缂撳啿涓垱寤洪煶棰戝璞
bool CreateSound(Sound& sound, const Transcoder::Buffer& buffer);
public:
diff --git a/src/kiwano-audio/Sound.h b/src/kiwano-audio/Sound.h
index 50634eec..ab17bbf4 100644
--- a/src/kiwano-audio/Sound.h
+++ b/src/kiwano-audio/Sound.h
@@ -40,7 +40,7 @@ KGE_DECLARE_SMART_PTR(Sound);
/**
* \~chinese
- * @brief 音频对象
+ * @brief 闊抽瀵硅薄
*/
class KGE_API Sound : public virtual ObjectBase
{
@@ -48,13 +48,13 @@ class KGE_API Sound : public virtual ObjectBase
public:
/// \~chinese
- /// @brief 创建音频对象
- /// @param res 本地音频文件路径
+ /// @brief 鍒涘缓闊抽瀵硅薄
+ /// @param res 鏈湴闊抽鏂囦欢璺緞
static SoundPtr Create(String const& file_path);
/// \~chinese
- /// @brief 创建音频对象
- /// @param res 音频资源
+ /// @brief 鍒涘缓闊抽瀵硅薄
+ /// @param res 闊抽璧勬簮
static SoundPtr Create(Resource const& res);
Sound();
@@ -62,51 +62,51 @@ public:
virtual ~Sound();
/// \~chinese
- /// @brief 打开本地音频文件
- /// @param res 本地音频文件路径
+ /// @brief 鎵撳紑鏈湴闊抽鏂囦欢
+ /// @param res 鏈湴闊抽鏂囦欢璺緞
bool Load(String const& file_path);
/// \~chinese
- /// @brief 打开音频资源
- /// @param res 音频资源
+ /// @brief 鎵撳紑闊抽璧勬簮
+ /// @param res 闊抽璧勬簮
bool Load(Resource const& res);
/// \~chinese
- /// @brief 是否有效
+ /// @brief 鏄惁鏈夋晥
bool IsValid() const;
/// \~chinese
- /// @brief 播放
- /// @param loop_count 播放循环次数,设置 -1 为循环播放
+ /// @brief 鎾斁
+ /// @param loop_count 鎾斁寰幆娆℃暟锛岃缃 -1 涓哄惊鐜挱鏀
void Play(int loop_count = 0);
/// \~chinese
- /// @brief 暂停
+ /// @brief 鏆傚仠
void Pause();
/// \~chinese
- /// @brief 继续
+ /// @brief 缁х画
void Resume();
/// \~chinese
- /// @brief 停止
+ /// @brief 鍋滄
void Stop();
/// \~chinese
- /// @brief 关闭并销毁资源
+ /// @brief 鍏抽棴骞堕攢姣佽祫婧
void Close();
/// \~chinese
- /// @brief 是否正在播放
+ /// @brief 鏄惁姝e湪鎾斁
bool IsPlaying() const;
/// \~chinese
- /// @brief 获取音量
+ /// @brief 鑾峰彇闊抽噺
float GetVolume() const;
/// \~chinese
- /// @brief 设置音量
- /// @param volume 音量大小,1.0 为原始音量, 大于 1 为放大音量, 0 为最小音量
+ /// @brief 璁剧疆闊抽噺
+ /// @param volume 闊抽噺澶у皬锛1.0 涓哄師濮嬮煶閲, 澶т簬 1 涓烘斁澶ч煶閲, 0 涓烘渶灏忛煶閲
void SetVolume(float volume);
private:
diff --git a/src/kiwano-audio/SoundPlayer.h b/src/kiwano-audio/SoundPlayer.h
index e52a8a3c..740b6de0 100644
--- a/src/kiwano-audio/SoundPlayer.h
+++ b/src/kiwano-audio/SoundPlayer.h
@@ -35,13 +35,13 @@ KGE_DECLARE_SMART_PTR(SoundPlayer);
/**
* \~chinese
- * @brief 音频播放器
+ * @brief 闊抽鎾斁鍣
*/
class KGE_API SoundPlayer : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 创建音频播放器
+ /// @brief 鍒涘缓闊抽鎾斁鍣
static SoundPlayerPtr Create();
SoundPlayer();
@@ -49,66 +49,66 @@ public:
~SoundPlayer();
/// \~chinese
- /// @brief 加载本地音频文件
- /// @param file_path 本地音频文件路径
- /// @return 音频标识符
+ /// @brief 鍔犺浇鏈湴闊抽鏂囦欢
+ /// @param file_path 鏈湴闊抽鏂囦欢璺緞
+ /// @return 闊抽鏍囪瘑绗
size_t Load(String const& file_path);
/// \~chinese
- /// @brief 加载音频资源
- /// @param res 音频资源
- /// @return 音频标识符
+ /// @brief 鍔犺浇闊抽璧勬簮
+ /// @param res 闊抽璧勬簮
+ /// @return 闊抽鏍囪瘑绗
size_t Load(Resource const& res);
/// \~chinese
- /// @brief 播放音频
- /// @param id 音频标识符
- /// @param loop_count 播放循环次数,设置 -1 为循环播放
+ /// @brief 鎾斁闊抽
+ /// @param id 闊抽鏍囪瘑绗
+ /// @param loop_count 鎾斁寰幆娆℃暟锛岃缃 -1 涓哄惊鐜挱鏀
void Play(size_t id, int loop_count = 0);
/// \~chinese
- /// @brief 暂停音频
- /// @param id 音频标识符
+ /// @brief 鏆傚仠闊抽
+ /// @param id 闊抽鏍囪瘑绗
void Pause(size_t id);
/// \~chinese
- /// @brief 继续播放音频
- /// @param id 音频标识符
+ /// @brief 缁х画鎾斁闊抽
+ /// @param id 闊抽鏍囪瘑绗
void Resume(size_t id);
/// \~chinese
- /// @brief 停止音频
- /// @param id 音频标识符
+ /// @brief 鍋滄闊抽
+ /// @param id 闊抽鏍囪瘑绗
void Stop(size_t id);
/// \~chinese
- /// @brief 获取音频播放状态
- /// @param id 音频标识符
+ /// @brief 鑾峰彇闊抽鎾斁鐘舵
+ /// @param id 闊抽鏍囪瘑绗
bool IsPlaying(size_t id);
/// \~chinese
- /// @brief 获取音量
+ /// @brief 鑾峰彇闊抽噺
float GetVolume() const;
/// \~chinese
- /// @brief 设置音量
- /// @param volume 音量大小,1.0 为原始音量, 大于 1 为放大音量, 0 为最小音量
+ /// @brief 璁剧疆闊抽噺
+ /// @param volume 闊抽噺澶у皬锛1.0 涓哄師濮嬮煶閲, 澶т簬 1 涓烘斁澶ч煶閲, 0 涓烘渶灏忛煶閲
void SetVolume(float volume);
/// \~chinese
- /// @brief 暂停所有音频
+ /// @brief 鏆傚仠鎵鏈夐煶棰
void PauseAll();
/// \~chinese
- /// @brief 继续播放所有音频
+ /// @brief 缁х画鎾斁鎵鏈夐煶棰
void ResumeAll();
/// \~chinese
- /// @brief 停止所有音频
+ /// @brief 鍋滄鎵鏈夐煶棰
void StopAll();
/// \~chinese
- /// @brief 清除缓存
+ /// @brief 娓呴櫎缂撳瓨
void ClearCache();
private:
diff --git a/src/kiwano-audio/Transcoder.cpp b/src/kiwano-audio/Transcoder.cpp
index 2386d406..a2962446 100644
--- a/src/kiwano-audio/Transcoder.cpp
+++ b/src/kiwano-audio/Transcoder.cpp
@@ -147,25 +147,25 @@ HRESULT Transcoder::ReadSource(IMFSourceReader* reader)
hr = partial_type->SetGUID(MF_MT_SUBTYPE, MFAudioFormat_PCM);
}
- // 设置 source reader 的媒体类型,它将使用合适的解码器去解码这个音频
+ // 璁剧疆 source reader 鐨勫獟浣撶被鍨嬶紝瀹冨皢浣跨敤鍚堥傜殑瑙g爜鍣ㄥ幓瑙g爜杩欎釜闊抽
if (SUCCEEDED(hr))
{
hr = reader->SetCurrentMediaType((DWORD)MF_SOURCE_READER_FIRST_AUDIO_STREAM, 0, partial_type.get());
}
- // 从 IMFMediaType 中获取 WAVEFORMAT 结构
+ // 浠 IMFMediaType 涓幏鍙 WAVEFORMAT 缁撴瀯
if (SUCCEEDED(hr))
{
hr = reader->GetCurrentMediaType((DWORD)MF_SOURCE_READER_FIRST_AUDIO_STREAM, &uncompressed_type);
}
- // 指定音频流
+ // 鎸囧畾闊抽娴
if (SUCCEEDED(hr))
{
hr = reader->SetStreamSelection((DWORD)MF_SOURCE_READER_FIRST_AUDIO_STREAM, true);
}
- // 获取 WAVEFORMAT 数据
+ // 鑾峰彇 WAVEFORMAT 鏁版嵁
if (SUCCEEDED(hr))
{
uint32_t size = 0;
@@ -173,7 +173,7 @@ HRESULT Transcoder::ReadSource(IMFSourceReader* reader)
uncompressed_type.get(), &wave_format_, &size, (DWORD)MFWaveFormatExConvertFlag_Normal);
}
- // 估算音频流大小
+ // 浼扮畻闊抽娴佸ぇ灏
if (SUCCEEDED(hr))
{
PROPVARIANT prop;
@@ -186,7 +186,7 @@ HRESULT Transcoder::ReadSource(IMFSourceReader* reader)
PropVariantClear(&prop);
}
- // 读取音频数据
+ // 璇诲彇闊抽鏁版嵁
if (SUCCEEDED(hr))
{
DWORD flags = 0;
diff --git a/src/kiwano-audio/Transcoder.h b/src/kiwano-audio/Transcoder.h
index 7b69cdb8..6549dcbc 100644
--- a/src/kiwano-audio/Transcoder.h
+++ b/src/kiwano-audio/Transcoder.h
@@ -37,7 +37,7 @@ class Sound;
/**
* \~chinese
- * @brief 音频解码器
+ * @brief 闊抽瑙g爜鍣
*/
class KGE_API Transcoder
{
@@ -46,13 +46,13 @@ class KGE_API Transcoder
public:
/**
* \~chinese
- * @brief 音频数据缓冲
+ * @brief 闊抽鏁版嵁缂撳啿
*/
struct Buffer
{
- BYTE* data; ///< 音频数据
- uint32_t size; ///< 音频数据大小
- const WAVEFORMATEX* format; ///< 音频数据格式
+ BYTE* data; ///< 闊抽鏁版嵁
+ uint32_t size; ///< 闊抽鏁版嵁澶у皬
+ const WAVEFORMATEX* format; ///< 闊抽鏁版嵁鏍煎紡
};
Transcoder();
@@ -60,24 +60,24 @@ public:
~Transcoder();
/// \~chinese
- /// @brief 获取数据缓冲
+ /// @brief 鑾峰彇鏁版嵁缂撳啿
Buffer GetBuffer() const;
/// \~chinese
- /// @brief 清空数据缓冲
+ /// @brief 娓呯┖鏁版嵁缂撳啿
void ClearBuffer();
private:
/// \~chinese
- /// @brief 解码本地音频文件
+ /// @brief 瑙g爜鏈湴闊抽鏂囦欢
HRESULT LoadMediaFile(String const& file_path);
/// \~chinese
- /// @brief 解码音频资源
+ /// @brief 瑙g爜闊抽璧勬簮
HRESULT LoadMediaResource(Resource const& res);
/// \~chinese
- /// @brief 读取音频源数据
+ /// @brief 璇诲彇闊抽婧愭暟鎹
HRESULT ReadSource(IMFSourceReader* reader);
private:
diff --git a/src/kiwano-imgui/ImGuiLayer.h b/src/kiwano-imgui/ImGuiLayer.h
index dfd3b8f0..ffd83774 100644
--- a/src/kiwano-imgui/ImGuiLayer.h
+++ b/src/kiwano-imgui/ImGuiLayer.h
@@ -28,24 +28,24 @@ namespace imgui
KGE_DECLARE_SMART_PTR(ImGuiLayer);
/// \~chinese
-/// @brief ImGui管道
+/// @brief ImGui绠¢亾
using ImGuiPipeline = Function;
/**
* \~chinese
- * @brief ImGui图层
+ * @brief ImGui鍥惧眰
*/
class ImGuiLayer : public Layer
{
public:
/// \~chinese
- /// @brief 创建ImGui图层
+ /// @brief 鍒涘缓ImGui鍥惧眰
static ImGuiLayerPtr Create();
/// \~chinese
- /// @brief 创建ImGui图层
- /// @param name 元素名称
- /// @param item 管道
+ /// @brief 鍒涘缓ImGui鍥惧眰
+ /// @param name 鍏冪礌鍚嶇О
+ /// @param item 绠¢亾
static ImGuiLayerPtr Create(String const& name, ImGuiPipeline const& item);
ImGuiLayer();
@@ -53,19 +53,19 @@ public:
virtual ~ImGuiLayer();
/// \~chinese
- /// @brief 添加 ImGui 元素
- /// @param name 元素名称
- /// @param item 管道
+ /// @brief 娣诲姞 ImGui 鍏冪礌
+ /// @param name 鍏冪礌鍚嶇О
+ /// @param item 绠¢亾
void AddItem(String const& name, ImGuiPipeline const& item);
/// \~chinese
- /// @brief 移除 ImGui 元素
- /// @param name 元素名称
+ /// @brief 绉婚櫎 ImGui 鍏冪礌
+ /// @param name 鍏冪礌鍚嶇О
void RemoveItem(String const& name);
- // 移除所有元素
+ // 绉婚櫎鎵鏈夊厓绱
/// \~chinese
- /// @brief 移除所有元素
+ /// @brief 绉婚櫎鎵鏈夊厓绱
void RemoveAllItems();
public:
diff --git a/src/kiwano-imgui/ImGuiModule.h b/src/kiwano-imgui/ImGuiModule.h
index 60a005ca..700826e1 100644
--- a/src/kiwano-imgui/ImGuiModule.h
+++ b/src/kiwano-imgui/ImGuiModule.h
@@ -29,7 +29,7 @@ namespace imgui
/**
* \~chinese
- * @brief ImGui模块
+ * @brief ImGui妯″潡
*/
class ImGuiModule
: public Singleton
diff --git a/src/kiwano-network/HttpClient.h b/src/kiwano-network/HttpClient.h
index c1a29b9b..7cd5dcb0 100644
--- a/src/kiwano-network/HttpClient.h
+++ b/src/kiwano-network/HttpClient.h
@@ -30,7 +30,7 @@ namespace network
{
/**
* \~chinese
- * \defgroup Network 网络通信
+ * \defgroup Network 缃戠粶閫氫俊
*/
/**
@@ -40,7 +40,7 @@ namespace network
/**
* \~chinese
- * @brief HTTP客户端
+ * @brief HTTP瀹㈡埛绔
*/
class KGE_API HttpClient
: public Singleton
@@ -50,33 +50,33 @@ class KGE_API HttpClient
public:
/// \~chinese
- /// @brief 发送HTTP请求
- /// @param[in] request HTTP请求
- /// @details 发送请求后,无论结束或失败都将调用请求的响应回调函数
+ /// @brief 鍙戦丠TTP璇锋眰
+ /// @param[in] request HTTP璇锋眰
+ /// @details 鍙戦佽姹傚悗锛屾棤璁虹粨鏉熸垨澶辫触閮藉皢璋冪敤璇锋眰鐨勫搷搴斿洖璋冨嚱鏁
void Send(HttpRequestPtr request);
/// \~chinese
- /// @brief 设置连接超时时长
+ /// @brief 璁剧疆杩炴帴瓒呮椂鏃堕暱
void SetTimeoutForConnect(Duration timeout);
/// \~chinese
- /// @brief 获取连接超时时长
+ /// @brief 鑾峰彇杩炴帴瓒呮椂鏃堕暱
Duration GetTimeoutForConnect() const;
/// \~chinese
- /// @brief 设置读取超时时长
+ /// @brief 璁剧疆璇诲彇瓒呮椂鏃堕暱
void SetTimeoutForRead(Duration timeout);
/// \~chinese
- /// @brief 获取读取超时时长
+ /// @brief 鑾峰彇璇诲彇瓒呮椂鏃堕暱
Duration GetTimeoutForRead() const;
/// \~chinese
- /// @brief 设置SSL证书地址
+ /// @brief 璁剧疆SSL璇佷功鍦板潃
void SetSSLVerification(String const& root_certificate_path);
/// \~chinese
- /// @brief 获取SSL证书地址
+ /// @brief 鑾峰彇SSL璇佷功鍦板潃
String const& GetSSLVerification() const;
public:
diff --git a/src/kiwano-network/HttpRequest.h b/src/kiwano-network/HttpRequest.h
index 69efbbf0..d95106e2 100644
--- a/src/kiwano-network/HttpRequest.h
+++ b/src/kiwano-network/HttpRequest.h
@@ -37,48 +37,48 @@ KGE_DECLARE_SMART_PTR(HttpRequest);
*/
/// \~chinese
-/// @brief HTTP请求类型
+/// @brief HTTP璇锋眰绫诲瀷
enum class HttpType
{
- Unknown, ///< 未知
- Get, ///< HTTP GET请求
- Post, ///< HTTP POST请求
- Put, ///< HTTP PUT请求
- Delete ///< HTTP DELETE请求
+ Unknown, ///< 鏈煡
+ Get, ///< HTTP GET璇锋眰
+ Post, ///< HTTP POST璇锋眰
+ Put, ///< HTTP PUT璇锋眰
+ Delete ///< HTTP DELETE璇锋眰
};
/**
* \~chinese
- * @brief HTTP请求
+ * @brief HTTP璇锋眰
*/
class KGE_API HttpRequest : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 响应回调函数
+ /// @brief 鍝嶅簲鍥炶皟鍑芥暟
using ResponseCallback = Function;
/// \~chinese
- /// @brief 创建HTTP请求
- /// @param url 请求地址
- /// @param type 请求类型
- /// @param callback 响应回调函数
+ /// @brief 鍒涘缓HTTP璇锋眰
+ /// @param url 璇锋眰鍦板潃
+ /// @param type 璇锋眰绫诲瀷
+ /// @param callback 鍝嶅簲鍥炶皟鍑芥暟
static HttpRequestPtr Create(String const& url, HttpType type, ResponseCallback const& callback);
/// \~chinese
- /// @brief 创建HTTP请求
- /// @param url 请求地址
- /// @param type 请求类型
- /// @param data 请求数据
- /// @param callback 响应回调函数
+ /// @brief 鍒涘缓HTTP璇锋眰
+ /// @param url 璇锋眰鍦板潃
+ /// @param type 璇锋眰绫诲瀷
+ /// @param data 璇锋眰鏁版嵁
+ /// @param callback 鍝嶅簲鍥炶皟鍑芥暟
static HttpRequestPtr Create(String const& url, HttpType type, String const& data, ResponseCallback const& callback);
/// \~chinese
- /// @brief 创建HTTP请求
- /// @param url 请求地址
- /// @param type 请求类型
- /// @param json 请求的JSON数据
- /// @param callback 响应回调函数
+ /// @brief 鍒涘缓HTTP璇锋眰
+ /// @param url 璇锋眰鍦板潃
+ /// @param type 璇锋眰绫诲瀷
+ /// @param json 璇锋眰鐨凧SON鏁版嵁
+ /// @param callback 鍝嶅簲鍥炶皟鍑芥暟
static HttpRequestPtr Create(String const& url, HttpType type, Json const& json, ResponseCallback const& callback);
HttpRequest();
@@ -86,55 +86,55 @@ public:
HttpRequest(HttpType type);
/// \~chinese
- /// @brief 设置请求地址
+ /// @brief 璁剧疆璇锋眰鍦板潃
void SetUrl(String const& url);
/// \~chinese
- /// @brief 设置请求类型
+ /// @brief 璁剧疆璇锋眰绫诲瀷
void SetType(HttpType type);
/// \~chinese
- /// @brief 设置请求数据
+ /// @brief 璁剧疆璇锋眰鏁版嵁
void SetData(String const& data);
/// \~chinese
- /// @brief 设置请求的JSON数据
+ /// @brief 璁剧疆璇锋眰鐨凧SON鏁版嵁
void SetJsonData(Json const& json);
/// \~chinese
- /// @brief 设置HTTP头
+ /// @brief 璁剧疆HTTP澶
void SetHeaders(Map const& headers);
/// \~chinese
- /// @brief 设置HTTP头
+ /// @brief 璁剧疆HTTP澶
void SetHeader(String const& field, String const& content);
/// \~chinese
- /// @brief 设置响应回调函数
+ /// @brief 璁剧疆鍝嶅簲鍥炶皟鍑芥暟
void SetResponseCallback(ResponseCallback const& callback);
/// \~chinese
- /// @brief 获取请求地址
+ /// @brief 鑾峰彇璇锋眰鍦板潃
String const& GetUrl() const;
/// \~chinese
- /// @brief 获取请求类型
+ /// @brief 鑾峰彇璇锋眰绫诲瀷
HttpType GetType() const;
/// \~chinese
- /// @brief 获取请求数据
+ /// @brief 鑾峰彇璇锋眰鏁版嵁
String const& GetData() const;
/// \~chinese
- /// @brief 获取HTTP头
+ /// @brief 鑾峰彇HTTP澶
Map& GetHeaders();
/// \~chinese
- /// @brief 获取HTTP头
+ /// @brief 鑾峰彇HTTP澶
String const& GetHeader(String const& header) const;
/// \~chinese
- /// @brief 获取响应回调函数
+ /// @brief 鑾峰彇鍝嶅簲鍥炶皟鍑芥暟
ResponseCallback const& GetResponseCallback() const;
private:
diff --git a/src/kiwano-network/HttpResponse.hpp b/src/kiwano-network/HttpResponse.hpp
index 0c91baa2..c54005eb 100644
--- a/src/kiwano-network/HttpResponse.hpp
+++ b/src/kiwano-network/HttpResponse.hpp
@@ -34,7 +34,7 @@ KGE_DECLARE_SMART_PTR(HttpResponse);
/**
* \~chinese
- * @brief HTTP响应
+ * @brief HTTP鍝嶅簲
*/
class KGE_API HttpResponse : public virtual ObjectBase
{
@@ -42,47 +42,47 @@ public:
HttpResponse(HttpRequestPtr request);
/// \~chinese
- /// @brief 获取对应的HTTP请求
+ /// @brief 鑾峰彇瀵瑰簲鐨凥TTP璇锋眰
HttpRequestPtr GetRequest() const;
/// \~chinese
- /// @brief 获取响应状态
+ /// @brief 鑾峰彇鍝嶅簲鐘舵
bool IsSucceed() const;
/// \~chinese
- /// @brief 获取HTTP状态码
+ /// @brief 鑾峰彇HTTP鐘舵佺爜
long GetResponseCode() const;
/// \~chinese
- /// @brief 获取响应头
+ /// @brief 鑾峰彇鍝嶅簲澶
String GetHeader() const;
/// \~chinese
- /// @brief 获取响应数据
+ /// @brief 鑾峰彇鍝嶅簲鏁版嵁
String const& GetData() const;
/// \~chinese
- /// @brief 获取错误信息
+ /// @brief 鑾峰彇閿欒淇℃伅
String const& GetError() const;
/// \~chinese
- /// @brief 设置响应状态
+ /// @brief 璁剧疆鍝嶅簲鐘舵
void SetSucceed(bool succeed);
/// \~chinese
- /// @brief 设置HTTP状态码
+ /// @brief 璁剧疆HTTP鐘舵佺爜
void SetResponseCode(long response_code);
/// \~chinese
- /// @brief 设置响应头
+ /// @brief 璁剧疆鍝嶅簲澶
void SetHeader(String const& response_header);
/// \~chinese
- /// @brief 设置响应数据
+ /// @brief 璁剧疆鍝嶅簲鏁版嵁
void SetData(String const& response_data);
/// \~chinese
- /// @brief 设置错误信息
+ /// @brief 璁剧疆閿欒淇℃伅
void SetError(String const& error_buffer);
private:
diff --git a/src/kiwano-physics/Body.h b/src/kiwano-physics/Body.h
index cc570efd..172835b4 100644
--- a/src/kiwano-physics/Body.h
+++ b/src/kiwano-physics/Body.h
@@ -37,31 +37,31 @@ KGE_DECLARE_SMART_PTR(Body);
*/
/// \~chinese
-/// @brief 物体
+/// @brief 鐗╀綋
class KGE_API Body : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 物体类型
+ /// @brief 鐗╀綋绫诲瀷
enum class Type
{
- Static = 0, ///< 静态物体
- Kinematic, ///< 动力学物体
- Dynamic, ///< 动态物体
+ Static = 0, ///< 闈欐佺墿浣
+ Kinematic, ///< 鍔ㄥ姏瀛︾墿浣
+ Dynamic, ///< 鍔ㄦ佺墿浣
};
/// \~chinese
- /// @brief 初始化
- /// @param[in] world 物理世界
- /// @param[in] actor 绑定的角色
- /// @param[in] type 物体类型
+ /// @brief 鍒濆鍖
+ /// @param[in] world 鐗╃悊涓栫晫
+ /// @param[in] actor 缁戝畾鐨勮鑹
+ /// @param[in] type 鐗╀綋绫诲瀷
static BodyPtr Create(World* world, ActorPtr actor, Type type);
/// \~chinese
- /// @brief 初始化
- /// @param[in] world 物理世界
- /// @param[in] actor 绑定的角色
- /// @param[in] type 物体类型
+ /// @brief 鍒濆鍖
+ /// @param[in] world 鐗╃悊涓栫晫
+ /// @param[in] actor 缁戝畾鐨勮鑹
+ /// @param[in] type 鐗╀綋绫诲瀷
static BodyPtr Create(World* world, Actor* actor, Type type);
Body();
@@ -69,250 +69,250 @@ public:
virtual ~Body();
/// \~chinese
- /// @brief 初始化
- /// @param[in] world 物理世界
- /// @param[in] actor 绑定的角色
+ /// @brief 鍒濆鍖
+ /// @param[in] world 鐗╃悊涓栫晫
+ /// @param[in] actor 缁戝畾鐨勮鑹
bool InitBody(World* world, ActorPtr actor);
/// \~chinese
- /// @brief 初始化
- /// @param[in] world 物理世界
- /// @param[in] actor 绑定的角色
+ /// @brief 鍒濆鍖
+ /// @param[in] world 鐗╃悊涓栫晫
+ /// @param[in] actor 缁戝畾鐨勮鑹
bool InitBody(World* world, Actor* actor);
/// \~chinese
- /// @brief 添加夹具
+ /// @brief 娣诲姞澶瑰叿
void AddFixture(FixturePtr fixture);
/// \~chinese
- /// @brief 添加圆形夹具
- /// @param radius 圆形半径
- /// @param density 物体密度
+ /// @brief 娣诲姞鍦嗗舰澶瑰叿
+ /// @param radius 鍦嗗舰鍗婂緞
+ /// @param density 鐗╀綋瀵嗗害
/// @param
Fixture* AddCircleShape(float radius, float density, float friction = 0.2f, float restitution = 0.f,
bool is_sensor = false);
/// \~chinese
- /// @brief 添加矩形夹具
- /// @param size 矩形大小
- /// @param density 物体密度
+ /// @brief 娣诲姞鐭╁舰澶瑰叿
+ /// @param size 鐭╁舰澶у皬
+ /// @param density 鐗╀綋瀵嗗害
Fixture* AddRectShape(Vec2 const& size, float density, float friction = 0.2f, float restitution = 0.f,
bool is_sensor = false);
/// \~chinese
- /// @brief 添加多边形夹具
- /// @param vertexs 多边形端点
- /// @param density 物体密度
+ /// @brief 娣诲姞澶氳竟褰㈠す鍏
+ /// @param vertexs 澶氳竟褰㈢鐐
+ /// @param density 鐗╀綋瀵嗗害
Fixture* AddPolygonShape(Vector const& vertexs, float density, float friction = 0.2f,
float restitution = 0.f, bool is_sensor = false);
/// \~chinese
- /// @brief 添加线段形夹具
- /// @param p1 线段起点
- /// @param p2 线段终点
- /// @param density 物体密度
+ /// @brief 娣诲姞绾挎褰㈠す鍏
+ /// @param p1 绾挎璧风偣
+ /// @param p2 绾挎缁堢偣
+ /// @param density 鐗╀綋瀵嗗害
Fixture* AddEdgeShape(Point const& p1, Point const& p2, float density, float friction = 0.2f,
float restitution = 0.f, bool is_sensor = false);
/// \~chinese
- /// @brief 添加链条形夹具
- /// @param vertexs 链条端点
- /// @param loop 是否闭合
- /// @param density 物体密度
+ /// @brief 娣诲姞閾炬潯褰㈠す鍏
+ /// @param vertexs 閾炬潯绔偣
+ /// @param loop 鏄惁闂悎
+ /// @param density 鐗╀綋瀵嗗害
Fixture* AddChainShape(Vector const& vertexs, bool loop, float density, float friction = 0.2f,
float restitution = 0.f, bool is_sensor = false);
/// \~chinese
- /// @brief 移除夹具
+ /// @brief 绉婚櫎澶瑰叿
void RemoveFixture(FixturePtr fixture);
/// \~chinese
- /// @brief 获取夹具列表
+ /// @brief 鑾峰彇澶瑰叿鍒楄〃
FixtureList GetFixtureList() const;
/// \~chinese
- /// @brief 获取接触边列表
+ /// @brief 鑾峰彇鎺ヨЕ杈瑰垪琛
ContactEdgeList GetContactList() const;
/// \~chinese
- /// @brief 获取类别码
+ /// @brief 鑾峰彇绫诲埆鐮
uint16_t GetCategoryBits() const;
/// \~chinese
- /// @brief 设置类别码
+ /// @brief 璁剧疆绫诲埆鐮
void SetCategoryBits(uint16_t category_bits);
/// \~chinese
- /// @brief 获取碰撞掩码
+ /// @brief 鑾峰彇纰版挒鎺╃爜
uint16_t GetMaskBits() const;
/// \~chinese
- /// @brief 设置碰撞掩码
+ /// @brief 璁剧疆纰版挒鎺╃爜
void SetMaskBits(uint16_t mask_bits);
/// \~chinese
- /// @brief 获取组索引
+ /// @brief 鑾峰彇缁勭储寮
int16_t GetGroupIndex() const;
/// \~chinese
- /// @brief 设置组索引
+ /// @brief 璁剧疆缁勭储寮
void SetGroupIndex(int16_t index);
/// \~chinese
- /// @brief 获取旋转角度
+ /// @brief 鑾峰彇鏃嬭浆瑙掑害
float GetBodyRotation() const;
/// \~chinese
- /// @brief 设置旋转角度
+ /// @brief 璁剧疆鏃嬭浆瑙掑害
void SetBodyRotation(float angle);
/// \~chinese
- /// @brief 获取物体位置
+ /// @brief 鑾峰彇鐗╀綋浣嶇疆
Point GetBodyPosition() const;
/// \~chinese
- /// @brief 设置物体位置
+ /// @brief 璁剧疆鐗╀綋浣嶇疆
void SetBodyPosition(Point const& pos);
/// \~chinese
- /// @brief 位置和旋转变换
+ /// @brief 浣嶇疆鍜屾棆杞彉鎹
void SetBodyTransform(Point const& pos, float angle);
/// \~chinese
- /// @brief 获取质量 [kg]
+ /// @brief 鑾峰彇璐ㄩ噺 [kg]
float GetMass() const;
/// \~chinese
- /// @brief 获取惯性
+ /// @brief 鑾峰彇鎯
float GetInertia() const;
/// \~chinese
- /// @brief 获取质量数据
- /// @param[out] mass 物体质量 [kg]
- /// @param[out] center 质心位置
- /// @param[out] inertia 惯性
+ /// @brief 鑾峰彇璐ㄩ噺鏁版嵁
+ /// @param[out] mass 鐗╀綋璐ㄩ噺 [kg]
+ /// @param[out] center 璐ㄥ績浣嶇疆
+ /// @param[out] inertia 鎯
void GetMassData(float* mass, Point* center, float* inertia) const;
/// \~chinese
- /// @brief 设置质量数据
- /// @param mass 物体质量 [kg]
- /// @param center 质心位置
- /// @param inertia 惯性
+ /// @brief 璁剧疆璐ㄩ噺鏁版嵁
+ /// @param mass 鐗╀綋璐ㄩ噺 [kg]
+ /// @param center 璐ㄥ績浣嶇疆
+ /// @param inertia 鎯
void SetMassData(float mass, Point const& center, float inertia);
/// \~chinese
- /// @brief 重置质量数据
+ /// @brief 閲嶇疆璐ㄩ噺鏁版嵁
void ResetMassData();
/// \~chinese
- /// @brief 获取世界坐标系上的点在物体上的位置
+ /// @brief 鑾峰彇涓栫晫鍧愭爣绯讳笂鐨勭偣鍦ㄧ墿浣撲笂鐨勪綅缃
Point GetLocalPoint(Point const& world) const;
/// \~chinese
- /// @brief 获取物体上的点在世界坐标系的位置
+ /// @brief 鑾峰彇鐗╀綋涓婄殑鐐瑰湪涓栫晫鍧愭爣绯荤殑浣嶇疆
Point GetWorldPoint(Point const& local) const;
/// \~chinese
- /// @brief 获取物体质心相对于物体的位置
+ /// @brief 鑾峰彇鐗╀綋璐ㄥ績鐩稿浜庣墿浣撶殑浣嶇疆
Point GetLocalCenter() const;
/// \~chinese
- /// @brief 获取物体质心位置
+ /// @brief 鑾峰彇鐗╀綋璐ㄥ績浣嶇疆
Point GetWorldCenter() const;
/// \~chinese
- /// @brief 获取物体类型
+ /// @brief 鑾峰彇鐗╀綋绫诲瀷
Type GetType() const;
/// \~chinese
- /// @brief 设置物体类型
+ /// @brief 璁剧疆鐗╀綋绫诲瀷
void SetType(Type type);
/// \~chinese
- /// @brief 获取物体受重力的比例
+ /// @brief 鑾峰彇鐗╀綋鍙楅噸鍔涚殑姣斾緥
float GetGravityScale() const;
/// \~chinese
- /// @brief 设置物体受重力的比例
+ /// @brief 璁剧疆鐗╀綋鍙楅噸鍔涚殑姣斾緥
void SetGravityScale(float scale);
/// \~chinese
- /// @brief 施力
- /// @param force 力的大小和方向
- /// @param point 施力点
- /// @param wake 是否唤醒物体
+ /// @brief 鏂藉姏
+ /// @param force 鍔涚殑澶у皬鍜屾柟鍚
+ /// @param point 鏂藉姏鐐
+ /// @param wake 鏄惁鍞ら啋鐗╀綋
void ApplyForce(Vec2 const& force, Point const& point, bool wake = true);
/// \~chinese
- /// @brief 给物体中心施力
- /// @param force 力的大小和方向
- /// @param wake 是否唤醒物体
+ /// @brief 缁欑墿浣撲腑蹇冩柦鍔
+ /// @param force 鍔涚殑澶у皬鍜屾柟鍚
+ /// @param wake 鏄惁鍞ら啋鐗╀綋
void ApplyForceToCenter(Vec2 const& force, bool wake = true);
/// \~chinese
- /// @brief 施加扭矩
- /// @param torque 扭矩
- /// @param wake 是否唤醒物体
+ /// @brief 鏂藉姞鎵煩
+ /// @param torque 鎵煩
+ /// @param wake 鏄惁鍞ら啋鐗╀綋
void ApplyTorque(float torque, bool wake = false);
/// \~chinese
- /// @brief 旋转角度是否固定
+ /// @brief 鏃嬭浆瑙掑害鏄惁鍥哄畾
bool IsIgnoreRotation() const;
/// \~chinese
- /// @brief 设置是否固定旋转角度
+ /// @brief 璁剧疆鏄惁鍥哄畾鏃嬭浆瑙掑害
void SetIgnoreRotation(bool flag);
/// \~chinese
- /// @brief 是否是子弹物体
+ /// @brief 鏄惁鏄瓙寮圭墿浣
bool IsBullet() const;
/// \~chinese
- /// @brief 设置物体是否是子弹物体
+ /// @brief 璁剧疆鐗╀綋鏄惁鏄瓙寮圭墿浣
void SetBullet(bool flag);
/// \~chinese
- /// @brief 是否处于唤醒状态
+ /// @brief 鏄惁澶勪簬鍞ら啋鐘舵
bool IsAwake() const;
/// \~chinese
- /// @brief 设置唤醒状态
+ /// @brief 璁剧疆鍞ら啋鐘舵
void SetAwake(bool flag);
/// \~chinese
- /// @brief 是否启用休眠
+ /// @brief 鏄惁鍚敤浼戠湢
bool IsSleepingAllowed() const;
/// \~chinese
- /// @brief 设置是否允许休眠
+ /// @brief 璁剧疆鏄惁鍏佽浼戠湢
void SetSleepingAllowed(bool flag);
/// \~chinese
- /// @brief 是否启用
+ /// @brief 鏄惁鍚敤
bool IsActive() const;
/// \~chinese
- /// @brief 设置启用状态
+ /// @brief 璁剧疆鍚敤鐘舵
void SetActive(bool flag);
/// \~chinese
- /// @brief 获取物体所在物理世界
+ /// @brief 鑾峰彇鐗╀綋鎵鍦ㄧ墿鐞嗕笘鐣
World* GetWorld() const;
/// \~chinese
- /// @brief 获取物体绑定的角色
+ /// @brief 鑾峰彇鐗╀綋缁戝畾鐨勮鑹
Actor* GetActor() const;
/// \~chinese
- /// @brief 设置物体绑定的角色
+ /// @brief 璁剧疆鐗╀綋缁戝畾鐨勮鑹
void SetActor(Actor* actor);
/// \~chinese
- /// @brief 将物体信息更新到角色
+ /// @brief 灏嗙墿浣撲俊鎭洿鏂板埌瑙掕壊
void UpdateActor();
/// \~chinese
- /// @brief 将角色信息更新到物体
+ /// @brief 灏嗚鑹蹭俊鎭洿鏂板埌鐗╀綋
void UpdateFromActor();
b2Body* GetB2Body() const;
@@ -320,11 +320,11 @@ public:
private:
/// \~chinese
- /// @brief 销毁物体
+ /// @brief 閿姣佺墿浣
void UpdateFixtureFilter(b2Fixture* fixture);
/// \~chinese
- /// @brief 销毁物体
+ /// @brief 閿姣佺墿浣
void Destroy();
private:
diff --git a/src/kiwano-physics/Contact.h b/src/kiwano-physics/Contact.h
index c5398878..5598cf57 100644
--- a/src/kiwano-physics/Contact.h
+++ b/src/kiwano-physics/Contact.h
@@ -34,74 +34,74 @@ class Body;
*/
/// \~chinese
-/// @brief 物理接触
+/// @brief 鐗╃悊鎺ヨЕ
class KGE_API Contact
{
public:
Contact();
/// \~chinese
- /// @brief 是否有效
+ /// @brief 鏄惁鏈夋晥
bool IsValid() const;
/// \~chinese
- /// @brief 是否是接触
+ /// @brief 鏄惁鏄帴瑙
bool IsTouching() const;
/// \~chinese
- /// @brief 启用或禁用 (仅作用于一个时间步)
+ /// @brief 鍚敤鎴栫鐢 (浠呬綔鐢ㄤ簬涓涓椂闂存)
void SetEnabled(bool flag);
/// \~chinese
- /// @brief 是否启用
+ /// @brief 鏄惁鍚敤
bool IsEnabled() const;
/// \~chinese
- /// @brief 获取物体A的夹具
+ /// @brief 鑾峰彇鐗╀綋A鐨勫す鍏
Fixture* GetFixtureA() const;
/// \~chinese
- /// @brief 获取物体B的夹具
+ /// @brief 鑾峰彇鐗╀綋B鐨勫す鍏
Fixture* GetFixtureB() const;
/// \~chinese
- /// @brief 获取物体A
+ /// @brief 鑾峰彇鐗╀綋A
Body* GetBodyA() const;
/// \~chinese
- /// @brief 获取物体B
+ /// @brief 鑾峰彇鐗╀綋B
Body* GetBodyB() const;
/// \~chinese
- /// @brief 设置摩擦力
+ /// @brief 璁剧疆鎽╂摝鍔
void SetFriction(float friction);
/// \~chinese
- /// @brief 获取摩擦力
+ /// @brief 鑾峰彇鎽╂摝鍔
float GetFriction() const;
/// \~chinese
- /// @brief 重置摩擦力
+ /// @brief 閲嶇疆鎽╂摝鍔
void ResetFriction();
/// \~chinese
- /// @brief 设置弹性恢复
+ /// @brief 璁剧疆寮规ф仮澶
void SetRestitution(float restitution);
/// \~chinese
- /// @brief 获取弹性恢复
+ /// @brief 鑾峰彇寮规ф仮澶
float GetRestitution() const;
/// \~chinese
- /// @brief 重置弹性恢复
+ /// @brief 閲嶇疆寮规ф仮澶
void ResetRestitution();
/// \~chinese
- /// @brief 设置切线速度
+ /// @brief 璁剧疆鍒囩嚎閫熷害
void SetTangentSpeed(float speed);
/// \~chinese
- /// @brief 获取切线速度
+ /// @brief 鑾峰彇鍒囩嚎閫熷害
float GetTangentSpeed() const;
b2Contact* GetB2Contact() const;
@@ -116,7 +116,7 @@ private:
};
/// \~chinese
-/// @brief 物理接触列表
+/// @brief 鐗╃悊鎺ヨЕ鍒楄〃
class ContactList
{
template
diff --git a/src/kiwano-physics/ContactEdge.h b/src/kiwano-physics/ContactEdge.h
index 270e832c..d43b8cbd 100644
--- a/src/kiwano-physics/ContactEdge.h
+++ b/src/kiwano-physics/ContactEdge.h
@@ -31,7 +31,7 @@ namespace physics
*/
/// \~chinese
-/// @brief 接触边
+/// @brief 鎺ヨЕ杈
class KGE_API ContactEdge
{
public:
@@ -40,15 +40,15 @@ public:
ContactEdge(b2ContactEdge* edge);
/// \~chinese
- /// @brief 是否有效
+ /// @brief 鏄惁鏈夋晥
bool IsValid() const;
/// \~chinese
- /// @brief 获取接触物体
+ /// @brief 鑾峰彇鎺ヨЕ鐗╀綋
Body* GetOtherBody() const;
/// \~chinese
- /// @brief 获取接触
+ /// @brief 鑾峰彇鎺ヨЕ
Contact GetContact() const;
b2ContactEdge* GetB2ContactEdge() const;
@@ -63,7 +63,7 @@ private:
};
/// \~chinese
-/// @brief 物理接触边列表
+/// @brief 鐗╃悊鎺ヨЕ杈瑰垪琛
class ContactEdgeList
{
template
diff --git a/src/kiwano-physics/ContactEvent.h b/src/kiwano-physics/ContactEvent.h
index 72fa1710..d19f0262 100644
--- a/src/kiwano-physics/ContactEvent.h
+++ b/src/kiwano-physics/ContactEvent.h
@@ -35,11 +35,11 @@ KGE_DECLARE_SMART_PTR(ContactEndEvent);
*/
/// \~chinese
-/// @brief 物理接触开始事件
+/// @brief 鐗╃悊鎺ヨЕ寮濮嬩簨浠
class KGE_API ContactBeginEvent : public Event
{
public:
- Contact contact; ///< 产生的接触
+ Contact contact; ///< 浜х敓鐨勬帴瑙
ContactBeginEvent();
@@ -47,11 +47,11 @@ public:
};
/// \~chinese
-/// @brief 物理接触结束事件
+/// @brief 鐗╃悊鎺ヨЕ缁撴潫浜嬩欢
class KGE_API ContactEndEvent : public Event
{
public:
- Contact contact; ///< 产生的接触
+ Contact contact; ///< 浜х敓鐨勬帴瑙
ContactEndEvent();
diff --git a/src/kiwano-physics/Fixture.h b/src/kiwano-physics/Fixture.h
index 5c827467..b8c261fa 100644
--- a/src/kiwano-physics/Fixture.h
+++ b/src/kiwano-physics/Fixture.h
@@ -35,18 +35,18 @@ KGE_DECLARE_SMART_PTR(Fixture);
*/
/// \~chinese
-/// @brief 物理夹具
+/// @brief 鐗╃悊澶瑰叿
class Fixture : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 夹具参数
+ /// @brief 澶瑰叿鍙傛暟
struct Param
{
- float density = 0.0f; ///< 密度
- float friction = 0.2f; ///< 摩擦力
- float restitution = 0.0f; ///< 弹性恢复
- bool is_sensor = false; ///< 是否是接触传感器
+ float density = 0.0f; ///< 瀵嗗害
+ float friction = 0.2f; ///< 鎽╂摝鍔
+ float restitution = 0.0f; ///< 寮规ф仮澶
+ bool is_sensor = false; ///< 鏄惁鏄帴瑙︿紶鎰熷櫒
Param() {}
@@ -60,44 +60,44 @@ public:
};
/// \~chinese
- /// @brief 创建圆形夹具
- /// @param body 添加夹具的物体
- /// @param param 夹具参数
- /// @param radius 圆形半径
- /// @param offset 偏移量
+ /// @brief 鍒涘缓鍦嗗舰澶瑰叿
+ /// @param body 娣诲姞澶瑰叿鐨勭墿浣
+ /// @param param 澶瑰叿鍙傛暟
+ /// @param radius 鍦嗗舰鍗婂緞
+ /// @param offset 鍋忕Щ閲
static FixturePtr CreateCircle(Body* body, Param const& param, float radius, Point const& offset = Point());
/// \~chinese
- /// @brief 创建矩形夹具
- /// @param body 添加夹具的物体
- /// @param param 夹具参数
- /// @param size 矩形大小
- /// @param offset 偏移量
- /// @param rotation 旋转角度
+ /// @brief 鍒涘缓鐭╁舰澶瑰叿
+ /// @param body 娣诲姞澶瑰叿鐨勭墿浣
+ /// @param param 澶瑰叿鍙傛暟
+ /// @param size 鐭╁舰澶у皬
+ /// @param offset 鍋忕Щ閲
+ /// @param rotation 鏃嬭浆瑙掑害
static FixturePtr CreateRect(Body* body, Param const& param, Size const& size, Point const& offset = Point(),
float rotation = 0.f);
/// \~chinese
- /// @brief 创建多边形夹具
- /// @param body 添加夹具的物体
- /// @param param 夹具参数
- /// @param vertexs 多边形顶点
+ /// @brief 鍒涘缓澶氳竟褰㈠す鍏
+ /// @param body 娣诲姞澶瑰叿鐨勭墿浣
+ /// @param param 澶瑰叿鍙傛暟
+ /// @param vertexs 澶氳竟褰㈤《鐐
static FixturePtr CreatePolygon(Body* body, Param const& param, Vector const& vertexs);
/// \~chinese
- /// @brief 创建边夹具
- /// @param body 添加夹具的物体
- /// @param param 夹具参数
- /// @param p1 边的起点
- /// @param p2 边的终点
+ /// @brief 鍒涘缓杈瑰す鍏
+ /// @param body 娣诲姞澶瑰叿鐨勭墿浣
+ /// @param param 澶瑰叿鍙傛暟
+ /// @param p1 杈圭殑璧风偣
+ /// @param p2 杈圭殑缁堢偣
static FixturePtr CreateEdge(Body* body, Param const& param, Point const& p1, Point const& p2);
/// \~chinese
- /// @brief 创建链条夹具
- /// @param body 添加夹具的物体
- /// @param param 夹具参数
- /// @param vertexs 链条顶点
- /// @param loop 是否连接链条的起点和终点
+ /// @brief 鍒涘缓閾炬潯澶瑰叿
+ /// @param body 娣诲姞澶瑰叿鐨勭墿浣
+ /// @param param 澶瑰叿鍙傛暟
+ /// @param vertexs 閾炬潯椤剁偣
+ /// @param loop 鏄惁杩炴帴閾炬潯鐨勮捣鐐瑰拰缁堢偣
static FixturePtr CreateChain(Body* body, Param const& param, Vector const& vertexs, bool loop = false);
Fixture();
@@ -105,52 +105,52 @@ public:
virtual ~Fixture();
/// \~chinese
- /// @brief 是否有效
+ /// @brief 鏄惁鏈夋晥
bool IsValid() const;
/// \~chinese
- /// @brief 获取夹具所在的物体
+ /// @brief 鑾峰彇澶瑰叿鎵鍦ㄧ殑鐗╀綋
Body* GetBody() const;
/// \~chinese
- /// @brief 是否是接触传感器
+ /// @brief 鏄惁鏄帴瑙︿紶鎰熷櫒
bool IsSensor() const;
/// \~chinese
- /// @brief 设置夹具是否是接触传感器
- /// @details 接触传感器只会产生物理接触,而不会影响物体运动
+ /// @brief 璁剧疆澶瑰叿鏄惁鏄帴瑙︿紶鎰熷櫒
+ /// @details 鎺ヨЕ浼犳劅鍣ㄥ彧浼氫骇鐢熺墿鐞嗘帴瑙︼紝鑰屼笉浼氬奖鍝嶇墿浣撹繍鍔
void SetSensor(bool sensor);
/// \~chinese
- /// @brief 获取夹具的质量数据
+ /// @brief 鑾峰彇澶瑰叿鐨勮川閲忔暟鎹
void GetMassData(float* mass, Point* center, float* inertia) const;
/// \~chinese
- /// @brief 获取密度
+ /// @brief 鑾峰彇瀵嗗害
float GetDensity() const;
/// \~chinese
- /// @brief 设置密度
+ /// @brief 璁剧疆瀵嗗害
void SetDensity(float density);
/// \~chinese
- /// @brief 获取摩擦力 [N]
+ /// @brief 鑾峰彇鎽╂摝鍔 [N]
float GetFriction() const;
/// \~chinese
- /// @brief 设置摩擦力 [N]
+ /// @brief 璁剧疆鎽╂摝鍔 [N]
void SetFriction(float friction);
/// \~chinese
- /// @brief 获取弹性恢复
+ /// @brief 鑾峰彇寮规ф仮澶
float GetRestitution() const;
/// \~chinese
- /// @brief 设置弹性恢复
+ /// @brief 璁剧疆寮规ф仮澶
void SetRestitution(float restitution);
/// \~chinese
- /// @brief 点测试
+ /// @brief 鐐规祴璇
bool TestPoint(const Point& p) const;
b2Fixture* GetB2Fixture() const;
@@ -165,7 +165,7 @@ private:
};
/// \~chinese
-/// @brief 物理夹具列表
+/// @brief 鐗╃悊澶瑰叿鍒楄〃
class FixtureList
{
template
diff --git a/src/kiwano-physics/Joint.h b/src/kiwano-physics/Joint.h
index fde87cc2..1e63e1a1 100644
--- a/src/kiwano-physics/Joint.h
+++ b/src/kiwano-physics/Joint.h
@@ -45,34 +45,34 @@ KGE_DECLARE_SMART_PTR(WheelJoint);
*/
/// \~chinese
-/// @brief 关节
+/// @brief 鍏宠妭
class KGE_API Joint : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 关节类型
+ /// @brief 鍏宠妭绫诲瀷
enum class Type
{
- Unknown = 0, ///< 未知
- Revolute, ///< 旋转关节
- Prismatic, ///< 平移关节
- Distance, ///< 固定距离关节
- Pulley, ///< 滑轮关节
- Mouse, ///< 鼠标关节
- Gear, ///< 齿轮关节
- Wheel, ///< 轮关节
- Weld, ///< 焊接关节
- Friction, ///< 摩擦关节
- Rope, ///< 绳关节
- Motor ///< 马达关节
+ Unknown = 0, ///< 鏈煡
+ Revolute, ///< 鏃嬭浆鍏宠妭
+ Prismatic, ///< 骞崇Щ鍏宠妭
+ Distance, ///< 鍥哄畾璺濈鍏宠妭
+ Pulley, ///< 婊戣疆鍏宠妭
+ Mouse, ///< 榧犳爣鍏宠妭
+ Gear, ///< 榻胯疆鍏宠妭
+ Wheel, ///< 杞叧鑺
+ Weld, ///< 鐒婃帴鍏宠妭
+ Friction, ///< 鎽╂摝鍏宠妭
+ Rope, ///< 缁冲叧鑺
+ Motor ///< 椹揪鍏宠妭
};
/// \~chinese
- /// @brief 关节基础参数
+ /// @brief 鍏宠妭鍩虹鍙傛暟
struct ParamBase
{
- Body* body_a; ///< 关节连接的物体A
- Body* body_b; ///< 关节连接的物体B
+ Body* body_a; ///< 鍏宠妭杩炴帴鐨勭墿浣揂
+ Body* body_b; ///< 鍏宠妭杩炴帴鐨勭墿浣揃
ParamBase(Body* body_a, Body* body_b)
: body_a(body_a)
@@ -92,23 +92,23 @@ public:
virtual ~Joint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, b2JointDef* joint_def);
/// \~chinese
- /// @brief 获取关节连接的物体A
+ /// @brief 鑾峰彇鍏宠妭杩炴帴鐨勭墿浣揂
BodyPtr GetBodyA() const;
/// \~chinese
- /// @brief 获取关节连接的物体B
+ /// @brief 鑾峰彇鍏宠妭杩炴帴鐨勭墿浣揃
BodyPtr GetBodyB() const;
/// \~chinese
- /// @brief 获取物理世界
+ /// @brief 鑾峰彇鐗╃悊涓栫晫
World* GetWorld() const;
/// \~chinese
- /// @brief 销毁关节
+ /// @brief 閿姣佸叧鑺
void Destroy();
b2Joint* GetB2Joint() const;
@@ -121,18 +121,18 @@ private:
};
/// \~chinese
-/// @brief 固定距离关节
+/// @brief 鍥哄畾璺濈鍏宠妭
class KGE_API DistanceJoint : public Joint
{
public:
/// \~chinese
- /// @brief 固定距离关节参数
+ /// @brief 鍥哄畾璺濈鍏宠妭鍙傛暟
struct Param : public Joint::ParamBase
{
- Point anchor_a; ///< 关节在物体A上的连接点
- Point anchor_b; ///< 关节在物体B上的连接点
- float frequency_hz; ///< 响应速度,数值越高关节响应的速度越快,看上去越坚固
- float damping_ratio; ///< 阻尼率,值越大关节运动阻尼越大
+ Point anchor_a; ///< 鍏宠妭鍦ㄧ墿浣揂涓婄殑杩炴帴鐐
+ Point anchor_b; ///< 鍏宠妭鍦ㄧ墿浣揃涓婄殑杩炴帴鐐
+ float frequency_hz; ///< 鍝嶅簲閫熷害锛屾暟鍊艰秺楂樺叧鑺傚搷搴旂殑閫熷害瓒婂揩锛岀湅涓婂幓瓒婂潥鍥
+ float damping_ratio; ///< 闃诲凹鐜囷紝鍊艰秺澶у叧鑺傝繍鍔ㄩ樆灏艰秺澶
Param(Body* body_a, Body* body_b, Point const& anchor_a, Point const& anchor_b, float frequency_hz = 0.f,
float damping_ratio = 0.f)
@@ -152,39 +152,39 @@ public:
};
/// \~chinese
- /// @brief 创建固定距离关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓鍥哄畾璺濈鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static DistanceJointPtr Create(World* world, Param const& param);
DistanceJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 设置关节长度
+ /// @brief 璁剧疆鍏宠妭闀垮害
void SetLength(float length);
/// \~chinese
- /// @brief 获取关节长度
+ /// @brief 鑾峰彇鍏宠妭闀垮害
float GetLength() const;
/// \~chinese
- /// @brief 设置弹簧响应速度 [赫兹]
+ /// @brief 璁剧疆寮圭哀鍝嶅簲閫熷害 [璧吂]
void SetFrequency(float hz);
/// \~chinese
- /// @brief 获取弹簧响应速度 [赫兹]
+ /// @brief 鑾峰彇寮圭哀鍝嶅簲閫熷害 [璧吂]
float GetFrequency() const;
/// \~chinese
- /// @brief 设置阻尼率
+ /// @brief 璁剧疆闃诲凹鐜
void SetDampingRatio(float ratio);
/// \~chinese
- /// @brief 获取阻尼率
+ /// @brief 鑾峰彇闃诲凹鐜
float GetDampingRatio() const;
private:
@@ -192,15 +192,15 @@ private:
};
/// \~chinese
-/// @brief 摩擦关节
+/// @brief 鎽╂摝鍏宠妭
class KGE_API FrictionJoint : public Joint
{
public:
struct Param : public Joint::ParamBase
{
- Point anchor; ///< 摩擦作用点
- float max_force; ///< 最大摩擦力
- float max_torque; ///< 最大扭力
+ Point anchor; ///< 鎽╂摝浣滅敤鐐
+ float max_force; ///< 鏈澶ф懇鎿﹀姏
+ float max_torque; ///< 鏈澶ф壄鍔
Param(Body* body_a, Body* body_b, Point const& anchor, float max_force = 0.f, float max_torque = 0.f)
: ParamBase(body_a, body_b)
@@ -217,31 +217,31 @@ public:
};
/// \~chinese
- /// @brief 创建摩擦关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓鎽╂摝鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static FrictionJointPtr Create(World* world, Param const& param);
FrictionJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 设置最大摩擦力
+ /// @brief 璁剧疆鏈澶ф懇鎿﹀姏
void SetMaxForce(float force);
/// \~chinese
- /// @brief 获取最大摩擦力
+ /// @brief 鑾峰彇鏈澶ф懇鎿﹀姏
float GetMaxForce() const;
/// \~chinese
- /// @brief 设置最大转矩
+ /// @brief 璁剧疆鏈澶ц浆鐭
void SetMaxTorque(float torque);
/// \~chinese
- /// @brief 获取最大转矩
+ /// @brief 鑾峰彇鏈澶ц浆鐭
float GetMaxTorque() const;
private:
@@ -249,17 +249,17 @@ private:
};
/// \~chinese
-/// @brief 齿轮关节
+/// @brief 榻胯疆鍏宠妭
class KGE_API GearJoint : public Joint
{
public:
/// \~chinese
- /// @brief 齿轮关节参数
+ /// @brief 榻胯疆鍏宠妭鍙傛暟
struct Param : public Joint::ParamBase
{
- Joint* joint_a; ///< 关节A(旋转关节/平移关节)
- Joint* joint_b; ///< 关节B(旋转关节/平移关节)
- float ratio; ///< 齿轮传动比
+ Joint* joint_a; ///< 鍏宠妭A锛堟棆杞叧鑺/骞崇Щ鍏宠妭锛
+ Joint* joint_b; ///< 鍏宠妭B锛堟棆杞叧鑺/骞崇Щ鍏宠妭锛
+ float ratio; ///< 榻胯疆浼犲姩姣
Param(Joint* joint_a, Joint* joint_b, float ratio = 1.f)
: ParamBase(nullptr, nullptr)
@@ -276,23 +276,23 @@ public:
};
/// \~chinese
- /// @brief 创建齿轮关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓榻胯疆鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static GearJointPtr Create(World* world, Param const& param);
GearJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 设定齿轮传动比
+ /// @brief 璁惧畾榻胯疆浼犲姩姣
void SetRatio(float ratio);
/// \~chinese
- /// @brief 获取齿轮传动比
+ /// @brief 鑾峰彇榻胯疆浼犲姩姣
float GetRatio() const;
private:
@@ -300,17 +300,17 @@ private:
};
/// \~chinese
-/// @brief 马达关节
+/// @brief 椹揪鍏宠妭
class KGE_API MotorJoint : public Joint
{
public:
/// \~chinese
- /// @brief 马达关节参数
+ /// @brief 椹揪鍏宠妭鍙傛暟
struct Param : public Joint::ParamBase
{
- float max_force; ///< 最大摩擦力
- float max_torque; ///< 最大转矩
- float correction_factor; ///< 位置矫正因子(范围 0-1)
+ float max_force; ///< 鏈澶ф懇鎿﹀姏
+ float max_torque; ///< 鏈澶ц浆鐭
+ float correction_factor; ///< 浣嶇疆鐭鍥犲瓙锛堣寖鍥 0-1锛
Param(Body* body_a, Body* body_b, float max_force = 1.f, float max_torque = 100.f,
float correction_factor = 0.3f)
@@ -329,31 +329,31 @@ public:
};
/// \~chinese
- /// @brief 创建马达关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓椹揪鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static MotorJointPtr Create(World* world, Param const& param);
MotorJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 设置最大摩擦力
+ /// @brief 璁剧疆鏈澶ф懇鎿﹀姏
void SetMaxForce(float force);
/// \~chinese
- /// @brief 获取最大摩擦力
+ /// @brief 鑾峰彇鏈澶ф懇鎿﹀姏
float GetMaxForce() const;
/// \~chinese
- /// @brief 设置最大转矩
+ /// @brief 璁剧疆鏈澶ц浆鐭
void SetMaxTorque(float torque);
/// \~chinese
- /// @brief 获取最大转矩
+ /// @brief 鑾峰彇鏈澶ц浆鐭
float GetMaxTorque() const;
private:
@@ -361,22 +361,22 @@ private:
};
/// \~chinese
-/// @brief 平移关节
+/// @brief 骞崇Щ鍏宠妭
class KGE_API PrismaticJoint : public Joint
{
public:
/// \~chinese
- /// @brief 平移关节参数
+ /// @brief 骞崇Щ鍏宠妭鍙傛暟
struct Param : public Joint::ParamBase
{
- Point anchor; ///< 关节位置
- Vec2 axis; ///< 物体A滑动的方向
- bool enable_limit; ///< 是否启用限制
- float lower_translation; ///< 移动的最小限制,与方向同向为正,反向为负,启用限制后才有效果
- float upper_translation; ///< 移动的最大限制,与方向同向为正,反向为负,启用限制后才有效果
- bool enable_motor; ///< 是否启用马达
- float max_motor_force; ///< 最大马达力 [N]
- float motor_speed; ///< 马达转速 [degree/s]
+ Point anchor; ///< 鍏宠妭浣嶇疆
+ Vec2 axis; ///< 鐗╀綋A婊戝姩鐨勬柟鍚
+ bool enable_limit; ///< 鏄惁鍚敤闄愬埗
+ float lower_translation; ///< 绉诲姩鐨勬渶灏忛檺鍒讹紝涓庢柟鍚戝悓鍚戜负姝o紝鍙嶅悜涓鸿礋锛屽惎鐢ㄩ檺鍒跺悗鎵嶆湁鏁堟灉
+ float upper_translation; ///< 绉诲姩鐨勬渶澶ч檺鍒讹紝涓庢柟鍚戝悓鍚戜负姝o紝鍙嶅悜涓鸿礋锛屽惎鐢ㄩ檺鍒跺悗鎵嶆湁鏁堟灉
+ bool enable_motor; ///< 鏄惁鍚敤椹揪
+ float max_motor_force; ///< 鏈澶ч┈杈惧姏 [N]
+ float motor_speed; ///< 椹揪杞 [degree/s]
Param(Body* body_a, Body* body_b, Point const& anchor, Vec2 const& axis, bool enable_limit = false,
float lower_translation = 0.0f, float upper_translation = 0.0f, bool enable_motor = false,
@@ -403,71 +403,71 @@ public:
};
/// \~chinese
- /// @brief 创建平移关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓骞崇Щ鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static PrismaticJointPtr Create(World* world, Param const& param);
PrismaticJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 获取参考角
+ /// @brief 鑾峰彇鍙傝冭
float GetReferenceAngle() const;
/// \~chinese
- /// @brief 获取关节转换
+ /// @brief 鑾峰彇鍏宠妭杞崲
float GetJointTranslation() const;
/// \~chinese
- /// @brief 获取关节速度
+ /// @brief 鑾峰彇鍏宠妭閫熷害
float GetJointSpeed() const;
/// \~chinese
- /// @brief 是否启用关节限制
+ /// @brief 鏄惁鍚敤鍏宠妭闄愬埗
bool IsLimitEnabled() const;
/// \~chinese
- /// @brief 设置是否启用关节限制
+ /// @brief 璁剧疆鏄惁鍚敤鍏宠妭闄愬埗
void EnableLimit(bool flag);
/// \~chinese
- /// @brief 获取平移最小限制
+ /// @brief 鑾峰彇骞崇Щ鏈灏忛檺鍒
float GetLowerLimit() const;
/// \~chinese
- /// @brief 获取平移最大限制
+ /// @brief 鑾峰彇骞崇Щ鏈澶ч檺鍒
float GetUpperLimit() const;
/// \~chinese
- /// @brief 设置关节限制
+ /// @brief 璁剧疆鍏宠妭闄愬埗
void SetLimits(float lower, float upper);
/// \~chinese
- /// @brief 是否启用马达
+ /// @brief 鏄惁鍚敤椹揪
bool IsMotorEnabled() const;
/// \~chinese
- /// @brief 设置是否启用马达
+ /// @brief 璁剧疆鏄惁鍚敤椹揪
void EnableMotor(bool flag);
/// \~chinese
- /// @brief 设置马达转速 [degree/s]
+ /// @brief 璁剧疆椹揪杞 [degree/s]
void SetMotorSpeed(float speed);
/// \~chinese
- /// @brief 获取马达转速 [degree/s]
+ /// @brief 鑾峰彇椹揪杞 [degree/s]
float GetMotorSpeed() const;
/// \~chinese
- /// @brief 设置最大马达力 [N]
+ /// @brief 璁剧疆鏈澶ч┈杈惧姏 [N]
void SetMaxMotorForce(float force);
/// \~chinese
- /// @brief 获取最大马达力 [N]
+ /// @brief 鑾峰彇鏈澶ч┈杈惧姏 [N]
float GetMaxMotorForce() const;
private:
@@ -475,19 +475,19 @@ private:
};
/// \~chinese
-/// @brief 滑轮关节
+/// @brief 婊戣疆鍏宠妭
class KGE_API PulleyJoint : public Joint
{
public:
/// \~chinese
- /// @brief 滑轮关节参数
+ /// @brief 婊戣疆鍏宠妭鍙傛暟
struct Param : public Joint::ParamBase
{
- Point anchor_a; ///< 关节在物体A上的作用点
- Point anchor_b; ///< 关节在物体B上的作用点
- Point ground_anchor_a; ///< 物体A对应的滑轮的位置
- Point ground_anchor_b; ///< 物体B对应的滑轮的位置
- float ratio; ///< 滑轮比,关节传动时,滑轮上升和下降的两头的位移比例
+ Point anchor_a; ///< 鍏宠妭鍦ㄧ墿浣揂涓婄殑浣滅敤鐐
+ Point anchor_b; ///< 鍏宠妭鍦ㄧ墿浣揃涓婄殑浣滅敤鐐
+ Point ground_anchor_a; ///< 鐗╀綋A瀵瑰簲鐨勬粦杞殑浣嶇疆
+ Point ground_anchor_b; ///< 鐗╀綋B瀵瑰簲鐨勬粦杞殑浣嶇疆
+ float ratio; ///< 婊戣疆姣旓紝鍏宠妭浼犲姩鏃讹紝婊戣疆涓婂崌鍜屼笅闄嶇殑涓ゅご鐨勪綅绉绘瘮渚
Param(Body* body_a, Body* body_b, Point const& anchor_a, Point const& anchor_b, Point const& ground_anchor_a,
Point const& ground_anchor_b, float ratio = 1.0f)
@@ -508,43 +508,43 @@ public:
};
/// \~chinese
- /// @brief 创建滑轮关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓婊戣疆鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static PulleyJointPtr Create(World* world, Param const& param);
PulleyJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 物体A对应的滑轮的位置
+ /// @brief 鐗╀綋A瀵瑰簲鐨勬粦杞殑浣嶇疆
Point GetGroundAnchorA() const;
/// \~chinese
- /// @brief 物体B对应的滑轮的位置
+ /// @brief 鐗╀綋B瀵瑰簲鐨勬粦杞殑浣嶇疆
Point GetGroundAnchorB() const;
/// \~chinese
- /// @brief 获取滑轮传动比
+ /// @brief 鑾峰彇婊戣疆浼犲姩姣
float GetRatio() const;
/// \~chinese
- /// @brief 获取物体A与滑轮的距离
+ /// @brief 鑾峰彇鐗╀綋A涓庢粦杞殑璺濈
float GetLengthA() const;
/// \~chinese
- /// @brief 获取物体B与滑轮的距离
+ /// @brief 鑾峰彇鐗╀綋B涓庢粦杞殑璺濈
float GetLengthB() const;
/// \~chinese
- /// @brief 获取物体A与滑轮的当前距离
+ /// @brief 鑾峰彇鐗╀綋A涓庢粦杞殑褰撳墠璺濈
float GetCurrentLengthA() const;
/// \~chinese
- /// @brief 获取物体B与滑轮的当前距离
+ /// @brief 鑾峰彇鐗╀綋B涓庢粦杞殑褰撳墠璺濈
float GetCurrentLengthB() const;
private:
@@ -552,21 +552,21 @@ private:
};
/// \~chinese
-/// @brief 旋转关节
+/// @brief 鏃嬭浆鍏宠妭
class KGE_API RevoluteJoint : public Joint
{
public:
/// \~chinese
- /// @brief 旋转关节参数
+ /// @brief 鏃嬭浆鍏宠妭鍙傛暟
struct Param : public Joint::ParamBase
{
- Point anchor; ///< 关节位置
- bool enable_limit; ///< 是否启用限制
- float lower_angle; ///< 移动的最小限制,与方向同向为正,反向为负,启用限制后才有效果
- float upper_angle; ///< 移动的最大限制,与方向同向为正,反向为负,启用限制后才有效果
- bool enable_motor; ///< 是否启用马达
- float max_motor_torque; ///< 最大马达力 [N]
- float motor_speed; ///< 马达转速 [degree/s]
+ Point anchor; ///< 鍏宠妭浣嶇疆
+ bool enable_limit; ///< 鏄惁鍚敤闄愬埗
+ float lower_angle; ///< 绉诲姩鐨勬渶灏忛檺鍒讹紝涓庢柟鍚戝悓鍚戜负姝o紝鍙嶅悜涓鸿礋锛屽惎鐢ㄩ檺鍒跺悗鎵嶆湁鏁堟灉
+ float upper_angle; ///< 绉诲姩鐨勬渶澶ч檺鍒讹紝涓庢柟鍚戝悓鍚戜负姝o紝鍙嶅悜涓鸿礋锛屽惎鐢ㄩ檺鍒跺悗鎵嶆湁鏁堟灉
+ bool enable_motor; ///< 鏄惁鍚敤椹揪
+ float max_motor_torque; ///< 鏈澶ч┈杈惧姏 [N]
+ float motor_speed; ///< 椹揪杞 [degree/s]
Param(Body* body_a, Body* body_b, Point const& anchor, bool enable_limit = false, float lower_angle = 0.0f,
float upper_angle = 0.0f, bool enable_motor = false, float max_motor_torque = 0.0f,
@@ -592,71 +592,71 @@ public:
};
/// \~chinese
- /// @brief 创建旋转关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓鏃嬭浆鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static RevoluteJointPtr Create(World* world, Param const& param);
RevoluteJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 获取参考角
+ /// @brief 鑾峰彇鍙傝冭
float GetReferenceAngle() const;
/// \~chinese
- /// @brief 获取关节角度
+ /// @brief 鑾峰彇鍏宠妭瑙掑害
float GetJointAngle() const;
/// \~chinese
- /// @brief 获取关节速度
+ /// @brief 鑾峰彇鍏宠妭閫熷害
float GetJointSpeed() const;
/// \~chinese
- /// @brief 是否启用关节限制
+ /// @brief 鏄惁鍚敤鍏宠妭闄愬埗
bool IsLimitEnabled() const;
/// \~chinese
- /// @brief 设置是否启用关节限制
+ /// @brief 璁剧疆鏄惁鍚敤鍏宠妭闄愬埗
void EnableLimit(bool flag);
/// \~chinese
- /// @brief 获取平移最小限制
+ /// @brief 鑾峰彇骞崇Щ鏈灏忛檺鍒
float GetLowerLimit() const;
/// \~chinese
- /// @brief 获取平移最大限制
+ /// @brief 鑾峰彇骞崇Щ鏈澶ч檺鍒
float GetUpperLimit() const;
/// \~chinese
- /// @brief 设置关节限制
+ /// @brief 璁剧疆鍏宠妭闄愬埗
void SetLimits(float lower, float upper);
/// \~chinese
- /// @brief 是否启用马达
+ /// @brief 鏄惁鍚敤椹揪
bool IsMotorEnabled() const;
/// \~chinese
- /// @brief 设置是否启用马达
+ /// @brief 璁剧疆鏄惁鍚敤椹揪
void EnableMotor(bool flag);
/// \~chinese
- /// @brief 设置马达转速 [degree/s]
+ /// @brief 璁剧疆椹揪杞 [degree/s]
void SetMotorSpeed(float speed);
/// \~chinese
- /// @brief 获取马达转速 [degree/s]
+ /// @brief 鑾峰彇椹揪杞 [degree/s]
float GetMotorSpeed() const;
/// \~chinese
- /// @brief 设置最大马达转矩 [N/m]
+ /// @brief 璁剧疆鏈澶ч┈杈捐浆鐭 [N/m]
void SetMaxMotorTorque(float torque);
/// \~chinese
- /// @brief 获取最大马达转矩 [N/m]
+ /// @brief 鑾峰彇鏈澶ч┈杈捐浆鐭 [N/m]
float GetMaxMotorTorque() const;
private:
@@ -664,17 +664,17 @@ private:
};
/// \~chinese
-/// @brief 绳关节
+/// @brief 缁冲叧鑺
class KGE_API RopeJoint : public Joint
{
public:
/// \~chinese
- /// @brief 绳关节参数
+ /// @brief 缁冲叧鑺傚弬鏁
struct Param : public Joint::ParamBase
{
- Point local_anchor_a; ///< 关节在物体A上的连接点
- Point local_anchor_b; ///< 关节在物体B上的连接点
- float max_length; ///< 绳索最大长度
+ Point local_anchor_a; ///< 鍏宠妭鍦ㄧ墿浣揂涓婄殑杩炴帴鐐
+ Point local_anchor_b; ///< 鍏宠妭鍦ㄧ墿浣揃涓婄殑杩炴帴鐐
+ float max_length; ///< 缁崇储鏈澶ч暱搴
Param(Body* body_a, Body* body_b, Point const& local_anchor_a, Point const& local_anchor_b,
float max_length = 0.f)
@@ -693,23 +693,23 @@ public:
};
/// \~chinese
- /// @brief 创建绳关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓缁冲叧鑺
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static RopeJointPtr Create(World* world, Param const& param);
RopeJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 设置关节最大长度
+ /// @brief 璁剧疆鍏宠妭鏈澶ч暱搴
void SetMaxLength(float length);
/// \~chinese
- /// @brief 获取关节最大长度
+ /// @brief 鑾峰彇鍏宠妭鏈澶ч暱搴
float GetMaxLength() const;
private:
@@ -717,17 +717,17 @@ private:
};
/// \~chinese
-/// @brief 焊接关节
+/// @brief 鐒婃帴鍏宠妭
class KGE_API WeldJoint : public Joint
{
public:
/// \~chinese
- /// @brief 焊接关节参数
+ /// @brief 鐒婃帴鍏宠妭鍙傛暟
struct Param : public Joint::ParamBase
{
- Point anchor; ///< 焊接位置
- float frequency_hz; ///< 响应速度,数值越高关节响应的速度越快,看上去越坚固
- float damping_ratio; ///< 阻尼率,值越大关节运动阻尼越大
+ Point anchor; ///< 鐒婃帴浣嶇疆
+ float frequency_hz; ///< 鍝嶅簲閫熷害锛屾暟鍊艰秺楂樺叧鑺傚搷搴旂殑閫熷害瓒婂揩锛岀湅涓婂幓瓒婂潥鍥
+ float damping_ratio; ///< 闃诲凹鐜囷紝鍊艰秺澶у叧鑺傝繍鍔ㄩ樆灏艰秺澶
Param(Body* body_a, Body* body_b, Point const& anchor, float frequency_hz = 0.f, float damping_ratio = 0.f)
: ParamBase(body_a, body_b)
@@ -744,35 +744,35 @@ public:
};
/// \~chinese
- /// @brief 创建焊接关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓鐒婃帴鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static WeldJointPtr Create(World* world, Param const& param);
WeldJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 获取物体B相对于物体A的角度
+ /// @brief 鑾峰彇鐗╀綋B鐩稿浜庣墿浣揂鐨勮搴
float GetReferenceAngle() const;
/// \~chinese
- /// @brief 设置弹簧响应速度 [赫兹]
+ /// @brief 璁剧疆寮圭哀鍝嶅簲閫熷害 [璧吂]
void SetFrequency(float hz);
/// \~chinese
- /// @brief 获取弹簧响应速度 [赫兹]
+ /// @brief 鑾峰彇寮圭哀鍝嶅簲閫熷害 [璧吂]
float GetFrequency() const;
/// \~chinese
- /// @brief 设置阻尼率
+ /// @brief 璁剧疆闃诲凹鐜
void SetDampingRatio(float ratio);
/// \~chinese
- /// @brief 获取阻尼率
+ /// @brief 鑾峰彇闃诲凹鐜
float GetDampingRatio() const;
private:
@@ -780,21 +780,21 @@ private:
};
/// \~chinese
-/// @brief 轮关节
+/// @brief 杞叧鑺
class KGE_API WheelJoint : public Joint
{
public:
/// \~chinese
- /// @brief 轮关节参数
+ /// @brief 杞叧鑺傚弬鏁
struct Param : public Joint::ParamBase
{
- Point anchor; ///< 轮关节位置
- Vec2 axis; ///< 物体A滑动方向
- bool enable_motor; ///< 是否启用马达
- float max_motor_torque; ///< 最大马达力 [N]
- float motor_speed; ///< 马达转速 [degree/s]
- float frequency_hz; ///< 响应速度,数值越高关节响应的速度越快,看上去越坚固
- float damping_ratio; ///< 弹簧阻尼率,值越大关节运动阻尼越大
+ Point anchor; ///< 杞叧鑺備綅缃
+ Vec2 axis; ///< 鐗╀綋A婊戝姩鏂瑰悜
+ bool enable_motor; ///< 鏄惁鍚敤椹揪
+ float max_motor_torque; ///< 鏈澶ч┈杈惧姏 [N]
+ float motor_speed; ///< 椹揪杞 [degree/s]
+ float frequency_hz; ///< 鍝嶅簲閫熷害锛屾暟鍊艰秺楂樺叧鑺傚搷搴旂殑閫熷害瓒婂揩锛岀湅涓婂幓瓒婂潥鍥
+ float damping_ratio; ///< 寮圭哀闃诲凹鐜囷紝鍊艰秺澶у叧鑺傝繍鍔ㄩ樆灏艰秺澶
Param(Body* body_a, Body* body_b, Point const& anchor, Vec2 const& axis, float frequency_hz = 2.0f,
float damping_ratio = 0.7f, bool enable_motor = false, float max_motor_torque = 0.0f,
@@ -820,71 +820,71 @@ public:
};
/// \~chinese
- /// @brief 创建轮关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓杞叧鑺
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static WheelJointPtr Create(World* world, Param const& param);
WheelJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 获取关节当前的平移距离
+ /// @brief 鑾峰彇鍏宠妭褰撳墠鐨勫钩绉昏窛绂
float GetJointTranslation() const;
/// \~chinese
- /// @brief 获取关节当前的线性速度
+ /// @brief 鑾峰彇鍏宠妭褰撳墠鐨勭嚎鎬ч熷害
float GetJointLinearSpeed() const;
/// \~chinese
- /// @brief 获取关节当前的角度
+ /// @brief 鑾峰彇鍏宠妭褰撳墠鐨勮搴
float GetJointAngle() const;
/// \~chinese
- /// @brief 获取关节当前的旋转速度
+ /// @brief 鑾峰彇鍏宠妭褰撳墠鐨勬棆杞熷害
float GetJointAngularSpeed() const;
/// \~chinese
- /// @brief 是否启用马达
+ /// @brief 鏄惁鍚敤椹揪
bool IsMotorEnabled() const;
/// \~chinese
- /// @brief 设置是否启用马达
+ /// @brief 璁剧疆鏄惁鍚敤椹揪
void EnableMotor(bool flag);
/// \~chinese
- /// @brief 设置马达转速 [degree/s]
+ /// @brief 璁剧疆椹揪杞 [degree/s]
void SetMotorSpeed(float speed);
/// \~chinese
- /// @brief 获取马达转速 [degree/s]
+ /// @brief 鑾峰彇椹揪杞 [degree/s]
float GetMotorSpeed() const;
/// \~chinese
- /// @brief 设置最大马达转矩 [N/m]
+ /// @brief 璁剧疆鏈澶ч┈杈捐浆鐭 [N/m]
void SetMaxMotorTorque(float torque);
/// \~chinese
- /// @brief 获取最大马达转矩 [N/m]
+ /// @brief 鑾峰彇鏈澶ч┈杈捐浆鐭 [N/m]
float GetMaxMotorTorque() const;
/// \~chinese
- /// @brief 设置弹簧响应速度
+ /// @brief 璁剧疆寮圭哀鍝嶅簲閫熷害
void SetSpringFrequencyHz(float hz);
/// \~chinese
- /// @brief 获取弹簧响应速度
+ /// @brief 鑾峰彇寮圭哀鍝嶅簲閫熷害
float GetSpringFrequencyHz() const;
/// \~chinese
- /// @brief 设置弹簧阻尼率
+ /// @brief 璁剧疆寮圭哀闃诲凹鐜
void SetSpringDampingRatio(float ratio);
/// \~chinese
- /// @brief 获取弹簧阻尼率
+ /// @brief 鑾峰彇寮圭哀闃诲凹鐜
float GetSpringDampingRatio() const;
private:
@@ -892,19 +892,19 @@ private:
};
/// \~chinese
-/// @brief 鼠标关节
-/// @details 用于使身体的某个点追踪世界上的指定点,例如让物体追踪鼠标位置
+/// @brief 榧犳爣鍏宠妭
+/// @details 鐢ㄤ簬浣胯韩浣撶殑鏌愪釜鐐硅拷韪笘鐣屼笂鐨勬寚瀹氱偣锛屼緥濡傝鐗╀綋杩借釜榧犳爣浣嶇疆
class KGE_API MouseJoint : public Joint
{
public:
/// \~chinese
- /// @brief 鼠标关节参数
+ /// @brief 榧犳爣鍏宠妭鍙傛暟
struct Param : public Joint::ParamBase
{
- Point target; ///< 关节作用目标位置
- float max_force; ///< 作用在物体A上的最大力
- float frequency_hz; ///< 响应速度,数值越高关节响应的速度越快,看上去越坚固
- float damping_ratio; ///< 阻尼率,值越大关节运动阻尼越大
+ Point target; ///< 鍏宠妭浣滅敤鐩爣浣嶇疆
+ float max_force; ///< 浣滅敤鍦ㄧ墿浣揂涓婄殑鏈澶у姏
+ float frequency_hz; ///< 鍝嶅簲閫熷害锛屾暟鍊艰秺楂樺叧鑺傚搷搴旂殑閫熷害瓒婂揩锛岀湅涓婂幓瓒婂潥鍥
+ float damping_ratio; ///< 闃诲凹鐜囷紝鍊艰秺澶у叧鑺傝繍鍔ㄩ樆灏艰秺澶
Param(Body* body_a, Body* body_b, Point const& target, float max_force, float frequency_hz = 5.0f,
float damping_ratio = 0.7f)
@@ -924,39 +924,39 @@ public:
};
/// \~chinese
- /// @brief 创建鼠标关节
- /// @param world 物理世界
- /// @param param 关节参数
+ /// @brief 鍒涘缓榧犳爣鍏宠妭
+ /// @param world 鐗╃悊涓栫晫
+ /// @param param 鍏宠妭鍙傛暟
static MouseJointPtr Create(World* world, Param const& param);
MouseJoint();
/// \~chinese
- /// @brief 初始化关节
+ /// @brief 鍒濆鍖栧叧鑺
bool InitJoint(World* world, Param const& param);
/// \~chinese
- /// @brief 设定最大摩擦力 [N]
+ /// @brief 璁惧畾鏈澶ф懇鎿﹀姏 [N]
void SetMaxForce(float force);
/// \~chinese
- /// @brief 获取最大摩擦力 [N]
+ /// @brief 鑾峰彇鏈澶ф懇鎿﹀姏 [N]
float GetMaxForce() const;
/// \~chinese
- /// @brief 设置响应速度 [hz]
+ /// @brief 璁剧疆鍝嶅簲閫熷害 [hz]
void SetFrequency(float hz);
/// \~chinese
- /// @brief 获取响应速度 [hz]
+ /// @brief 鑾峰彇鍝嶅簲閫熷害 [hz]
float GetFrequency() const;
/// \~chinese
- /// @brief 设置阻尼率
+ /// @brief 璁剧疆闃诲凹鐜
void SetDampingRatio(float ratio);
/// \~chinese
- /// @brief 获取阻尼率
+ /// @brief 鑾峰彇闃诲凹鐜
float GetDampingRatio() const;
private:
diff --git a/src/kiwano-physics/World.h b/src/kiwano-physics/World.h
index 335f5069..6b5a4a49 100644
--- a/src/kiwano-physics/World.h
+++ b/src/kiwano-physics/World.h
@@ -30,7 +30,7 @@ KGE_DECLARE_SMART_PTR(World);
/**
* \~chinese
- * \defgroup Physics 物理引擎
+ * \defgroup Physics 鐗╃悊寮曟搸
*/
/**
@@ -40,7 +40,7 @@ KGE_DECLARE_SMART_PTR(World);
/**
* \~chinese
- * @brief 物理世界
+ * @brief 鐗╃悊涓栫晫
*/
class KGE_API World : public Stage
{
@@ -53,53 +53,53 @@ public:
virtual ~World();
/// \~chinese
- /// @brief 获取重力 [N]
+ /// @brief 鑾峰彇閲嶅姏 [N]
Vec2 GetGravity() const;
/// \~chinese
- /// @brief 设置重力 [N]
+ /// @brief 璁剧疆閲嶅姏 [N]
void SetGravity(Vec2 gravity);
/// \~chinese
- /// @brief 获取物理接触列表
+ /// @brief 鑾峰彇鐗╃悊鎺ヨЕ鍒楄〃
ContactList GetContactList();
/// \~chinese
- /// @brief 获取全局缩放比例
- /// @details 缩放比例是指由物理世界的单位米转换到屏幕像素的比例,默认比例为1:100
+ /// @brief 鑾峰彇鍏ㄥ眬缂╂斁姣斾緥
+ /// @details 缂╂斁姣斾緥鏄寚鐢辩墿鐞嗕笘鐣岀殑鍗曚綅绫宠浆鎹㈠埌灞忓箷鍍忕礌鐨勬瘮渚嬶紝榛樿姣斾緥涓1:100
float GetGlobalScale() const;
/// \~chinese
- /// @brief 设置全局缩放比例
- /// @details 缩放比例是指由物理世界的单位米转换到屏幕像素的比例,默认比例为1:100
+ /// @brief 璁剧疆鍏ㄥ眬缂╂斁姣斾緥
+ /// @details 缂╂斁姣斾緥鏄寚鐢辩墿鐞嗕笘鐣岀殑鍗曚綅绫宠浆鎹㈠埌灞忓箷鍍忕礌鐨勬瘮渚嬶紝榛樿姣斾緥涓1:100
void SetGlobalScale(float scale);
/// \~chinese
- /// @brief 游戏世界单位转换为物理世界单位
- /// @details 根据全局缩放比例将物理世界的单位米转换为像素单位
+ /// @brief 娓告垙涓栫晫鍗曚綅杞崲涓虹墿鐞嗕笘鐣屽崟浣
+ /// @details 鏍规嵁鍏ㄥ眬缂╂斁姣斾緥灏嗙墿鐞嗕笘鐣岀殑鍗曚綅绫宠浆鎹负鍍忕礌鍗曚綅
float World2Stage(float value) const;
/// \~chinese
- /// @brief 游戏世界单位转换为物理世界单位
- /// @details 根据全局缩放比例将物理世界的单位米转换为像素单位
+ /// @brief 娓告垙涓栫晫鍗曚綅杞崲涓虹墿鐞嗕笘鐣屽崟浣
+ /// @details 鏍规嵁鍏ㄥ眬缂╂斁姣斾緥灏嗙墿鐞嗕笘鐣岀殑鍗曚綅绫宠浆鎹负鍍忕礌鍗曚綅
Vec2 World2Stage(const b2Vec2& pos) const;
/// \~chinese
- /// @brief 物理世界单位转换为游戏世界单位
- /// @details 根据全局缩放比例将像素单位转换为物理世界的单位米
+ /// @brief 鐗╃悊涓栫晫鍗曚綅杞崲涓烘父鎴忎笘鐣屽崟浣
+ /// @details 鏍规嵁鍏ㄥ眬缂╂斁姣斾緥灏嗗儚绱犲崟浣嶈浆鎹负鐗╃悊涓栫晫鐨勫崟浣嶇背
float Stage2World(float value) const;
/// \~chinese
- /// @brief 物理世界单位转换为游戏世界单位
- /// @details 根据全局缩放比例将像素单位转换为物理世界的单位米
+ /// @brief 鐗╃悊涓栫晫鍗曚綅杞崲涓烘父鎴忎笘鐣屽崟浣
+ /// @details 鏍规嵁鍏ㄥ眬缂╂斁姣斾緥灏嗗儚绱犲崟浣嶈浆鎹负鐗╃悊涓栫晫鐨勫崟浣嶇背
b2Vec2 Stage2World(const Vec2& pos) const;
/// \~chinese
- /// @brief 设置速度迭代次数, 默认为 6
+ /// @brief 璁剧疆閫熷害杩唬娆℃暟, 榛樿涓 6
void SetVelocityIterations(int vel_iter);
/// \~chinese
- /// @brief 设置位置迭代次数, 默认为 2
+ /// @brief 璁剧疆浣嶇疆杩唬娆℃暟, 榛樿涓 2
void SetPositionIterations(int pos_iter);
b2World* GetB2World();
@@ -108,27 +108,27 @@ public:
private:
/// \~chinese
- /// @brief 移除物体
+ /// @brief 绉婚櫎鐗╀綋
void RemoveBody(Body* body);
/// \~chinese
- /// @brief 移除所有物体
+ /// @brief 绉婚櫎鎵鏈夌墿浣
void RemoveAllBodies();
/// \~chinese
- /// @brief 添加关节
+ /// @brief 娣诲姞鍏宠妭
void AddJoint(Joint* joint);
/// \~chinese
- /// @brief 移除关节
+ /// @brief 绉婚櫎鍏宠妭
void RemoveJoint(Joint* joint);
/// \~chinese
- /// @brief 移除所有关节
+ /// @brief 绉婚櫎鎵鏈夊叧鑺
void RemoveAllJoints();
/// \~chinese
- /// @brief 关节被移除
+ /// @brief 鍏宠妭琚Щ闄
void JointRemoved(b2Joint* joint);
protected:
diff --git a/src/kiwano/2d/Actor.h b/src/kiwano/2d/Actor.h
index 1892183c..49cd0c92 100644
--- a/src/kiwano/2d/Actor.h
+++ b/src/kiwano/2d/Actor.h
@@ -36,7 +36,7 @@ KGE_DECLARE_SMART_PTR(Actor);
/**
* \~chinese
- * \defgroup Actors 基础角色
+ * \defgroup Actors 鍩虹瑙掕壊
*/
/**
@@ -46,9 +46,9 @@ KGE_DECLARE_SMART_PTR(Actor);
/**
* \~chinese
- * @brief 角色
+ * @brief 瑙掕壊
* @details
- * 角色是舞台上最基本的元素,是完成渲染、更新、事件分发等功能的最小单位,也是动画、定时器、事件监听等功能的载体
+ * 瑙掕壊鏄垶鍙颁笂鏈鍩烘湰鐨勫厓绱狅紝鏄畬鎴愭覆鏌撱佹洿鏂般佷簨浠跺垎鍙戠瓑鍔熻兘鐨勬渶灏忓崟浣嶏紝涔熸槸鍔ㄧ敾銆佸畾鏃跺櫒銆佷簨浠剁洃鍚瓑鍔熻兘鐨勮浇浣
*/
class KGE_API Actor
: public virtual ObjectBase
@@ -63,15 +63,15 @@ class KGE_API Actor
public:
/// \~chinese
- /// @brief 子成员列表
+ /// @brief 瀛愭垚鍛樺垪琛
using Children = IntrusiveList;
/// \~chinese
- /// @brief 角色更新回调函数
+ /// @brief 瑙掕壊鏇存柊鍥炶皟鍑芥暟
using UpdateCallback = Function;
/// \~chinese
- /// @brief 创建角色
+ /// @brief 鍒涘缓瑙掕壊
static ActorPtr Create();
Actor();
@@ -79,372 +79,372 @@ public:
virtual ~Actor();
/// \~chinese
- /// @brief 更新角色
- /// @details 每帧画面刷新前调用该函数,重载该函数以实现角色的更新处理
- /// @param dt 距上一次更新的时间间隔
+ /// @brief 鏇存柊瑙掕壊
+ /// @details 姣忓抚鐢婚潰鍒锋柊鍓嶈皟鐢ㄨ鍑芥暟锛岄噸杞借鍑芥暟浠ュ疄鐜拌鑹茬殑鏇存柊澶勭悊
+ /// @param dt 璺濅笂涓娆℃洿鏂扮殑鏃堕棿闂撮殧
virtual void OnUpdate(Duration dt);
/// \~chinese
- /// @brief 渲染角色
+ /// @brief 娓叉煋瑙掕壊
/// @details
- /// 每帧画面刷新时调用该函数,默认不进行渲染,重载该函数以实现具体渲染过程
- /// @param ctx 渲染上下文
+ /// 姣忓抚鐢婚潰鍒锋柊鏃惰皟鐢ㄨ鍑芥暟锛岄粯璁や笉杩涜娓叉煋锛岄噸杞借鍑芥暟浠ュ疄鐜板叿浣撴覆鏌撹繃绋
+ /// @param ctx 娓叉煋涓婁笅鏂
virtual void OnRender(RenderContext& ctx);
/// \~chinese
- /// @brief 获取显示状态
+ /// @brief 鑾峰彇鏄剧ず鐘舵
bool IsVisible() const;
/// \~chinese
- /// @brief 获取响应状态
+ /// @brief 鑾峰彇鍝嶅簲鐘舵
bool IsResponsible() const;
/// \~chinese
- /// @brief 是否启用级联透明度
+ /// @brief 鏄惁鍚敤绾ц仈閫忔槑搴
bool IsCascadeOpacityEnabled() const;
/// \~chinese
- /// @brief 获取名称的 Hash 值
+ /// @brief 鑾峰彇鍚嶇О鐨 Hash 鍊
size_t GetHashName() const;
/// \~chinese
- /// @brief 获取 Z 轴顺序
+ /// @brief 鑾峰彇 Z 杞撮『搴
int GetZOrder() const;
/// \~chinese
- /// @brief 获取坐标
+ /// @brief 鑾峰彇鍧愭爣
Point const& GetPosition() const;
/// \~chinese
- /// @brief 获取 x 坐标
+ /// @brief 鑾峰彇 x 鍧愭爣
float GetPositionX() const;
/// \~chinese
- /// @brief 获取 y 坐标
+ /// @brief 鑾峰彇 y 鍧愭爣
float GetPositionY() const;
/// \~chinese
- /// @brief 获取宽度
+ /// @brief 鑾峰彇瀹藉害
float GetWidth() const;
/// \~chinese
- /// @brief 获取高度
+ /// @brief 鑾峰彇楂樺害
float GetHeight() const;
/// \~chinese
- /// @brief 获取大小
+ /// @brief 鑾峰彇澶у皬
Size const& GetSize() const;
/// \~chinese
- /// @brief 获取缩放后的宽度
+ /// @brief 鑾峰彇缂╂斁鍚庣殑瀹藉害
float GetScaledWidth() const;
/// \~chinese
- /// @brief 获取缩放后的高度
+ /// @brief 鑾峰彇缂╂斁鍚庣殑楂樺害
float GetScaledHeight() const;
/// \~chinese
- /// @brief 获取缩放后的大小
+ /// @brief 鑾峰彇缂╂斁鍚庣殑澶у皬
Size GetScaledSize() const;
/// \~chinese
- /// @brief 获取锚点
+ /// @brief 鑾峰彇閿氱偣
Point const& GetAnchor() const;
/// \~chinese
- /// @brief 获取 x 方向锚点
+ /// @brief 鑾峰彇 x 鏂瑰悜閿氱偣
float GetAnchorX() const;
/// \~chinese
- /// @brief 获取 y 方向锚点
+ /// @brief 鑾峰彇 y 鏂瑰悜閿氱偣
float GetAnchorY() const;
/// \~chinese
- /// @brief 获取透明度
+ /// @brief 鑾峰彇閫忔槑搴
float GetOpacity() const;
/// \~chinese
- /// @brief 获取显示透明度
+ /// @brief 鑾峰彇鏄剧ず閫忔槑搴
float GetDisplayedOpacity() const;
/// \~chinese
- /// @brief 获取旋转角度
+ /// @brief 鑾峰彇鏃嬭浆瑙掑害
float GetRotation() const;
/// \~chinese
- /// @brief 获取缩放比例
+ /// @brief 鑾峰彇缂╂斁姣斾緥
Point const& GetScale() const;
/// \~chinese
- /// @brief 获取横向缩放比例
+ /// @brief 鑾峰彇妯悜缂╂斁姣斾緥
float GetScaleX() const;
/// \~chinese
- /// @brief 获取纵向缩放比例
+ /// @brief 鑾峰彇绾靛悜缂╂斁姣斾緥
float GetScaleY() const;
/// \~chinese
- /// @brief 获取错切角度
+ /// @brief 鑾峰彇閿欏垏瑙掑害
Point const& GetSkew() const;
/// \~chinese
- /// @brief 获取横向错切角度
+ /// @brief 鑾峰彇妯悜閿欏垏瑙掑害
float GetSkewX() const;
/// \~chinese
- /// @brief 获取纵向错切角度
+ /// @brief 鑾峰彇绾靛悜閿欏垏瑙掑害
float GetSkewY() const;
/// \~chinese
- /// @brief 获取变换
+ /// @brief 鑾峰彇鍙樻崲
Transform GetTransform() const;
/// \~chinese
- /// @brief 获取父角色
+ /// @brief 鑾峰彇鐖惰鑹
Actor* GetParent() const;
/// \~chinese
- /// @brief 获取所在舞台
+ /// @brief 鑾峰彇鎵鍦ㄨ垶鍙
Stage* GetStage() const;
/// \~chinese
- /// @brief 获取边框
+ /// @brief 鑾峰彇杈规
virtual Rect GetBounds() const;
/// \~chinese
- /// @brief 获取外切包围盒
+ /// @brief 鑾峰彇澶栧垏鍖呭洿鐩
virtual Rect GetBoundingBox() const;
/// \~chinese
- /// @brief 获取二维变换矩阵
+ /// @brief 鑾峰彇浜岀淮鍙樻崲鐭╅樀
Matrix3x2 const& GetTransformMatrix() const;
/// \~chinese
- /// @brief 获取二维变换的逆矩阵
+ /// @brief 鑾峰彇浜岀淮鍙樻崲鐨勯嗙煩闃
Matrix3x2 const& GetTransformInverseMatrix() const;
/// \~chinese
- /// @brief 设置角色是否可见
+ /// @brief 璁剧疆瑙掕壊鏄惁鍙
void SetVisible(bool val);
/// \~chinese
- /// @brief 设置名称
+ /// @brief 璁剧疆鍚嶇О
void SetName(String const& name);
/// \~chinese
- /// @brief 设置坐标
+ /// @brief 璁剧疆鍧愭爣
virtual void SetPosition(Point const& point);
/// \~chinese
- /// @brief 设置坐标
+ /// @brief 璁剧疆鍧愭爣
void SetPosition(float x, float y);
/// \~chinese
- /// @brief 设置横坐标
+ /// @brief 璁剧疆妯潗鏍
void SetPositionX(float x);
/// \~chinese
- /// @brief 设置纵坐标
+ /// @brief 璁剧疆绾靛潗鏍
void SetPositionY(float y);
/// \~chinese
- /// @brief 移动坐标
+ /// @brief 绉诲姩鍧愭爣
void Move(Vec2 const& v);
/// \~chinese
- /// @brief 移动坐标
+ /// @brief 绉诲姩鍧愭爣
void Move(float vx, float vy);
/// \~chinese
- /// @brief 设置缩放比例,默认为 (1.0, 1.0)
+ /// @brief 璁剧疆缂╂斁姣斾緥锛岄粯璁や负 (1.0, 1.0)
virtual void SetScale(Vec2 const& scale);
/// \~chinese
- /// @brief 设置缩放比例,默认为 (1.0, 1.0)
+ /// @brief 璁剧疆缂╂斁姣斾緥锛岄粯璁や负 (1.0, 1.0)
void SetScale(float scalex, float scaley);
/// \~chinese
- /// @brief 设置错切角度,默认为 (0, 0)
+ /// @brief 璁剧疆閿欏垏瑙掑害锛岄粯璁や负 (0, 0)
virtual void SetSkew(Vec2 const& skew);
/// \~chinese
- /// @brief 设置错切角度,默认为 (0, 0)
+ /// @brief 璁剧疆閿欏垏瑙掑害锛岄粯璁や负 (0, 0)
void SetSkew(float skewx, float skewy);
/// \~chinese
- /// @brief 设置旋转角度,默认为 0
+ /// @brief 璁剧疆鏃嬭浆瑙掑害锛岄粯璁や负 0
virtual void SetRotation(float rotation);
/// \~chinese
- /// @brief 设置锚点位置,默认为 (0, 0), 范围 [0, 1]
+ /// @brief 璁剧疆閿氱偣浣嶇疆锛岄粯璁や负 (0, 0), 鑼冨洿 [0, 1]
virtual void SetAnchor(Vec2 const& anchor);
/// \~chinese
- /// @brief 设置锚点位置,默认为 (0, 0), 范围 [0, 1]
+ /// @brief 璁剧疆閿氱偣浣嶇疆锛岄粯璁や负 (0, 0), 鑼冨洿 [0, 1]
void SetAnchor(float anchorx, float anchory);
/// \~chinese
- /// @brief 修改宽度
+ /// @brief 淇敼瀹藉害
virtual void SetWidth(float width);
/// \~chinese
- /// @brief 修改高度
+ /// @brief 淇敼楂樺害
virtual void SetHeight(float height);
/// \~chinese
- /// @brief 修改大小
+ /// @brief 淇敼澶у皬
virtual void SetSize(Size const& size);
/// \~chinese
- /// @brief 修改大小
+ /// @brief 淇敼澶у皬
void SetSize(float width, float height);
/// \~chinese
- /// @brief 设置透明度,默认为 1.0, 范围 [0, 1]
+ /// @brief 璁剧疆閫忔槑搴︼紝榛樿涓 1.0, 鑼冨洿 [0, 1]
virtual void SetOpacity(float opacity);
/// \~chinese
- /// @brief 启用或禁用级联透明度
+ /// @brief 鍚敤鎴栫鐢ㄧ骇鑱旈忔槑搴
void SetCascadeOpacityEnabled(bool enabled);
/// \~chinese
- /// @brief 设置二维仿射变换
+ /// @brief 璁剧疆浜岀淮浠垮皠鍙樻崲
void SetTransform(Transform const& transform);
/// \~chinese
- /// @brief 设置 Z 轴顺序,默认为 0
+ /// @brief 璁剧疆 Z 杞撮『搴忥紝榛樿涓 0
void SetZOrder(int zorder);
/// \~chinese
- /// @brief 设置角色是否可响应,默认为 false
- /// @details 可响应的角色会收到鼠标的 Hover | Out | Click 消息
+ /// @brief 璁剧疆瑙掕壊鏄惁鍙搷搴旓紝榛樿涓 false
+ /// @details 鍙搷搴旂殑瑙掕壊浼氭敹鍒伴紶鏍囩殑 Hover | Out | Click 娑堟伅
void SetResponsible(bool enable);
/// \~chinese
- /// @brief 添加子角色
+ /// @brief 娣诲姞瀛愯鑹
void AddChild(ActorPtr child, int zorder = 0);
/// \~chinese
- /// @brief 添加子角色
+ /// @brief 娣诲姞瀛愯鑹
void AddChild(Actor* child, int zorder = 0);
/// \~chinese
- /// @brief 添加多个子角色
+ /// @brief 娣诲姞澶氫釜瀛愯鑹
void AddChildren(Vector const& children);
/// \~chinese
- /// @brief 获取名称相同的子角色
+ /// @brief 鑾峰彇鍚嶇О鐩稿悓鐨勫瓙瑙掕壊
Actor* GetChild(String const& name) const;
/// \~chinese
- /// @brief 获取所有名称相同的子角色
+ /// @brief 鑾峰彇鎵鏈夊悕绉扮浉鍚岀殑瀛愯鑹
Vector GetChildren(String const& name) const;
/// \~chinese
- /// @brief 获取全部子角色
+ /// @brief 鑾峰彇鍏ㄩ儴瀛愯鑹
Children& GetAllChildren();
/// \~chinese
- /// @brief 获取全部子角色
+ /// @brief 鑾峰彇鍏ㄩ儴瀛愯鑹
Children const& GetAllChildren() const;
/// \~chinese
- /// @brief 移除子角色
+ /// @brief 绉婚櫎瀛愯鑹
void RemoveChild(ActorPtr child);
/// \~chinese
- /// @brief 移除子角色
+ /// @brief 绉婚櫎瀛愯鑹
void RemoveChild(Actor* child);
/// \~chinese
- /// @brief 移除所有名称相同的子角色
+ /// @brief 绉婚櫎鎵鏈夊悕绉扮浉鍚岀殑瀛愯鑹
void RemoveChildren(String const& child_name);
/// \~chinese
- /// @brief 移除所有角色
+ /// @brief 绉婚櫎鎵鏈夎鑹
void RemoveAllChildren();
/// \~chinese
- /// @brief 从父角色移除
+ /// @brief 浠庣埗瑙掕壊绉婚櫎
void RemoveFromParent();
/// \~chinese
- /// @brief 暂停角色更新
+ /// @brief 鏆傚仠瑙掕壊鏇存柊
void PauseUpdating();
/// \~chinese
- /// @brief 继续角色更新
+ /// @brief 缁х画瑙掕壊鏇存柊
void ResumeUpdating();
/// \~chinese
- /// @brief 角色更新是否暂停
+ /// @brief 瑙掕壊鏇存柊鏄惁鏆傚仠
bool IsUpdatePausing() const;
/// \~chinese
- /// @brief 设置更新时的回调函数
+ /// @brief 璁剧疆鏇存柊鏃剁殑鍥炶皟鍑芥暟
void SetCallbackOnUpdate(UpdateCallback const& cb);
/// \~chinese
- /// @brief 获取更新时的回调函数
+ /// @brief 鑾峰彇鏇存柊鏃剁殑鍥炶皟鍑芥暟
UpdateCallback GetCallbackOnUpdate() const;
/// \~chinese
- /// @brief 判断点是否在角色内
+ /// @brief 鍒ゆ柇鐐规槸鍚﹀湪瑙掕壊鍐
virtual bool ContainsPoint(const Point& point) const;
/// \~chinese
- /// @brief 渲染角色边界
+ /// @brief 娓叉煋瑙掕壊杈圭晫
void ShowBorder(bool show);
/// \~chinese
- /// @brief 分发事件
- /// @param evt 事件
- /// @return 是否继续分发该事件
+ /// @brief 鍒嗗彂浜嬩欢
+ /// @param evt 浜嬩欢
+ /// @return 鏄惁缁х画鍒嗗彂璇ヤ簨浠
virtual bool DispatchEvent(Event* evt);
/// \~chinese
- /// @brief 设置默认锚点
+ /// @brief 璁剧疆榛樿閿氱偣
static void SetDefaultAnchor(float anchor_x, float anchor_y);
protected:
/// \~chinese
- /// @brief 更新自身和所有子角色
+ /// @brief 鏇存柊鑷韩鍜屾墍鏈夊瓙瑙掕壊
virtual void Update(Duration dt);
/// \~chinese
- /// @brief 渲染自身和所有子角色
+ /// @brief 娓叉煋鑷韩鍜屾墍鏈夊瓙瑙掕壊
virtual void Render(RenderContext& ctx);
/// \~chinese
- /// @brief 绘制自身和所有子角色的边界
+ /// @brief 缁樺埗鑷韩鍜屾墍鏈夊瓙瑙掕壊鐨勮竟鐣
virtual void RenderBorder(RenderContext& ctx);
/// \~chinese
- /// @brief 检查是否在渲染上下文的视区内
+ /// @brief 妫鏌ユ槸鍚﹀湪娓叉煋涓婁笅鏂囩殑瑙嗗尯鍐
virtual bool CheckVisibility(RenderContext& ctx) const;
/// \~chinese
- /// @brief 渲染前初始化渲染上下文状态,仅当 CheckVisibility 返回真时调用该函数
+ /// @brief 娓叉煋鍓嶅垵濮嬪寲娓叉煋涓婁笅鏂囩姸鎬侊紝浠呭綋 CheckVisibility 杩斿洖鐪熸椂璋冪敤璇ュ嚱鏁
virtual void PrepareToRender(RenderContext& ctx);
/// \~chinese
- /// @brief 更新自己的二维变换,并通知所有子角色
+ /// @brief 鏇存柊鑷繁鐨勪簩缁村彉鎹紝骞堕氱煡鎵鏈夊瓙瑙掕壊
void UpdateTransform() const;
/// \~chinese
- /// @brief 更新自己和所有子角色的透明度
+ /// @brief 鏇存柊鑷繁鍜屾墍鏈夊瓙瑙掕壊鐨勯忔槑搴
void UpdateOpacity();
/// \~chinese
- /// @brief 将所有子角色按Z轴顺序排序
+ /// @brief 灏嗘墍鏈夊瓙瑙掕壊鎸塟杞撮『搴忔帓搴
void Reorder();
/// \~chinese
- /// @brief 设置节点所在舞台
+ /// @brief 璁剧疆鑺傜偣鎵鍦ㄨ垶鍙
void SetStage(Stage* stage);
/// \~chinese
- /// @brief 处理事件
+ /// @brief 澶勭悊浜嬩欢
void HandleEvent(Event* evt);
private:
diff --git a/src/kiwano/2d/Button.h b/src/kiwano/2d/Button.h
index 68fa60b9..5746e0ed 100644
--- a/src/kiwano/2d/Button.h
+++ b/src/kiwano/2d/Button.h
@@ -30,13 +30,13 @@ KGE_DECLARE_SMART_PTR(TextButton);
/**
* \~chinese
- * @brief 按钮
+ * @brief 鎸夐挳
*/
class KGE_API Button : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 按钮回调函数
+ /// @brief 鎸夐挳鍥炶皟鍑芥暟
using Callback = Function;
Button();
@@ -44,53 +44,53 @@ public:
virtual ~Button();
/// \~chinese
- /// @brief 获取按钮状态是启用还是禁用
+ /// @brief 鑾峰彇鎸夐挳鐘舵佹槸鍚敤杩樻槸绂佺敤
bool IsEnable() const;
/// \~chinese
- /// @brief 设置按钮启用或禁用
+ /// @brief 璁剧疆鎸夐挳鍚敤鎴栫鐢
void SetEnabled(bool enabled);
/// \~chinese
- /// @brief 设置按钮点击后的回调函数
+ /// @brief 璁剧疆鎸夐挳鐐瑰嚮鍚庣殑鍥炶皟鍑芥暟
void SetClickCallback(const Callback& func);
/// \~chinese
- /// @brief 设置按钮被按下时的回调函数
+ /// @brief 璁剧疆鎸夐挳琚寜涓嬫椂鐨勫洖璋冨嚱鏁
void SetPressedCallback(const Callback& func);
/// \~chinese
- /// @brief 设置按钮被抬起时的回调函数
+ /// @brief 璁剧疆鎸夐挳琚姮璧锋椂鐨勫洖璋冨嚱鏁
void SetReleasedCallback(const Callback& func);
/// \~chinese
- /// @brief 设置鼠标移入按钮时的回调函数
+ /// @brief 璁剧疆榧犳爣绉诲叆鎸夐挳鏃剁殑鍥炶皟鍑芥暟
void SetMouseOverCallback(const Callback& func);
/// \~chinese
- /// @brief 设置鼠标移出按钮时的回调函数
+ /// @brief 璁剧疆榧犳爣绉诲嚭鎸夐挳鏃剁殑鍥炶皟鍑芥暟
void SetMouseOutCallback(const Callback& func);
/// \~chinese
- /// @brief 按钮状态
+ /// @brief 鎸夐挳鐘舵
enum class Status
{
- Normal, ///< 普通
- Hover, ///< 鼠标在按钮内
- Pressed ///< 被按下
+ Normal, ///< 鏅
+ Hover, ///< 榧犳爣鍦ㄦ寜閽唴
+ Pressed ///< 琚寜涓
};
/// \~chinese
- /// @brief 设置按钮状态
+ /// @brief 璁剧疆鎸夐挳鐘舵
void SetStatus(Status status);
/// \~chinese
- /// @brief 获取按钮状态
+ /// @brief 鑾峰彇鎸夐挳鐘舵
Status GetStatus() const;
protected:
/// \~chinese
- /// @brief 更新按钮状态
+ /// @brief 鏇存柊鎸夐挳鐘舵
void UpdateStatus(Event* evt);
private:
@@ -104,7 +104,7 @@ private:
};
/// \~chinese
-/// @brief 精灵按钮
+/// @brief 绮剧伒鎸夐挳
class SpriteButton
: public Sprite
, public Button
@@ -113,22 +113,22 @@ public:
SpriteButton();
/// \~chinese
- /// @brief 创建精灵按钮
- /// @param click 按钮点击回调函数
+ /// @brief 鍒涘缓绮剧伒鎸夐挳
+ /// @param click 鎸夐挳鐐瑰嚮鍥炶皟鍑芥暟
static SpriteButtonPtr Create(Callback const& click);
/// \~chinese
- /// @brief 创建精灵按钮
- /// @param click 按钮点击回调函数
- /// @param pressed 按钮按下回调函数
- /// @param mouse_over 按钮移入回调函数
- /// @param mouse_out 按钮移出回调函数
+ /// @brief 鍒涘缓绮剧伒鎸夐挳
+ /// @param click 鎸夐挳鐐瑰嚮鍥炶皟鍑芥暟
+ /// @param pressed 鎸夐挳鎸変笅鍥炶皟鍑芥暟
+ /// @param mouse_over 鎸夐挳绉诲叆鍥炶皟鍑芥暟
+ /// @param mouse_out 鎸夐挳绉诲嚭鍥炶皟鍑芥暟
static SpriteButtonPtr Create(Callback const& click, Callback const& pressed, Callback const& mouse_over,
Callback const& mouse_out);
};
/// \~chinese
-/// @brief 文字按钮
+/// @brief 鏂囧瓧鎸夐挳
class TextButton
: public TextActor
, public Button
@@ -137,16 +137,16 @@ public:
TextButton();
/// \~chinese
- /// @brief 创建文字按钮
- /// @param click 按钮点击回调函数
+ /// @brief 鍒涘缓鏂囧瓧鎸夐挳
+ /// @param click 鎸夐挳鐐瑰嚮鍥炶皟鍑芥暟
static TextButtonPtr Create(Callback const& click);
/// \~chinese
- /// @brief 创建文字按钮
- /// @param click 按钮点击回调函数
- /// @param pressed 按钮按下回调函数
- /// @param mouse_over 按钮移入回调函数
- /// @param mouse_out 按钮移出回调函数
+ /// @brief 鍒涘缓鏂囧瓧鎸夐挳
+ /// @param click 鎸夐挳鐐瑰嚮鍥炶皟鍑芥暟
+ /// @param pressed 鎸夐挳鎸変笅鍥炶皟鍑芥暟
+ /// @param mouse_over 鎸夐挳绉诲叆鍥炶皟鍑芥暟
+ /// @param mouse_out 鎸夐挳绉诲嚭鍥炶皟鍑芥暟
static TextButtonPtr Create(Callback const& click, Callback const& pressed, Callback const& mouse_over, Callback const& mouse_out);
};
} // namespace kiwano
diff --git a/src/kiwano/2d/Canvas.h b/src/kiwano/2d/Canvas.h
index fcc34ade..06d31ed4 100644
--- a/src/kiwano/2d/Canvas.h
+++ b/src/kiwano/2d/Canvas.h
@@ -35,245 +35,245 @@ KGE_DECLARE_SMART_PTR(Canvas);
/**
* \~chinese
- * @brief 画布
- * @details 用于绘制图形、图像、文字等各种类型的图元,同时可以将绘制内容导出至图像
+ * @brief 鐢诲竷
+ * @details 鐢ㄤ簬缁樺埗鍥惧舰銆佸浘鍍忋佹枃瀛楃瓑鍚勭绫诲瀷鐨勫浘鍏冿紝鍚屾椂鍙互灏嗙粯鍒跺唴瀹瑰鍑鸿嚦鍥惧儚
*/
class KGE_API Canvas : public Actor
{
public:
/// \~chinese
- /// @brief 创建画布
- /// @param size 画布大小
+ /// @brief 鍒涘缓鐢诲竷
+ /// @param size 鐢诲竷澶у皬
static CanvasPtr Create(Size const& size);
/// \~chinese
- /// @brief 开始绘图
+ /// @brief 寮濮嬬粯鍥
void BeginDraw();
/// \~chinese
- /// @brief 结束绘图
+ /// @brief 缁撴潫缁樺浘
void EndDraw();
/// \~chinese
- /// @brief 画形状轮廓
- /// @param shape 形状
+ /// @brief 鐢诲舰鐘惰疆寤
+ /// @param shape 褰㈢姸
void DrawShape(ShapePtr shape);
/// \~chinese
- /// @brief 画线段
- /// @param begin 线段起点
- /// @param end 线段终点
+ /// @brief 鐢荤嚎娈
+ /// @param begin 绾挎璧风偣
+ /// @param end 绾挎缁堢偣
void DrawLine(Point const& begin, Point const& end);
/// \~chinese
- /// @brief 画圆形边框
- /// @param center 圆形原点
- /// @param radius 圆形半径
+ /// @brief 鐢诲渾褰㈣竟妗
+ /// @param center 鍦嗗舰鍘熺偣
+ /// @param radius 鍦嗗舰鍗婂緞
void DrawCircle(Point const& center, float radius);
/// \~chinese
- /// @brief 画椭圆形边框
- /// @param center 椭圆原点
- /// @param radius 椭圆半径
+ /// @brief 鐢绘き鍦嗗舰杈规
+ /// @param center 妞渾鍘熺偣
+ /// @param radius 妞渾鍗婂緞
void DrawEllipse(Point const& center, Vec2 const& radius);
/// \~chinese
- /// @brief 画矩形边框
- /// @param rect 矩形
+ /// @brief 鐢荤煩褰㈣竟妗
+ /// @param rect 鐭╁舰
void DrawRect(Rect const& rect);
/// \~chinese
- /// @brief 画圆角矩形边框
- /// @param rect 矩形
- /// @param radius 矩形圆角半径
+ /// @brief 鐢诲渾瑙掔煩褰㈣竟妗
+ /// @param rect 鐭╁舰
+ /// @param radius 鐭╁舰鍦嗚鍗婂緞
void DrawRoundedRect(Rect const& rect, Vec2 const& radius);
/// \~chinese
- /// @brief 填充形状
- /// @param shape 形状
+ /// @brief 濉厖褰㈢姸
+ /// @param shape 褰㈢姸
void FillShape(ShapePtr shape);
/// \~chinese
- /// @brief 填充圆形
- /// @param center 圆形原点
- /// @param radius 圆形半径
+ /// @brief 濉厖鍦嗗舰
+ /// @param center 鍦嗗舰鍘熺偣
+ /// @param radius 鍦嗗舰鍗婂緞
void FillCircle(Point const& center, float radius);
/// \~chinese
- /// @brief 填充椭圆形
- /// @param center 椭圆原点
- /// @param radius 椭圆半径
+ /// @brief 濉厖妞渾褰
+ /// @param center 妞渾鍘熺偣
+ /// @param radius 妞渾鍗婂緞
void FillEllipse(Point const& center, Vec2 const& radius);
/// \~chinese
- /// @brief 填充矩形
- /// @param rect 矩形
+ /// @brief 濉厖鐭╁舰
+ /// @param rect 鐭╁舰
void FillRect(Rect const& rect);
/// \~chinese
- /// @brief 填充圆角矩形
- /// @param rect 矩形
- /// @param radius 矩形圆角半径
+ /// @brief 濉厖鍦嗚鐭╁舰
+ /// @param rect 鐭╁舰
+ /// @param radius 鐭╁舰鍦嗚鍗婂緞
void FillRoundedRect(Rect const& rect, Vec2 const& radius);
/// \~chinese
- /// @brief 绘制纹理
- /// @param texture 纹理
- /// @param src_rect 纹理裁剪区域
- /// @param dest_rect 绘制目标区域
+ /// @brief 缁樺埗绾圭悊
+ /// @param texture 绾圭悊
+ /// @param src_rect 绾圭悊瑁佸壀鍖哄煙
+ /// @param dest_rect 缁樺埗鐩爣鍖哄煙
void DrawTexture(TexturePtr texture, const Rect* src_rect = nullptr, const Rect* dest_rect = nullptr);
/// \~chinese
- /// @brief 绘制文字布局
- /// @param text 文字
- /// @param point 绘制文字的位置
+ /// @brief 缁樺埗鏂囧瓧甯冨眬
+ /// @param text 鏂囧瓧
+ /// @param point 缁樺埗鏂囧瓧鐨勪綅缃
void DrawTextLayout(String const& text, Point const& point);
/// \~chinese
- /// @brief 绘制文字布局
- /// @param layout 文字布局
- /// @param point 绘制布局的位置
+ /// @brief 缁樺埗鏂囧瓧甯冨眬
+ /// @param layout 鏂囧瓧甯冨眬
+ /// @param point 缁樺埗甯冨眬鐨勪綅缃
void DrawTextLayout(TextLayout const& layout, Point const& point);
/// \~chinese
- /// @brief 开始绘制路径
- /// @param begin_pos 路径起始点
+ /// @brief 寮濮嬬粯鍒惰矾寰
+ /// @param begin_pos 璺緞璧峰鐐
void BeginPath(Point const& begin_pos);
/// \~chinese
- /// @brief 结束路径
- /// @param closed 路径是否闭合
+ /// @brief 缁撴潫璺緞
+ /// @param closed 璺緞鏄惁闂悎
void EndPath(bool closed = false);
/// \~chinese
- /// @brief 添加一条线段
- /// @param point 端点
+ /// @brief 娣诲姞涓鏉$嚎娈
+ /// @param point 绔偣
void AddLine(Point const& point);
/// \~chinese
- /// @brief 添加多条线段
- /// @param points 端点集合
+ /// @brief 娣诲姞澶氭潯绾挎
+ /// @param points 绔偣闆嗗悎
void AddLines(Vector const& points);
/// \~chinese
- /// @brief 添加一条三次方贝塞尔曲线
- /// @param point1 贝塞尔曲线的第一个控制点
- /// @param point2 贝塞尔曲线的第二个控制点
- /// @param point3 贝塞尔曲线的终点
+ /// @brief 娣诲姞涓鏉′笁娆℃柟璐濆灏旀洸绾
+ /// @param point1 璐濆灏旀洸绾跨殑绗竴涓帶鍒剁偣
+ /// @param point2 璐濆灏旀洸绾跨殑绗簩涓帶鍒剁偣
+ /// @param point3 璐濆灏旀洸绾跨殑缁堢偣
void AddBezier(Point const& point1, Point const& point2, Point const& point3);
/// \~chinese
- /// @brief 添加弧线
- /// @param point 终点
- /// @param radius 椭圆半径
- /// @param rotation 椭圆旋转角度
- /// @param clockwise 顺时针 or 逆时针
- /// @param is_small 是否取小于 180° 的弧
+ /// @brief 娣诲姞寮х嚎
+ /// @param point 缁堢偣
+ /// @param radius 妞渾鍗婂緞
+ /// @param rotation 妞渾鏃嬭浆瑙掑害
+ /// @param clockwise 椤烘椂閽 or 閫嗘椂閽
+ /// @param is_small 鏄惁鍙栧皬浜 180掳 鐨勫姬
void AddArc(Point const& point, Size const& radius, float rotation, bool clockwise = true, bool is_small = true);
/// \~chinese
- /// @brief 以描边的方式绘制路径
+ /// @brief 浠ユ弿杈圭殑鏂瑰紡缁樺埗璺緞
void StrokePath();
/// \~chinese
- /// @brief 以填充的方式绘制路径
+ /// @brief 浠ュ~鍏呯殑鏂瑰紡缁樺埗璺緞
void FillPath();
/// \~chinese
- /// @brief 清空画布
+ /// @brief 娓呯┖鐢诲竷
void Clear();
/// \~chinese
- /// @brief 清空画布
- /// @param clear_color 清空颜色
+ /// @brief 娓呯┖鐢诲竷
+ /// @param clear_color 娓呯┖棰滆壊
void Clear(Color const& clear_color);
/// \~chinese
- /// @brief 设置填充颜色
- /// @param color 填充颜色
+ /// @brief 璁剧疆濉厖棰滆壊
+ /// @param color 濉厖棰滆壊
void SetFillColor(Color const& color);
/// \~chinese
- /// @brief 设置填充画刷
- /// @param[in] brush 填充画刷
+ /// @brief 璁剧疆濉厖鐢诲埛
+ /// @param[in] brush 濉厖鐢诲埛
void SetFillBrush(BrushPtr brush);
/// \~chinese
- /// @brief 设置轮廓颜色
- /// @param color 轮廓颜色
+ /// @brief 璁剧疆杞粨棰滆壊
+ /// @param color 杞粨棰滆壊
void SetStrokeColor(Color const& color);
/// \~chinese
- /// @brief 设置轮廓画刷
- /// @param[in] brush 轮廓画刷
+ /// @brief 璁剧疆杞粨鐢诲埛
+ /// @param[in] brush 杞粨鐢诲埛
void SetStrokeBrush(BrushPtr brush);
/// \~chinese
- /// @brief 设置轮廓宽度
- /// @param width 轮廓宽度
+ /// @brief 璁剧疆杞粨瀹藉害
+ /// @param width 杞粨瀹藉害
void SetStrokeWidth(float width);
/// \~chinese
- /// @brief 设置轮廓样式
- /// @param stroke_style 轮廓样式
+ /// @brief 璁剧疆杞粨鏍峰紡
+ /// @param stroke_style 杞粨鏍峰紡
void SetStrokeStyle(StrokeStylePtr stroke_style);
/// \~chinese
- /// @brief 设置文字画刷样式
- /// @param text_style 文字画刷样式
+ /// @brief 璁剧疆鏂囧瓧鐢诲埛鏍峰紡
+ /// @param text_style 鏂囧瓧鐢诲埛鏍峰紡
void SetTextStyle(TextStyle const& text_style);
/// \~chinese
- /// @brief 设置画刷
- /// @param[in] brush 画刷
+ /// @brief 璁剧疆鐢诲埛
+ /// @param[in] brush 鐢诲埛
void SetBrush(BrushPtr brush);
/// \~chinese
- /// @brief 设置画刷二维变换
- /// @param transform 二维变换
+ /// @brief 璁剧疆鐢诲埛浜岀淮鍙樻崲
+ /// @param transform 浜岀淮鍙樻崲
void SetBrushTransform(Transform const& transform);
/// \~chinese
- /// @brief 设置画刷二维变换矩阵
- /// @param transform 二维变换矩阵
+ /// @brief 璁剧疆鐢诲埛浜岀淮鍙樻崲鐭╅樀
+ /// @param transform 浜岀淮鍙樻崲鐭╅樀
void SetBrushTransform(Matrix3x2 const& transform);
/// \~chinese
- /// @brief 添加一个图层
- /// @param area 图层区域
+ /// @brief 娣诲姞涓涓浘灞
+ /// @param area 鍥惧眰鍖哄煙
void PushLayerArea(LayerArea& area);
/// \~chinese
- /// @brief 删除最近添加的图层
+ /// @brief 鍒犻櫎鏈杩戞坊鍔犵殑鍥惧眰
void PopLayerArea();
/// \~chinese
- /// @brief 添加一个裁剪区域
- /// @param clip_rect 裁剪矩形
+ /// @brief 娣诲姞涓涓鍓尯鍩
+ /// @param clip_rect 瑁佸壀鐭╁舰
void PushClipRect(Rect const& clip_rect);
/// \~chinese
- /// @brief 删除最近添加的裁剪区域
+ /// @brief 鍒犻櫎鏈杩戞坊鍔犵殑瑁佸壀鍖哄煙
void PopClipRect();
/// \~chinese
- /// @brief 获取轮廓宽度
+ /// @brief 鑾峰彇杞粨瀹藉害
float GetStrokeWidth() const;
/// \~chinese
- /// @brief 获取填充画刷
+ /// @brief 鑾峰彇濉厖鐢诲埛
BrushPtr GetFillBrush() const;
/// \~chinese
- /// @brief 获取轮廓画刷
+ /// @brief 鑾峰彇杞粨鐢诲埛
BrushPtr GetStrokeBrush() const;
/// \~chinese
- /// @brief 清空画布大小并重设画布大小
+ /// @brief 娓呯┖鐢诲竷澶у皬骞堕噸璁剧敾甯冨ぇ灏
void ResizeAndClear(Size size);
/// \~chinese
- /// @brief 导出纹理
+ /// @brief 瀵煎嚭绾圭悊
TexturePtr ExportToTexture() const;
void OnRender(RenderContext& ctx) override;
diff --git a/src/kiwano/2d/DebugActor.h b/src/kiwano/2d/DebugActor.h
index 16cca51d..2a0a9c73 100644
--- a/src/kiwano/2d/DebugActor.h
+++ b/src/kiwano/2d/DebugActor.h
@@ -31,7 +31,7 @@ namespace kiwano
/**
* \~chinese
- * @brief 调试节点
+ * @brief 璋冭瘯鑺傜偣
*/
class KGE_API DebugActor : public Actor
{
diff --git a/src/kiwano/2d/Frame.h b/src/kiwano/2d/Frame.h
index 3f47cd59..6e00f428 100644
--- a/src/kiwano/2d/Frame.h
+++ b/src/kiwano/2d/Frame.h
@@ -28,76 +28,76 @@ KGE_DECLARE_SMART_PTR(Frame);
/**
* \~chinese
- * @brief 图像帧
+ * @brief 鍥惧儚甯
*/
class KGE_API Frame : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 创建图像帧
- /// @param file_path 图像路径
+ /// @brief 鍒涘缓鍥惧儚甯
+ /// @param file_path 鍥惧儚璺緞
static FramePtr Create(String const& file_path);
/// \~chinese
- /// @brief 创建图像帧
- /// @param res 图像资源
+ /// @brief 鍒涘缓鍥惧儚甯
+ /// @param res 鍥惧儚璧勬簮
static FramePtr Create(Resource const& res);
/// \~chinese
- /// @brief 创建图像帧
- /// @param texture 纹理
+ /// @brief 鍒涘缓鍥惧儚甯
+ /// @param texture 绾圭悊
static FramePtr Create(TexturePtr texture);
/// \~chinese
- /// @brief 构建空图像帧
+ /// @brief 鏋勫缓绌哄浘鍍忓抚
Frame();
/// \~chinese
- /// @brief 加载图像
- /// @param file_path 图像路径
+ /// @brief 鍔犺浇鍥惧儚
+ /// @param file_path 鍥惧儚璺緞
bool Load(String const& file_path);
/// \~chinese
- /// @brief 加载图像
- /// @param res 图像资源
+ /// @brief 鍔犺浇鍥惧儚
+ /// @param res 鍥惧儚璧勬簮
bool Load(Resource const& res);
/// \~chinese
- /// @brief 裁剪图像帧为矩形
- /// @param crop_rect 裁剪矩形定义
+ /// @brief 瑁佸壀鍥惧儚甯т负鐭╁舰
+ /// @param crop_rect 瑁佸壀鐭╁舰瀹氫箟
void SetCropRect(Rect const& crop_rect);
/// \~chinese
- /// @brief 设置纹理
- /// @param texture 纹理
+ /// @brief 璁剧疆绾圭悊
+ /// @param texture 绾圭悊
void SetTexture(TexturePtr texture);
/// \~chinese
- /// @brief 是否有效
+ /// @brief 鏄惁鏈夋晥
bool IsValid() const;
/// \~chinese
- /// @brief 获取宽度
+ /// @brief 鑾峰彇瀹藉害
float GetWidth() const;
/// \~chinese
- /// @brief 获取高度
+ /// @brief 鑾峰彇楂樺害
float GetHeight() const;
/// \~chinese
- /// @brief 获取大小
+ /// @brief 鑾峰彇澶у皬
Size GetSize() const;
/// \~chinese
- /// @brief 获取裁剪位置
+ /// @brief 鑾峰彇瑁佸壀浣嶇疆
Point GetCropPoint() const;
/// \~chinese
- /// @brief 获取裁剪矩形
+ /// @brief 鑾峰彇瑁佸壀鐭╁舰
Rect const& GetCropRect() const;
/// \~chinese
- /// @brief 获取纹理
+ /// @brief 鑾峰彇绾圭悊
TexturePtr GetTexture() const;
private:
diff --git a/src/kiwano/2d/FrameSequence.h b/src/kiwano/2d/FrameSequence.h
index a067a355..b4fa6bb6 100644
--- a/src/kiwano/2d/FrameSequence.h
+++ b/src/kiwano/2d/FrameSequence.h
@@ -29,51 +29,51 @@ KGE_DECLARE_SMART_PTR(FrameSequence);
/**
* \~chinese
- * @brief 序列帧
+ * @brief 搴忓垪甯
*/
class KGE_API FrameSequence : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 创建序列帧
- /// @param frames 图像帧集合
+ /// @brief 鍒涘缓搴忓垪甯
+ /// @param frames 鍥惧儚甯ч泦鍚
static FrameSequencePtr Create(Vector const& frames);
/// \~chinese
- /// @brief 构建空序列帧
+ /// @brief 鏋勫缓绌哄簭鍒楀抚
FrameSequence();
virtual ~FrameSequence();
/// \~chinese
- /// @brief 添加关键帧
- /// @param frame 图像帧
+ /// @brief 娣诲姞鍏抽敭甯
+ /// @param frame 鍥惧儚甯
void AddFrame(FramePtr frame);
/// \~chinese
- /// @brief 添加多个关键帧
- /// @param frames 图像帧集合
+ /// @brief 娣诲姞澶氫釜鍏抽敭甯
+ /// @param frames 鍥惧儚甯ч泦鍚
void AddFrames(Vector const& frames);
/// \~chinese
- /// @brief 获取关键帧
- /// @param index 图像帧下标
+ /// @brief 鑾峰彇鍏抽敭甯
+ /// @param index 鍥惧儚甯т笅鏍
FramePtr GetFrame(size_t index) const;
/// \~chinese
- /// @brief 获取所有关键帧
+ /// @brief 鑾峰彇鎵鏈夊叧閿抚
Vector const& GetFrames() const;
/// \~chinese
- /// @brief 获取关键帧数量
+ /// @brief 鑾峰彇鍏抽敭甯ф暟閲
size_t GetFramesCount() const;
/// \~chinese
- /// @brief 获取序列帧的拷贝对象
+ /// @brief 鑾峰彇搴忓垪甯х殑鎷疯礉瀵硅薄
FrameSequencePtr Clone() const;
/// \~chinese
- /// @brief 获取序列帧的倒转
+ /// @brief 鑾峰彇搴忓垪甯х殑鍊掕浆
FrameSequencePtr Reverse() const;
private:
diff --git a/src/kiwano/2d/GifSprite.h b/src/kiwano/2d/GifSprite.h
index 145f7af4..64754b09 100644
--- a/src/kiwano/2d/GifSprite.h
+++ b/src/kiwano/2d/GifSprite.h
@@ -35,81 +35,81 @@ KGE_DECLARE_SMART_PTR(GifSprite);
/**
* \~chinese
- * @brief GIF 精灵
+ * @brief GIF 绮剧伒
*/
class KGE_API GifSprite : public Actor
{
public:
/// \~chinese
- /// @brief GIF播放循环结束回调
+ /// @brief GIF鎾斁寰幆缁撴潫鍥炶皟
using LoopDoneCallback = Function;
/// \~chinese
- /// @brief GIF播放结束回调
+ /// @brief GIF鎾斁缁撴潫鍥炶皟
using DoneCallback = Function;
/// \~chinese
- /// @brief 创建GIF精灵
- /// @param file_path GIF图片路径
+ /// @brief 鍒涘缓GIF绮剧伒
+ /// @param file_path GIF鍥剧墖璺緞
static GifSpritePtr Create(String const& file_path);
/// \~chinese
- /// @brief 创建GIF精灵
- /// @param res GIF图片资源
+ /// @brief 鍒涘缓GIF绮剧伒
+ /// @param res GIF鍥剧墖璧勬簮
static GifSpritePtr Create(Resource const& res);
/// \~chinese
- /// @brief 创建GIF精灵
- /// @param gif GIF图片
+ /// @brief 鍒涘缓GIF绮剧伒
+ /// @param gif GIF鍥剧墖
static GifSpritePtr Create(GifImagePtr gif);
GifSprite();
/// \~chinese
- /// @brief 加载GIF图片
- /// @param file_path GIF图片路径
+ /// @brief 鍔犺浇GIF鍥剧墖
+ /// @param file_path GIF鍥剧墖璺緞
bool Load(String const& file_path);
/// \~chinese
- /// @brief 加载GIF图片
- /// @param res GIF图片资源
+ /// @brief 鍔犺浇GIF鍥剧墖
+ /// @param res GIF鍥剧墖璧勬簮
bool Load(Resource const& res);
/// \~chinese
- /// @brief 加载GIF图片
- /// @param gif GIF图片
+ /// @brief 鍔犺浇GIF鍥剧墖
+ /// @param gif GIF鍥剧墖
bool Load(GifImagePtr gif);
/// \~chinese
- /// @brief 设置 GIF 动画循环次数
+ /// @brief 璁剧疆 GIF 鍔ㄧ敾寰幆娆℃暟
void SetLoopCount(int loops);
/// \~chinese
- /// @brief 设置 GIF 动画每次循环结束回调函数
+ /// @brief 璁剧疆 GIF 鍔ㄧ敾姣忔寰幆缁撴潫鍥炶皟鍑芥暟
void SetLoopDoneCallback(LoopDoneCallback const& cb);
/// \~chinese
- /// @brief 设置 GIF 动画结束回调函数
+ /// @brief 璁剧疆 GIF 鍔ㄧ敾缁撴潫鍥炶皟鍑芥暟
void SetDoneCallback(DoneCallback const& cb);
/// \~chinese
- /// @brief 设置 GIF 图像
+ /// @brief 璁剧疆 GIF 鍥惧儚
void SetGifImage(GifImagePtr gif);
/// \~chinese
- /// @brief 重新播放 GIF 动画
+ /// @brief 閲嶆柊鎾斁 GIF 鍔ㄧ敾
void RestartAnimation();
/// \~chinese
- /// @brief 获取 GIF 动画循环结束回调
+ /// @brief 鑾峰彇 GIF 鍔ㄧ敾寰幆缁撴潫鍥炶皟
LoopDoneCallback GetLoopDoneCallback() const;
/// \~chinese
- /// @brief 获取 GIF 动画播放结束回调
+ /// @brief 鑾峰彇 GIF 鍔ㄧ敾鎾斁缁撴潫鍥炶皟
DoneCallback GetDoneCallback() const;
/// \~chinese
- /// @brief 获取 GIF 图片
+ /// @brief 鑾峰彇 GIF 鍥剧墖
GifImagePtr GetGifImage() const;
void OnRender(RenderContext& ctx) override;
@@ -118,35 +118,35 @@ private:
void Update(Duration dt) override;
/// \~chinese
- /// @brief 是否是最后一帧
+ /// @brief 鏄惁鏄渶鍚庝竴甯
bool IsLastFrame() const;
/// \~chinese
- /// @brief 动画是否已结束
+ /// @brief 鍔ㄧ敾鏄惁宸茬粨鏉
bool EndOfAnimation() const;
/// \~chinese
- /// @brief 合成下一帧
+ /// @brief 鍚堟垚涓嬩竴甯
void ComposeNextFrame();
/// \~chinese
- /// @brief 解析当前图像帧
+ /// @brief 瑙f瀽褰撳墠鍥惧儚甯
void DisposeCurrentFrame();
/// \~chinese
- /// @brief 覆盖下一帧
+ /// @brief 瑕嗙洊涓嬩竴甯
void OverlayNextFrame();
/// \~chinese
- /// @brief 保存合成后的图像帧
+ /// @brief 淇濆瓨鍚堟垚鍚庣殑鍥惧儚甯
void SaveComposedFrame();
/// \~chinese
- /// @brief 恢复已保存的图像帧
+ /// @brief 鎭㈠宸蹭繚瀛樼殑鍥惧儚甯
void RestoreSavedFrame();
/// \~chinese
- /// @brief 清空当前图像区域
+ /// @brief 娓呯┖褰撳墠鍥惧儚鍖哄煙
void ClearCurrentFrameArea();
private:
diff --git a/src/kiwano/2d/Layer.h b/src/kiwano/2d/Layer.h
index 95fddb14..6b2d10ae 100644
--- a/src/kiwano/2d/Layer.h
+++ b/src/kiwano/2d/Layer.h
@@ -34,13 +34,13 @@ KGE_DECLARE_SMART_PTR(Layer);
/**
* \~chinese
- * @brief 图层
+ * @brief 鍥惧眰
*/
class KGE_API Layer : public Actor
{
public:
/// \~chinese
- /// @brief 创建图层
+ /// @brief 鍒涘缓鍥惧眰
static LayerPtr Create();
Layer();
@@ -48,41 +48,41 @@ public:
virtual ~Layer();
/// \~chinese
- /// @brief 是否开启消息吞没
+ /// @brief 鏄惁寮鍚秷鎭悶娌
bool IsSwallowEventsEnabled() const;
/// \~chinese
- /// @brief 设置消息吞没功能
- /// @param enabled 是否启用
+ /// @brief 璁剧疆娑堟伅鍚炴病鍔熻兘
+ /// @param enabled 鏄惁鍚敤
void SetSwallowEvents(bool enabled);
/// \~chinese
- /// @brief 设置裁剪区域
- /// @param clip_rect 裁剪矩形
+ /// @brief 璁剧疆瑁佸壀鍖哄煙
+ /// @param clip_rect 瑁佸壀鐭╁舰
void SetClipRect(Rect const& clip_rect);
/// \~chinese
- /// @brief 设置图层透明度
- /// @param opacity 透明度
+ /// @brief 璁剧疆鍥惧眰閫忔槑搴
+ /// @param opacity 閫忔槑搴
void SetOpacity(float opacity) override;
/// \~chinese
- /// @brief 设置几何蒙层
- /// @param mask 蒙层的形状
+ /// @brief 璁剧疆鍑犱綍钂欏眰
+ /// @param mask 钂欏眰鐨勫舰鐘
void SetMaskShape(ShapePtr mask);
/// \~chinese
- /// @brief 设置几何蒙层的二维变换
- /// @param transform 应用于蒙层的二维变换
+ /// @brief 璁剧疆鍑犱綍钂欏眰鐨勪簩缁村彉鎹
+ /// @param transform 搴旂敤浜庤挋灞傜殑浜岀淮鍙樻崲
void SetMaskTransform(Matrix3x2 const& transform);
/// \~chinese
- /// @brief 设置图层区域
- /// @param area 图层区域属性
+ /// @brief 璁剧疆鍥惧眰鍖哄煙
+ /// @param area 鍥惧眰鍖哄煙灞炴
void SetArea(LayerArea const& area);
/// \~chinese
- /// @brief 获取图层区域
+ /// @brief 鑾峰彇鍥惧眰鍖哄煙
LayerArea const& GetArea() const;
bool DispatchEvent(Event* evt) override;
diff --git a/src/kiwano/2d/ShapeActor.h b/src/kiwano/2d/ShapeActor.h
index cfe9b3b1..4d11ebe7 100644
--- a/src/kiwano/2d/ShapeActor.h
+++ b/src/kiwano/2d/ShapeActor.h
@@ -43,83 +43,83 @@ KGE_DECLARE_SMART_PTR(PolygonActor);
/**
* \~chinese
- * @brief 形状角色
+ * @brief 褰㈢姸瑙掕壊
*/
class KGE_API ShapeActor : public Actor
{
public:
/// \~chinese
- /// @brief 创建形状角色
+ /// @brief 鍒涘缓褰㈢姸瑙掕壊
static ShapeActorPtr Create();
/// \~chinese
- /// @brief 构造形状角色
+ /// @brief 鏋勯犲舰鐘惰鑹
ShapeActor();
virtual ~ShapeActor();
/// \~chinese
- /// @brief 获取填充画刷
+ /// @brief 鑾峰彇濉厖鐢诲埛
BrushPtr GetFillBrush() const;
/// \~chinese
- /// @brief 获取轮廓画刷
+ /// @brief 鑾峰彇杞粨鐢诲埛
BrushPtr GetStrokeBrush() const;
/// \~chinese
- /// @brief 获取线条宽度
+ /// @brief 鑾峰彇绾挎潯瀹藉害
float GetStrokeWidth() const;
/// \~chinese
- /// @brief 获取线条样式
+ /// @brief 鑾峰彇绾挎潯鏍峰紡
StrokeStylePtr GetStrokeStyle() const;
/// \~chinese
- /// @brief 获取形状
+ /// @brief 鑾峰彇褰㈢姸
ShapePtr GetShape() const;
/// \~chinese
- /// @brief 获取边界
+ /// @brief 鑾峰彇杈圭晫
Rect GetBounds() const override;
/// \~chinese
- /// @brief 获取外切包围盒
+ /// @brief 鑾峰彇澶栧垏鍖呭洿鐩
Rect GetBoundingBox() const override;
/// \~chinese
- /// @brief 判断点是否在形状内
+ /// @brief 鍒ゆ柇鐐规槸鍚﹀湪褰㈢姸鍐
bool ContainsPoint(const Point& point) const override;
/// \~chinese
- /// @brief 设置填充颜色
- /// @param color 填充颜色
+ /// @brief 璁剧疆濉厖棰滆壊
+ /// @param color 濉厖棰滆壊
void SetFillColor(Color const& color);
/// \~chinese
- /// @brief 设置填充画刷
- /// @param[in] brush 填充画刷
+ /// @brief 璁剧疆濉厖鐢诲埛
+ /// @param[in] brush 濉厖鐢诲埛
void SetFillBrush(BrushPtr brush);
/// \~chinese
- /// @brief 设置轮廓颜色
- /// @param color 轮廓颜色
+ /// @brief 璁剧疆杞粨棰滆壊
+ /// @param color 杞粨棰滆壊
void SetStrokeColor(Color const& color);
/// \~chinese
- /// @brief 设置轮廓画刷
- /// @param[in] brush 轮廓画刷
+ /// @brief 璁剧疆杞粨鐢诲埛
+ /// @param[in] brush 杞粨鐢诲埛
void SetStrokeBrush(BrushPtr brush);
/// \~chinese
- /// @brief 设置线条宽度,默认为 1.0
+ /// @brief 璁剧疆绾挎潯瀹藉害锛岄粯璁や负 1.0
void SetStrokeWidth(float width);
/// \~chinese
- /// @brief 设置线条样式
+ /// @brief 璁剧疆绾挎潯鏍峰紡
void SetStrokeStyle(StrokeStylePtr stroke_style);
/// \~chinese
- /// @brief 设置形状
+ /// @brief 璁剧疆褰㈢姸
void SetShape(ShapePtr shape);
void OnRender(RenderContext& ctx) override;
@@ -137,14 +137,14 @@ private:
};
/// \~chinese
-/// @brief 线段角色
+/// @brief 绾挎瑙掕壊
class KGE_API LineActor : public ShapeActor
{
public:
/// \~chinese
- /// @brief 创建线段角色
- /// @param begin 线段起点
- /// @param end 线段终点
+ /// @brief 鍒涘缓绾挎瑙掕壊
+ /// @param begin 绾挎璧风偣
+ /// @param end 绾挎缁堢偣
static LineActorPtr Create(Point const& begin, Point const& end);
LineActor();
@@ -152,27 +152,27 @@ public:
virtual ~LineActor();
/// \~chinese
- /// @brief 获取线段起点
+ /// @brief 鑾峰彇绾挎璧风偣
Point const& GetBeginPoint() const;
/// \~chinese
- /// @brief 获取线段终点
+ /// @brief 鑾峰彇绾挎缁堢偣
Point const& GetEndPoint() const;
/// \~chinese
- /// @brief 设置线段起点
- /// @param begin 线段起点
+ /// @brief 璁剧疆绾挎璧风偣
+ /// @param begin 绾挎璧风偣
void SetBeginPoint(Point const& begin);
/// \~chinese
- /// @brief 设置线段终点
- /// @param end 线段终点
+ /// @brief 璁剧疆绾挎缁堢偣
+ /// @param end 绾挎缁堢偣
void SetEndPoint(Point const& end);
/// \~chinese
- /// @brief 设置线段起点和终点
- /// @param begin 线段起点
- /// @param end 线段终点
+ /// @brief 璁剧疆绾挎璧风偣鍜岀粓鐐
+ /// @param begin 绾挎璧风偣
+ /// @param end 绾挎缁堢偣
void SetLine(Point const& begin, Point const& end);
private:
@@ -181,13 +181,13 @@ private:
};
/// \~chinese
-/// @brief 矩形角色
+/// @brief 鐭╁舰瑙掕壊
class KGE_API RectActor : public ShapeActor
{
public:
/// \~chinese
- /// @brief 创建矩形角色
- /// @param size 矩形大小
+ /// @brief 鍒涘缓鐭╁舰瑙掕壊
+ /// @param size 鐭╁舰澶у皬
static RectActorPtr Create(Size const& size);
RectActor();
@@ -195,12 +195,12 @@ public:
virtual ~RectActor();
/// \~chinese
- /// @brief 获取矩形大小
+ /// @brief 鑾峰彇鐭╁舰澶у皬
Size const& GetRectSize() const;
/// \~chinese
- /// @brief 设置矩形大小
- /// @param size 矩形大小
+ /// @brief 璁剧疆鐭╁舰澶у皬
+ /// @param size 鐭╁舰澶у皬
void SetRectSize(Size const& size);
private:
@@ -208,14 +208,14 @@ private:
};
/// \~chinese
-/// @brief 圆角矩形角色
+/// @brief 鍦嗚鐭╁舰瑙掕壊
class KGE_API RoundedRectActor : public ShapeActor
{
public:
/// \~chinese
- /// @brief 创建圆角矩形角色
- /// @param size 圆角矩形大小
- /// @param radius 圆角半径
+ /// @brief 鍒涘缓鍦嗚鐭╁舰瑙掕壊
+ /// @param size 鍦嗚鐭╁舰澶у皬
+ /// @param radius 鍦嗚鍗婂緞
static RoundedRectActorPtr Create(Size const& size, Vec2 const& radius);
RoundedRectActor();
@@ -223,27 +223,27 @@ public:
virtual ~RoundedRectActor();
/// \~chinese
- /// @brief 获取圆角半径
+ /// @brief 鑾峰彇鍦嗚鍗婂緞
Vec2 GetRadius() const;
/// \~chinese
- /// @brief 获取圆角矩形大小
+ /// @brief 鑾峰彇鍦嗚鐭╁舰澶у皬
Size GetRectSize() const;
/// \~chinese
- /// @brief 设置圆角半径
- /// @param radius 圆角半径
+ /// @brief 璁剧疆鍦嗚鍗婂緞
+ /// @param radius 鍦嗚鍗婂緞
void SetRadius(Vec2 const& radius);
/// \~chinese
- /// @brief 设置圆角矩形大小
- /// @param size 圆角矩形大小
+ /// @brief 璁剧疆鍦嗚鐭╁舰澶у皬
+ /// @param size 鍦嗚鐭╁舰澶у皬
void SetRectSize(Size const& size);
/// \~chinese
- /// @brief 设置圆角矩形
- /// @param size 圆角矩形大小
- /// @param radius 圆角半径
+ /// @brief 璁剧疆鍦嗚鐭╁舰
+ /// @param size 鍦嗚鐭╁舰澶у皬
+ /// @param radius 鍦嗚鍗婂緞
void SetRoundedRect(Size const& size, Vec2 const& radius);
private:
@@ -252,13 +252,13 @@ private:
};
/// \~chinese
-/// @brief 圆形角色
+/// @brief 鍦嗗舰瑙掕壊
class KGE_API CircleActor : public ShapeActor
{
public:
/// \~chinese
- /// @brief 创建圆形角色
- /// @param radius 圆形半径
+ /// @brief 鍒涘缓鍦嗗舰瑙掕壊
+ /// @param radius 鍦嗗舰鍗婂緞
static CircleActorPtr Create(float radius);
CircleActor();
@@ -266,12 +266,12 @@ public:
virtual ~CircleActor();
/// \~chinese
- /// @brief 获取圆形半径
+ /// @brief 鑾峰彇鍦嗗舰鍗婂緞
float GetRadius() const;
/// \~chinese
- /// @brief 设置圆形半径
- /// @param radius 圆形半径
+ /// @brief 璁剧疆鍦嗗舰鍗婂緞
+ /// @param radius 鍦嗗舰鍗婂緞
void SetRadius(float radius);
private:
@@ -279,13 +279,13 @@ private:
};
/// \~chinese
-/// @brief 椭圆角色
+/// @brief 妞渾瑙掕壊
class KGE_API EllipseActor : public ShapeActor
{
public:
/// \~chinese
- /// @brief 创建椭圆角色
- /// @param radius 椭圆半径
+ /// @brief 鍒涘缓妞渾瑙掕壊
+ /// @param radius 妞渾鍗婂緞
static EllipseActorPtr Create(Vec2 const& radius);
EllipseActor();
@@ -293,12 +293,12 @@ public:
virtual ~EllipseActor();
/// \~chinese
- /// @brief 获取椭圆半径
+ /// @brief 鑾峰彇妞渾鍗婂緞
Vec2 GetRadius() const;
/// \~chinese
- /// @brief 设置椭圆半径
- /// @param radius 椭圆半径
+ /// @brief 璁剧疆妞渾鍗婂緞
+ /// @param radius 妞渾鍗婂緞
void SetRadius(Vec2 const& radius);
private:
@@ -306,13 +306,13 @@ private:
};
/// \~chinese
-/// @brief 多边形角色
+/// @brief 澶氳竟褰㈣鑹
class KGE_API PolygonActor : public ShapeActor
{
public:
/// \~chinese
- /// @brief 创建多边形角色
- /// @param points 多边形端点集合
+ /// @brief 鍒涘缓澶氳竟褰㈣鑹
+ /// @param points 澶氳竟褰㈢鐐归泦鍚
static PolygonActorPtr Create(Vector const& points);
PolygonActor();
@@ -320,8 +320,8 @@ public:
virtual ~PolygonActor();
/// \~chinese
- /// @brief 设置多边形端点
- /// @param points 多边形端点集合
+ /// @brief 璁剧疆澶氳竟褰㈢鐐
+ /// @param points 澶氳竟褰㈢鐐归泦鍚
void SetVertices(Vector const& points);
};
diff --git a/src/kiwano/2d/Sprite.h b/src/kiwano/2d/Sprite.h
index ec006057..08784310 100644
--- a/src/kiwano/2d/Sprite.h
+++ b/src/kiwano/2d/Sprite.h
@@ -33,24 +33,24 @@ KGE_DECLARE_SMART_PTR(Sprite);
/**
* \~chinese
- * @brief 精灵
+ * @brief 绮剧伒
*/
class KGE_API Sprite : public Actor
{
public:
/// \~chinese
- /// @brief 创建精灵
- /// @param file_path 本地图片路径
+ /// @brief 鍒涘缓绮剧伒
+ /// @param file_path 鏈湴鍥剧墖璺緞
static SpritePtr Create(String const& file_path);
/// \~chinese
- /// @brief 创建精灵
- /// @param res 图片资源
+ /// @brief 鍒涘缓绮剧伒
+ /// @param res 鍥剧墖璧勬簮
static SpritePtr Create(Resource const& res);
/// \~chinese
- /// @brief 创建精灵
- /// @param frame 图像帧
+ /// @brief 鍒涘缓绮剧伒
+ /// @param frame 鍥惧儚甯
static SpritePtr Create(FramePtr frame);
Sprite();
@@ -58,27 +58,27 @@ public:
virtual ~Sprite();
/// \~chinese
- /// @brief 加载本地图片
- /// @param file_path 本地图片路径
+ /// @brief 鍔犺浇鏈湴鍥剧墖
+ /// @param file_path 鏈湴鍥剧墖璺緞
bool Load(String const& file_path);
/// \~chinese
- /// @brief 加载图像资源
- /// @param res 图片资源
+ /// @brief 鍔犺浇鍥惧儚璧勬簮
+ /// @param res 鍥剧墖璧勬簮
bool Load(Resource const& res);
/// \~chinese
- /// @brief 使用矩形区域裁剪精灵
- /// @param crop_rect 裁剪矩形
+ /// @brief 浣跨敤鐭╁舰鍖哄煙瑁佸壀绮剧伒
+ /// @param crop_rect 瑁佸壀鐭╁舰
void SetCropRect(const Rect& crop_rect);
/// \~chinese
- /// @brief 获取帧图像
+ /// @brief 鑾峰彇甯у浘鍍
FramePtr GetFrame() const;
/// \~chinese
- /// @brief 设置图像帧
- /// @param[in] frame 图像帧
+ /// @brief 璁剧疆鍥惧儚甯
+ /// @param[in] frame 鍥惧儚甯
void SetFrame(FramePtr frame);
void OnRender(RenderContext& ctx) override;
diff --git a/src/kiwano/2d/Stage.h b/src/kiwano/2d/Stage.h
index 4f92704e..1e05fa0a 100644
--- a/src/kiwano/2d/Stage.h
+++ b/src/kiwano/2d/Stage.h
@@ -33,8 +33,8 @@ KGE_DECLARE_SMART_PTR(Stage);
/**
* \~chinese
- * @brief 舞台
- * @details 舞台是所有角色的载体,是导演直接控制的对象
+ * @brief 鑸炲彴
+ * @details 鑸炲彴鏄墍鏈夎鑹茬殑杞戒綋锛屾槸瀵兼紨鐩存帴鎺у埗鐨勫璞
* @see kiwano::Actor kiwano::Director
*/
class KGE_API Stage : public Actor
@@ -44,7 +44,7 @@ class KGE_API Stage : public Actor
public:
/// \~chinese
- /// @brief 进入舞台时
+ /// @brief 杩涘叆鑸炲彴鏃
static StagePtr Create();
Stage();
@@ -52,34 +52,34 @@ public:
virtual ~Stage();
/// \~chinese
- /// @brief 进入舞台时
- /// @details 重载该函数以处理进入舞台前的行为
+ /// @brief 杩涘叆鑸炲彴鏃
+ /// @details 閲嶈浇璇ュ嚱鏁颁互澶勭悊杩涘叆鑸炲彴鍓嶇殑琛屼负
virtual void OnEnter();
/// \~chinese
- /// @brief 退出舞台时
- /// @details 重载该函数以处理退出舞台前的行为
+ /// @brief 閫鍑鸿垶鍙版椂
+ /// @details 閲嶈浇璇ュ嚱鏁颁互澶勭悊閫鍑鸿垶鍙板墠鐨勮涓
virtual void OnExit();
/// \~chinese
- /// @brief 获取角色边界填充画刷
+ /// @brief 鑾峰彇瑙掕壊杈圭晫濉厖鐢诲埛
BrushPtr GetBorderFillBrush() const;
/// \~chinese
- /// @brief 获取角色边界轮廓画刷
+ /// @brief 鑾峰彇瑙掕壊杈圭晫杞粨鐢诲埛
BrushPtr GetBorderStrokeBrush() const;
/// \~chinese
- /// @brief 设置角色边界填充画刷
+ /// @brief 璁剧疆瑙掕壊杈圭晫濉厖鐢诲埛
void SetBorderFillBrush(BrushPtr brush);
/// \~chinese
- /// @brief 设置角色边界轮廓画刷
+ /// @brief 璁剧疆瑙掕壊杈圭晫杞粨鐢诲埛
void SetBorderStrokeBrush(BrushPtr brush);
protected:
/// \~chinese
- /// @brief 绘制所有子角色的边界
+ /// @brief 缁樺埗鎵鏈夊瓙瑙掕壊鐨勮竟鐣
void RenderBorder(RenderContext& ctx) override;
private:
diff --git a/src/kiwano/2d/TextActor.h b/src/kiwano/2d/TextActor.h
index 21f36eee..e4210be7 100644
--- a/src/kiwano/2d/TextActor.h
+++ b/src/kiwano/2d/TextActor.h
@@ -34,20 +34,20 @@ KGE_DECLARE_SMART_PTR(TextActor);
/**
* \~chinese
- * @brief 文本角色
+ * @brief 鏂囨湰瑙掕壊
*/
class KGE_API TextActor : public Actor
{
public:
/// \~chinese
- /// @brief 创建文本角色
- /// @param text 文字内容
+ /// @brief 鍒涘缓鏂囨湰瑙掕壊
+ /// @param text 鏂囧瓧鍐呭
static TextActorPtr Create(const String& text);
/// \~chinese
- /// @brief 创建文本角色
- /// @param text 文字内容
- /// @param style 文本样式
+ /// @brief 鍒涘缓鏂囨湰瑙掕壊
+ /// @param text 鏂囧瓧鍐呭
+ /// @param style 鏂囨湰鏍峰紡
static TextActorPtr Create(const String& text, const TextStyle& style);
TextActor();
@@ -55,108 +55,108 @@ public:
virtual ~TextActor();
/// \~chinese
- /// @brief 获取文本
+ /// @brief 鑾峰彇鏂囨湰
const String& GetText() const;
/// \~chinese
- /// @brief 获取文本样式
+ /// @brief 鑾峰彇鏂囨湰鏍峰紡
const TextStyle& GetStyle() const;
/// \~chinese
- /// @brief 获取文本布局
+ /// @brief 鑾峰彇鏂囨湰甯冨眬
const TextLayout& GetLayout() const;
/// \~chinese
- /// @brief 获取文本布局大小
+ /// @brief 鑾峰彇鏂囨湰甯冨眬澶у皬
Size GetLayoutSize() const;
/// \~chinese
- /// @brief 获取填充画刷
+ /// @brief 鑾峰彇濉厖鐢诲埛
BrushPtr GetFillBrush() const;
/// \~chinese
- /// @brief 获取描边画刷
+ /// @brief 鑾峰彇鎻忚竟鐢诲埛
BrushPtr GetOutlineBrush() const;
/// \~chinese
- /// @brief 获取字体
+ /// @brief 鑾峰彇瀛椾綋
FontPtr GetFont() const;
/// \~chinese
- /// @brief 设置文本
+ /// @brief 璁剧疆鏂囨湰
void SetText(String const& text);
/// \~chinese
- /// @brief 设置文本样式
+ /// @brief 璁剧疆鏂囨湰鏍峰紡
void SetStyle(const TextStyle& style);
/// \~chinese
- /// @brief 设置字体
+ /// @brief 璁剧疆瀛椾綋
void SetFont(FontPtr font);
/// \~chinese
- /// @brief 设置字体族
+ /// @brief 璁剧疆瀛椾綋鏃
void SetFontFamily(String const& family);
/// \~chinese
- /// @brief 设置字号(默认值为 18)
+ /// @brief 璁剧疆瀛楀彿锛堥粯璁ゅ间负 18锛
void SetFontSize(float size);
/// \~chinese
- /// @brief 设置字体粗细值(默认值为 FontWeight::Normal)
+ /// @brief 璁剧疆瀛椾綋绮楃粏鍊硷紙榛樿鍊间负 FontWeight::Normal锛
void SetFontWeight(uint32_t weight);
/// \~chinese
- /// @brief 设置文字填充画刷
+ /// @brief 璁剧疆鏂囧瓧濉厖鐢诲埛
void SetFillBrush(BrushPtr brush);
/// \~chinese
- /// @brief 设置文字填充颜色(默认值为 Color::White)
+ /// @brief 璁剧疆鏂囧瓧濉厖棰滆壊锛堥粯璁ゅ间负 Color::White锛
void SetFillColor(Color const& color);
/// \~chinese
- /// @brief 设置文字斜体(默认值为 false)
+ /// @brief 璁剧疆鏂囧瓧鏂滀綋锛堥粯璁ゅ间负 false锛
void SetItalic(bool italic);
/// \~chinese
- /// @brief 设置文本自动换行的宽度(默认为 0)
+ /// @brief 璁剧疆鏂囨湰鑷姩鎹㈣鐨勫搴︼紙榛樿涓 0锛
void SetWrapWidth(float wrap_width);
/// \~chinese
- /// @brief 设置行间距(默认为 0)
+ /// @brief 璁剧疆琛岄棿璺濓紙榛樿涓 0锛
void SetLineSpacing(float line_spacing);
/// \~chinese
- /// @brief 设置对齐方式(默认为 TextAlign::Left)
+ /// @brief 璁剧疆瀵归綈鏂瑰紡锛堥粯璁や负 TextAlign::Left锛
void SetAlignment(TextAlign align);
/// \~chinese
- /// @brief 设置文字描边画刷
+ /// @brief 璁剧疆鏂囧瓧鎻忚竟鐢诲埛
void SetOutlineBrush(BrushPtr brush);
/// \~chinese
- /// @brief 设置文字描边颜色
+ /// @brief 璁剧疆鏂囧瓧鎻忚竟棰滆壊
void SetOutlineColor(Color const& outline_color);
/// \~chinese
- /// @brief 设置文字描边线宽
+ /// @brief 璁剧疆鏂囧瓧鎻忚竟绾垮
void SetOutlineWidth(float outline_width);
/// \~chinese
- /// @brief 设置文字描边线相交样式
+ /// @brief 璁剧疆鏂囧瓧鎻忚竟绾跨浉浜ゆ牱寮
void SetOutlineStroke(StrokeStylePtr outline_stroke);
/// \~chinese
- /// @brief 设置是否显示下划线(默认值为 false)
+ /// @brief 璁剧疆鏄惁鏄剧ず涓嬪垝绾匡紙榛樿鍊间负 false锛
void SetUnderline(bool enable);
/// \~chinese
- /// @brief 设置是否显示删除线(默认值为 false)
+ /// @brief 璁剧疆鏄惁鏄剧ず鍒犻櫎绾匡紙榛樿鍊间负 false锛
void SetStrikethrough(bool enable);
/// \~chinese
- /// @brief 更新文字布局
- /// @details 文字布局是懒更新的,手动更新文字布局以更新节点状态
+ /// @brief 鏇存柊鏂囧瓧甯冨眬
+ /// @details 鏂囧瓧甯冨眬鏄噿鏇存柊鐨勶紝鎵嬪姩鏇存柊鏂囧瓧甯冨眬浠ユ洿鏂拌妭鐐圭姸鎬
void UpdateLayout();
void OnRender(RenderContext& ctx) override;
diff --git a/src/kiwano/2d/Transition.h b/src/kiwano/2d/Transition.h
index d99a18d6..c6f1e0d7 100644
--- a/src/kiwano/2d/Transition.h
+++ b/src/kiwano/2d/Transition.h
@@ -36,7 +36,7 @@ KGE_DECLARE_SMART_PTR(RotationTransition);
/**
* \~chinese
- * @brief 舞台过渡动画
+ * @brief 鑸炲彴杩囨浮鍔ㄧ敾
*/
class KGE_API Transition : public virtual ObjectBase
{
@@ -49,48 +49,48 @@ public:
/**
* \~chinese
- * @brief 设置动画时长
+ * @brief 璁剧疆鍔ㄧ敾鏃堕暱
*/
void SetDuration(Duration dt);
/**
* \~chinese
- * @brief 场景过渡动画是否已结束
+ * @brief 鍦烘櫙杩囨浮鍔ㄧ敾鏄惁宸茬粨鏉
*/
bool IsDone();
protected:
/**
* \~chinese
- * @brief 初始化场景过渡动画
- * @param[in] prev 转出场景
- * @param[in] next 转入场景
+ * @brief 鍒濆鍖栧満鏅繃娓″姩鐢
+ * @param[in] prev 杞嚭鍦烘櫙
+ * @param[in] next 杞叆鍦烘櫙
*/
virtual void Init(StagePtr prev, StagePtr next);
/**
* \~chinese
- * @brief 更新过渡动画
- * @param dt 距上一次更新的时间间隔
+ * @brief 鏇存柊杩囨浮鍔ㄧ敾
+ * @param dt 璺濅笂涓娆℃洿鏂扮殑鏃堕棿闂撮殧
*/
virtual void Update(Duration dt);
/**
* \~chinese
- * @brief 渲染过度动画
- * @param[in] ctx 渲染上下文
+ * @brief 娓叉煋杩囧害鍔ㄧ敾
+ * @param[in] ctx 娓叉煋涓婁笅鏂
*/
virtual void Render(RenderContext& ctx);
/**
* \~chinese
- * @brief 停止动画
+ * @brief 鍋滄鍔ㄧ敾
*/
virtual void Stop();
/**
* \~chinese
- * @brief 重置动画
+ * @brief 閲嶇疆鍔ㄧ敾
*/
virtual void Reset() {}
@@ -108,16 +108,16 @@ protected:
/**
* \~chinese
- * @brief 淡入淡出过渡动画
- * @details 前一场景淡出动画结束后,后一场景淡入
+ * @brief 娣″叆娣″嚭杩囨浮鍔ㄧ敾
+ * @details 鍓嶄竴鍦烘櫙娣″嚭鍔ㄧ敾缁撴潫鍚庯紝鍚庝竴鍦烘櫙娣″叆
*/
class FadeTransition : public Transition
{
public:
/**
* \~chinese
- * @brief 创建淡入淡出过渡动画
- * @param duration 动画时长
+ * @brief 鍒涘缓娣″叆娣″嚭杩囨浮鍔ㄧ敾
+ * @param duration 鍔ㄧ敾鏃堕暱
*/
static FadeTransitionPtr Create(Duration duration);
@@ -131,16 +131,16 @@ protected:
/**
* \~chinese
- * @brief 渐变过渡动画
- * @details 前一场景淡出动画的同时,后一场景淡入
+ * @brief 娓愬彉杩囨浮鍔ㄧ敾
+ * @details 鍓嶄竴鍦烘櫙娣″嚭鍔ㄧ敾鐨勫悓鏃讹紝鍚庝竴鍦烘櫙娣″叆
*/
class EmergeTransition : public Transition
{
public:
/**
* \~chinese
- * @brief 创建渐变过渡动画
- * @param duration 动画时长
+ * @brief 鍒涘缓娓愬彉杩囨浮鍔ㄧ敾
+ * @param duration 鍔ㄧ敾鏃堕暱
*/
static EmergeTransitionPtr Create(Duration duration);
@@ -154,16 +154,16 @@ protected:
/**
* \~chinese
- * @brief 盒状过渡动画
- * @details 前一场景以盒状收缩至消失,后一场景以盒状扩大
+ * @brief 鐩掔姸杩囨浮鍔ㄧ敾
+ * @details 鍓嶄竴鍦烘櫙浠ョ洅鐘舵敹缂╄嚦娑堝け锛屽悗涓鍦烘櫙浠ョ洅鐘舵墿澶
*/
class BoxTransition : public Transition
{
public:
/**
* \~chinese
- * @brief 创建盒状过渡动画
- * @param duration 动画时长
+ * @brief 鍒涘缓鐩掔姸杩囨浮鍔ㄧ敾
+ * @param duration 鍔ㄧ敾鏃堕暱
*/
static BoxTransitionPtr Create(Duration duration);
@@ -177,29 +177,29 @@ protected:
/**
* \~chinese
- * @brief 位移过渡动画
- * @details 两场景以位移的方式切换
+ * @brief 浣嶇Щ杩囨浮鍔ㄧ敾
+ * @details 涓ゅ満鏅互浣嶇Щ鐨勬柟寮忓垏鎹
*/
class MoveTransition : public Transition
{
public:
/**
* \~chinese
- * @brief 位移方式
+ * @brief 浣嶇Щ鏂瑰紡
*/
enum class Type : int
{
- Up, ///< 上移
- Down, ///< 下移
- Left, ///< 左移
- Right ///< 右移
+ Up, ///< 涓婄Щ
+ Down, ///< 涓嬬Щ
+ Left, ///< 宸︾Щ
+ Right ///< 鍙崇Щ
};
/**
* \~chinese
- * @brief 创建位移过渡动画
- * @param duration 动画时长
- * @param type 位移方式
+ * @brief 鍒涘缓浣嶇Щ杩囨浮鍔ㄧ敾
+ * @param duration 鍔ㄧ敾鏃堕暱
+ * @param type 浣嶇Щ鏂瑰紡
*/
static MoveTransitionPtr Create(Duration duration, Type type);
@@ -220,17 +220,17 @@ private:
/**
* \~chinese
- * @brief 旋转过渡动画
- * @details 前一场景以旋转方式收缩至消失,后一场景以旋转方式扩大
+ * @brief 鏃嬭浆杩囨浮鍔ㄧ敾
+ * @details 鍓嶄竴鍦烘櫙浠ユ棆杞柟寮忔敹缂╄嚦娑堝け锛屽悗涓鍦烘櫙浠ユ棆杞柟寮忔墿澶
*/
class RotationTransition : public Transition
{
public:
/**
* \~chinese
- * @brief 创建旋转过渡动画
- * @param duration 动画时长
- * @param rotation 旋转度数
+ * @brief 鍒涘缓鏃嬭浆杩囨浮鍔ㄧ敾
+ * @param duration 鍔ㄧ敾鏃堕暱
+ * @param rotation 鏃嬭浆搴︽暟
*/
static RotationTransitionPtr Create(Duration duration, float rotation = 360.0f);
diff --git a/src/kiwano/2d/action/Action.h b/src/kiwano/2d/action/Action.h
index 639f4cb0..487869c4 100644
--- a/src/kiwano/2d/action/Action.h
+++ b/src/kiwano/2d/action/Action.h
@@ -34,7 +34,7 @@ KGE_DECLARE_SMART_PTR(Action);
/**
* \~chinese
- * \defgroup Actions 动画
+ * \defgroup Actions 鍔ㄧ敾
*/
/**
@@ -43,7 +43,7 @@ KGE_DECLARE_SMART_PTR(Action);
*/
/// \~chinese
-/// @brief 动画
+/// @brief 鍔ㄧ敾
class KGE_API Action
: public virtual ObjectBase
, protected IntrusiveListItem
@@ -54,7 +54,7 @@ class KGE_API Action
public:
/// \~chinese
- /// @brief 动画结束时的回调函数
+ /// @brief 鍔ㄧ敾缁撴潫鏃剁殑鍥炶皟鍑芥暟
using DoneCallback = Function;
Action();
@@ -62,120 +62,120 @@ public:
virtual ~Action();
/// \~chinese
- /// @brief 继续动画
+ /// @brief 缁х画鍔ㄧ敾
void Resume();
/// \~chinese
- /// @brief 暂停动画
+ /// @brief 鏆傚仠鍔ㄧ敾
void Pause();
/// \~chinese
- /// @brief 停止动画
+ /// @brief 鍋滄鍔ㄧ敾
void Stop();
/// \~chinese
- /// @brief 设置动画延时
+ /// @brief 璁剧疆鍔ㄧ敾寤舵椂
void SetDelay(Duration delay);
/// \~chinese
- /// @brief 设置循环次数
- /// @param loops 循环次数,-1 为永久循环
+ /// @brief 璁剧疆寰幆娆℃暟
+ /// @param loops 寰幆娆℃暟锛-1 涓烘案涔呭惊鐜
void SetLoops(int loops);
/// \~chinese
- /// @brief 动画结束时移除目标角色
+ /// @brief 鍔ㄧ敾缁撴潫鏃剁Щ闄ょ洰鏍囪鑹
void RemoveTargetWhenDone();
/// \~chinese
- /// @brief 设置动画结束时的回调函数
+ /// @brief 璁剧疆鍔ㄧ敾缁撴潫鏃剁殑鍥炶皟鍑芥暟
void SetDoneCallback(DoneCallback const& cb);
/// \~chinese
- /// @brief 设置动画循环结束时的回调函数
+ /// @brief 璁剧疆鍔ㄧ敾寰幆缁撴潫鏃剁殑鍥炶皟鍑芥暟
void SetLoopDoneCallback(DoneCallback const& cb);
/// \~chinese
- /// @brief 获取动画的拷贝
+ /// @brief 鑾峰彇鍔ㄧ敾鐨勬嫹璐
virtual ActionPtr Clone() const = 0;
/// \~chinese
- /// @brief 获取动画的倒转
+ /// @brief 鑾峰彇鍔ㄧ敾鐨勫掕浆
virtual ActionPtr Reverse() const = 0;
/// \~chinese
- /// @brief 获取动画的运行状态
+ /// @brief 鑾峰彇鍔ㄧ敾鐨勮繍琛岀姸鎬
bool IsRunning() const;
/// \~chinese
- /// @brief 获取动画的循环次数
+ /// @brief 鑾峰彇鍔ㄧ敾鐨勫惊鐜鏁
int GetLoops() const;
/// \~chinese
- /// @brief 获取动画的延时
+ /// @brief 鑾峰彇鍔ㄧ敾鐨勫欢鏃
Duration GetDelay() const;
/// \~chinese
- /// @brief 获取动画结束时的回调函数
+ /// @brief 鑾峰彇鍔ㄧ敾缁撴潫鏃剁殑鍥炶皟鍑芥暟
DoneCallback GetDoneCallback() const;
/// \~chinese
- /// @brief 获取动画循环结束时的回调函数
+ /// @brief 鑾峰彇鍔ㄧ敾寰幆缁撴潫鏃剁殑鍥炶皟鍑芥暟
DoneCallback GetLoopDoneCallback() const;
protected:
/// \~chinese
- /// @brief 初始化动画
+ /// @brief 鍒濆鍖栧姩鐢
virtual void Init(Actor* target);
/// \~chinese
- /// @brief 更新动画
+ /// @brief 鏇存柊鍔ㄧ敾
virtual void Update(Actor* target, Duration dt);
/// \~chinese
- /// @brief 更新一个时间步
+ /// @brief 鏇存柊涓涓椂闂存
void UpdateStep(Actor* target, Duration dt);
/// \~chinese
- /// @brief 完成动画
+ /// @brief 瀹屾垚鍔ㄧ敾
void Complete(Actor* target);
/// \~chinese
- /// @brief 重新开始动画
+ /// @brief 閲嶆柊寮濮嬪姩鐢
void Restart(Actor* target);
/// \~chinese
- /// @brief 动画状态
+ /// @brief 鍔ㄧ敾鐘舵
enum class Status
{
- NotStarted, ///< 未开始
- Delayed, ///< 等待延时
- Started, ///< 已开始
- Done, ///< 已结束
- Removeable ///< 可移除
+ NotStarted, ///< 鏈紑濮
+ Delayed, ///< 绛夊緟寤舵椂
+ Started, ///< 宸插紑濮
+ Done, ///< 宸茬粨鏉
+ Removeable ///< 鍙Щ闄
};
/// \~chinese
- /// @brief 获取动画状态
+ /// @brief 鑾峰彇鍔ㄧ敾鐘舵
Status GetStatus() const;
/// \~chinese
- /// @brief 获取消逝时间
+ /// @brief 鑾峰彇娑堥濇椂闂
Duration GetElapsed() const;
/// \~chinese
- /// @brief 获取完成的循环次数
+ /// @brief 鑾峰彇瀹屾垚鐨勫惊鐜鏁
int GetLoopsDone() const;
/// \~chinese
- /// @brief 结束动画
+ /// @brief 缁撴潫鍔ㄧ敾
void Done();
/// \~chinese
- /// @brief 是否已结束
+ /// @brief 鏄惁宸茬粨鏉
bool IsDone() const;
/// \~chinese
- /// @brief 是否可移除
+ /// @brief 鏄惁鍙Щ闄
bool IsRemoveable() const;
private:
diff --git a/src/kiwano/2d/action/ActionDelay.h b/src/kiwano/2d/action/ActionDelay.h
index dcf7204c..53e01405 100644
--- a/src/kiwano/2d/action/ActionDelay.h
+++ b/src/kiwano/2d/action/ActionDelay.h
@@ -29,21 +29,21 @@ namespace kiwano
*/
/// \~chinese
-/// @brief 延时动画
+/// @brief 寤舵椂鍔ㄧ敾
class KGE_API ActionDelay : public Action
{
public:
/// \~chinese
- /// @brief 构建延时动画
- /// @param delay 延时时长
+ /// @brief 鏋勫缓寤舵椂鍔ㄧ敾
+ /// @param delay 寤舵椂鏃堕暱
ActionDelay(Duration delay);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override;
};
diff --git a/src/kiwano/2d/action/ActionGroup.h b/src/kiwano/2d/action/ActionGroup.h
index 8ff0a964..2a7f3cdb 100644
--- a/src/kiwano/2d/action/ActionGroup.h
+++ b/src/kiwano/2d/action/ActionGroup.h
@@ -31,7 +31,7 @@ KGE_DECLARE_SMART_PTR(ActionGroup);
*/
/// \~chinese
-/// @brief 动画组合
+/// @brief 鍔ㄧ敾缁勫悎
class KGE_API ActionGroup : public Action
{
public:
@@ -40,33 +40,33 @@ public:
ActionGroup();
/// \~chinese
- /// @brief 动画组合
- /// @param actions 动画集合
- /// @param sync 同步执行
+ /// @brief 鍔ㄧ敾缁勫悎
+ /// @param actions 鍔ㄧ敾闆嗗悎
+ /// @param sync 鍚屾鎵ц
explicit ActionGroup(Vector const& actions, bool sync = false);
virtual ~ActionGroup();
/// \~chinese
- /// @brief 添加动画
- /// @param action 动画
+ /// @brief 娣诲姞鍔ㄧ敾
+ /// @param action 鍔ㄧ敾
void Add(ActionPtr action);
/// \~chinese
- /// @brief 添加多个动画
- /// @param actions 动画集合
+ /// @brief 娣诲姞澶氫釜鍔ㄧ敾
+ /// @param actions 鍔ㄧ敾闆嗗悎
void Add(Vector const& actions);
/// \~chinese
- /// @brief 获取所有动画
+ /// @brief 鑾峰彇鎵鏈夊姩鐢
ActionList const& GetActions() const;
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override;
protected:
diff --git a/src/kiwano/2d/action/ActionHelper.h b/src/kiwano/2d/action/ActionHelper.h
index 4f69bdea..d5fa8235 100644
--- a/src/kiwano/2d/action/ActionHelper.h
+++ b/src/kiwano/2d/action/ActionHelper.h
@@ -33,13 +33,13 @@ namespace kiwano
*/
/// \~chinese
-/// @brief 动画辅助类
+/// @brief 鍔ㄧ敾杈呭姪绫
struct ActionHelper
{
using DoneCallback = Action::DoneCallback;
/// \~chinese
- /// @brief 设置循环次数
+ /// @brief 璁剧疆寰幆娆℃暟
inline ActionHelper& SetLoops(int loops)
{
core->SetLoops(loops);
@@ -47,7 +47,7 @@ struct ActionHelper
}
/// \~chinese
- /// @brief 设置动画延迟
+ /// @brief 璁剧疆鍔ㄧ敾寤惰繜
inline ActionHelper& SetDelay(Duration delay)
{
core->SetDelay(delay);
@@ -55,7 +55,7 @@ struct ActionHelper
}
/// \~chinese
- /// @brief 设置动画结束回调函数
+ /// @brief 璁剧疆鍔ㄧ敾缁撴潫鍥炶皟鍑芥暟
inline ActionHelper& SetDoneCallback(DoneCallback const& cb)
{
core->SetDoneCallback(cb);
@@ -63,7 +63,7 @@ struct ActionHelper
}
/// \~chinese
- /// @brief 设置动画循环结束时的回调函数
+ /// @brief 璁剧疆鍔ㄧ敾寰幆缁撴潫鏃剁殑鍥炶皟鍑芥暟
inline ActionHelper& SetLoopDoneCallback(DoneCallback const& cb)
{
core->SetLoopDoneCallback(cb);
@@ -71,7 +71,7 @@ struct ActionHelper
}
/// \~chinese
- /// @brief 动画结束时移除目标角色
+ /// @brief 鍔ㄧ敾缁撴潫鏃剁Щ闄ょ洰鏍囪鑹
inline ActionHelper& RemoveTargetWhenDone()
{
core->RemoveTargetWhenDone();
@@ -79,7 +79,7 @@ struct ActionHelper
}
/// \~chinese
- /// @brief 设置名称
+ /// @brief 璁剧疆鍚嶇О
inline ActionHelper& SetName(String const& name)
{
core->SetName(name);
@@ -87,7 +87,7 @@ struct ActionHelper
}
/// \~chinese
- /// @brief 获取指针
+ /// @brief 鑾峰彇鎸囬拡
inline ActionPtr Get() const
{
return core;
@@ -108,13 +108,13 @@ private:
};
/// \~chinese
-/// @brief 补间动画辅助类
+/// @brief 琛ラ棿鍔ㄧ敾杈呭姪绫
struct TweenHelper
{
using DoneCallback = Action::DoneCallback;
/// \~chinese
- /// @brief 设置动画持续时长
+ /// @brief 璁剧疆鍔ㄧ敾鎸佺画鏃堕暱
inline TweenHelper& SetDuration(Duration dur)
{
core->SetDuration(dur);
@@ -122,7 +122,7 @@ struct TweenHelper
}
/// \~chinese
- /// @brief 设置循环次数
+ /// @brief 璁剧疆寰幆娆℃暟
inline TweenHelper& SetLoops(int loops)
{
core->SetLoops(loops);
@@ -130,7 +130,7 @@ struct TweenHelper
}
/// \~chinese
- /// @brief 设置缓动函数
+ /// @brief 璁剧疆缂撳姩鍑芥暟
inline TweenHelper& SetEaseFunc(EaseFunc ease)
{
core->SetEaseFunc(ease);
@@ -138,7 +138,7 @@ struct TweenHelper
}
/// \~chinese
- /// @brief 设置动画延迟
+ /// @brief 璁剧疆鍔ㄧ敾寤惰繜
inline TweenHelper& SetDelay(Duration delay)
{
core->SetDelay(delay);
@@ -146,7 +146,7 @@ struct TweenHelper
}
/// \~chinese
- /// @brief 设置动画结束回调函数
+ /// @brief 璁剧疆鍔ㄧ敾缁撴潫鍥炶皟鍑芥暟
inline TweenHelper& SetDoneCallback(DoneCallback const& cb)
{
core->SetDoneCallback(cb);
@@ -154,7 +154,7 @@ struct TweenHelper
}
/// \~chinese
- /// @brief 设置动画循环结束时的回调函数
+ /// @brief 璁剧疆鍔ㄧ敾寰幆缁撴潫鏃剁殑鍥炶皟鍑芥暟
inline TweenHelper& SetLoopDoneCallback(DoneCallback const& cb)
{
core->SetLoopDoneCallback(cb);
@@ -162,7 +162,7 @@ struct TweenHelper
}
/// \~chinese
- /// @brief 动画结束时移除目标角色
+ /// @brief 鍔ㄧ敾缁撴潫鏃剁Щ闄ょ洰鏍囪鑹
inline TweenHelper& RemoveTargetWhenDone()
{
core->RemoveTargetWhenDone();
@@ -170,7 +170,7 @@ struct TweenHelper
}
/// \~chinese
- /// @brief 设置名称
+ /// @brief 璁剧疆鍚嶇О
inline TweenHelper& SetName(String const& name)
{
core->SetName(name);
@@ -178,7 +178,7 @@ struct TweenHelper
}
/// \~chinese
- /// @brief 获取指针
+ /// @brief 鑾峰彇鎸囬拡
inline ActionTweenPtr Get() const
{
return core;
@@ -204,120 +204,120 @@ private:
};
/// \~chinese
-/// @brief 动画构造器
+/// @brief 鍔ㄧ敾鏋勯犲櫒
struct Tween
{
public:
/// \~chinese
- /// @brief 构造相对位移动画
- /// @param duration 动画时长
- /// @param vector 移动向量
+ /// @brief 鏋勯犵浉瀵逛綅绉诲姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param vector 绉诲姩鍚戦噺
static inline TweenHelper MoveBy(Duration dur, Point const& vector)
{
return TweenHelper(new kiwano::ActionMoveBy(dur, vector));
}
/// \~chinese
- /// @brief 构造位移动画
- /// @param duration 动画时长
- /// @param pos 目的坐标
+ /// @brief 鏋勯犱綅绉诲姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param pos 鐩殑鍧愭爣
static inline TweenHelper MoveTo(Duration dur, Point const& pos)
{
return TweenHelper(new kiwano::ActionMoveTo(dur, pos));
}
/// \~chinese
- /// @brief 构造相对跳跃动画
- /// @param duration 动画时长
- /// @param vec 跳跃位移向量
- /// @param height 跳跃高度
- /// @param jumps 跳跃次数
+ /// @brief 鏋勯犵浉瀵硅烦璺冨姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param vec 璺宠穬浣嶇Щ鍚戦噺
+ /// @param height 璺宠穬楂樺害
+ /// @param jumps 璺宠穬娆℃暟
static inline TweenHelper JumpBy(Duration duration, Vec2 const& vec, float height, int jumps = 1)
{
return TweenHelper(new kiwano::ActionJumpBy(duration, vec, height, jumps));
}
/// \~chinese
- /// @brief 构造跳跃动画
- /// @param duration 动画时长
- /// @param pos 目的坐标
- /// @param height 跳跃高度
- /// @param jumps 跳跃次数
+ /// @brief 鏋勯犺烦璺冨姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param pos 鐩殑鍧愭爣
+ /// @param height 璺宠穬楂樺害
+ /// @param jumps 璺宠穬娆℃暟
static inline TweenHelper JumpTo(Duration duration, Point const& pos, float height, int jumps = 1)
{
return TweenHelper(new kiwano::ActionJumpTo(duration, pos, height, jumps));
}
/// \~chinese
- /// @brief 构造相对缩放动画
- /// @param duration 动画时长
- /// @param scale_x 横向缩放相对变化值
- /// @param scale_y 纵向缩放相对变化值
+ /// @brief 鏋勯犵浉瀵圭缉鏀惧姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param scale_x 妯悜缂╂斁鐩稿鍙樺寲鍊
+ /// @param scale_y 绾靛悜缂╂斁鐩稿鍙樺寲鍊
static inline TweenHelper ScaleBy(Duration dur, float scale_x, float scale_y)
{
return TweenHelper(new kiwano::ActionScaleBy(dur, scale_x, scale_y));
}
/// \~chinese
- /// @brief 构造缩放动画
- /// @param duration 动画时长
- /// @param scale_x 横向缩放目标值
- /// @param scale_y 纵向缩放目标值
+ /// @brief 鏋勯犵缉鏀惧姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param scale_x 妯悜缂╂斁鐩爣鍊
+ /// @param scale_y 绾靛悜缂╂斁鐩爣鍊
static inline TweenHelper ScaleTo(Duration dur, float scale_x, float scale_y)
{
return TweenHelper(new kiwano::ActionScaleTo(dur, scale_x, scale_y));
}
/// \~chinese
- /// @brief 构造透明度渐变动画
- /// @param duration 动画时长
- /// @param opacity 目标透明度
+ /// @brief 鏋勯犻忔槑搴︽笎鍙樺姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param opacity 鐩爣閫忔槑搴
static inline TweenHelper FadeTo(Duration dur, float opacity)
{
return TweenHelper(new kiwano::ActionFadeTo(dur, opacity));
}
/// \~chinese
- /// @brief 构造淡入动画
- /// @param duration 动画时长
+ /// @brief 鏋勯犳贰鍏ュ姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
static inline TweenHelper FadeIn(Duration dur)
{
return TweenHelper(new kiwano::ActionFadeIn(dur));
}
/// \~chinese
- /// @brief 构造淡出动画
- /// @param duration 动画时长
+ /// @brief 鏋勯犳贰鍑哄姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
static inline TweenHelper FadeOut(Duration dur)
{
return TweenHelper(new kiwano::ActionFadeOut(dur));
}
/// \~chinese
- /// @brief 构造相对旋转动画
- /// @param duration 动画时长
- /// @param rotation 角度相对变化值
+ /// @brief 鏋勯犵浉瀵规棆杞姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param rotation 瑙掑害鐩稿鍙樺寲鍊
static inline TweenHelper RotateBy(Duration dur, float rotation)
{
return TweenHelper(new kiwano::ActionRotateBy(dur, rotation));
}
/// \~chinese
- /// @brief 构造旋转动画
- /// @param duration 动画时长
- /// @param rotation 目标角度
+ /// @brief 鏋勯犳棆杞姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param rotation 鐩爣瑙掑害
static inline TweenHelper RotateTo(Duration dur, float rotation)
{
return TweenHelper(new kiwano::ActionRotateTo(dur, rotation));
}
/// \~chinese
- /// @brief 构造路径行走动画
- /// @param duration 持续时长
- /// @param path 路径形状
- /// @param rotating 是否沿路径切线方向旋转
- /// @param start 路径起点(百分比)
- /// @param end 路径终点(百分比)
+ /// @brief 鏋勯犺矾寰勮璧板姩鐢
+ /// @param duration 鎸佺画鏃堕暱
+ /// @param path 璺緞褰㈢姸
+ /// @param rotating 鏄惁娌胯矾寰勫垏绾挎柟鍚戞棆杞
+ /// @param start 璺緞璧风偣锛堢櫨鍒嗘瘮锛
+ /// @param end 璺緞缁堢偣锛堢櫨鍒嗘瘮锛
static inline TweenHelper Walk(Duration duration, ShapePtr path, bool rotating = false, float start = 0.f,
float end = 1.f)
{
@@ -325,35 +325,35 @@ public:
}
/// \~chinese
- /// @brief 构建帧动画
- /// @param duration 动画时长
- /// @param[in] frame_seq 序列帧
+ /// @brief 鏋勫缓甯у姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param[in] frame_seq 搴忓垪甯
static inline TweenHelper Animation(Duration dur, FrameSequencePtr frames)
{
return TweenHelper(new kiwano::Animation(dur, frames));
}
/// \~chinese
- /// @brief 构造自定义动画
- /// @param duration 动画时长
- /// @param tween_func 动画回调函数
+ /// @brief 鏋勯犺嚜瀹氫箟鍔ㄧ敾
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param tween_func 鍔ㄧ敾鍥炶皟鍑芥暟
static inline TweenHelper Custom(Duration dur, ActionCustom::TweenFunc tween_func)
{
return TweenHelper(new kiwano::ActionCustom(dur, tween_func));
}
/// \~chinese
- /// @brief 构建延时动画
- /// @param delay 延时时长
+ /// @brief 鏋勫缓寤舵椂鍔ㄧ敾
+ /// @param delay 寤舵椂鏃堕暱
static inline ActionHelper Delay(Duration delay)
{
return ActionHelper(new kiwano::ActionDelay(delay));
}
/// \~chinese
- /// @brief 动画组合
- /// @param actions 动画集合
- /// @param sync 同步执行
+ /// @brief 鍔ㄧ敾缁勫悎
+ /// @param actions 鍔ㄧ敾闆嗗悎
+ /// @param sync 鍚屾鎵ц
static inline ActionHelper Group(Vector const& actions, bool sync = false)
{
return ActionHelper(new kiwano::ActionGroup(actions, sync));
diff --git a/src/kiwano/2d/action/ActionManager.h b/src/kiwano/2d/action/ActionManager.h
index ea7fac93..e46987e7 100644
--- a/src/kiwano/2d/action/ActionManager.h
+++ b/src/kiwano/2d/action/ActionManager.h
@@ -30,47 +30,47 @@ namespace kiwano
/**
* \~chinese
- * @brief 动画管理器
+ * @brief 鍔ㄧ敾绠$悊鍣
*/
class KGE_API ActionManager
{
public:
/// \~chinese
- /// @brief 动画列表
+ /// @brief 鍔ㄧ敾鍒楄〃
using Actions = IntrusiveList;
/// \~chinese
- /// @brief 添加动画
+ /// @brief 娣诲姞鍔ㄧ敾
Action* AddAction(ActionPtr action);
/// \~chinese
- /// @brief 添加动画
+ /// @brief 娣诲姞鍔ㄧ敾
Action* AddAction(Action* action);
/// \~chinese
- /// @brief 继续所有暂停动画
+ /// @brief 缁х画鎵鏈夋殏鍋滃姩鐢
void ResumeAllActions();
/// \~chinese
- /// @brief 暂停所有动画
+ /// @brief 鏆傚仠鎵鏈夊姩鐢
void PauseAllActions();
/// \~chinese
- /// @brief 停止所有动画
+ /// @brief 鍋滄鎵鏈夊姩鐢
void StopAllActions();
/// \~chinese
- /// @brief 获取指定名称的动画
- /// @param name 动画名称
+ /// @brief 鑾峰彇鎸囧畾鍚嶇О鐨勫姩鐢
+ /// @param name 鍔ㄧ敾鍚嶇О
ActionPtr GetAction(String const& name);
/// \~chinese
- /// @brief 获取所有动画
+ /// @brief 鑾峰彇鎵鏈夊姩鐢
Actions const& GetAllActions() const;
protected:
/// \~chinese
- /// @brief 更新动画
+ /// @brief 鏇存柊鍔ㄧ敾
void UpdateActions(Actor* target, Duration dt);
private:
diff --git a/src/kiwano/2d/action/ActionTween.h b/src/kiwano/2d/action/ActionTween.h
index dc930aac..6db704f3 100644
--- a/src/kiwano/2d/action/ActionTween.h
+++ b/src/kiwano/2d/action/ActionTween.h
@@ -25,27 +25,27 @@
namespace kiwano
{
/// \~chinese
-/// @brief 缓动函数
+/// @brief 缂撳姩鍑芥暟
using EaseFunc = Function;
/// \~chinese
-/// @brief 缓动函数枚举
-/// @details 查看 https://easings.net 获取更多信息
+/// @brief 缂撳姩鍑芥暟鏋氫妇
+/// @details 鏌ョ湅 https://easings.net 鑾峰彇鏇村淇℃伅
struct Ease
{
- static KGE_API EaseFunc Linear; ///< 线性
- static KGE_API EaseFunc EaseIn; ///< 由慢变快
- static KGE_API EaseFunc EaseOut; ///< 由快变慢
- static KGE_API EaseFunc EaseInOut; ///< 由慢变快, 再由快变慢
- static KGE_API EaseFunc ExpoIn; ///< 由慢变极快
- static KGE_API EaseFunc ExpoOut; ///< 由极快变慢
- static KGE_API EaseFunc ExpoInOut; ///< 由慢至极快, 再由极快边慢
- static KGE_API EaseFunc ElasticIn; ///< 自起点赋予弹性
- static KGE_API EaseFunc ElasticOut; ///< 自终点赋予弹性
- static KGE_API EaseFunc ElasticInOut; ///< 再起点和终点赋予弹性
- static KGE_API EaseFunc BounceIn; ///< 自起点赋予反弹力
- static KGE_API EaseFunc BounceOut; ///< 自终点赋予反弹力
- static KGE_API EaseFunc BounceInOut; ///< 在起点和终点赋予反弹力
+ static KGE_API EaseFunc Linear; ///< 绾挎
+ static KGE_API EaseFunc EaseIn; ///< 鐢辨參鍙樺揩
+ static KGE_API EaseFunc EaseOut; ///< 鐢卞揩鍙樻參
+ static KGE_API EaseFunc EaseInOut; ///< 鐢辨參鍙樺揩, 鍐嶇敱蹇彉鎱
+ static KGE_API EaseFunc ExpoIn; ///< 鐢辨參鍙樻瀬蹇
+ static KGE_API EaseFunc ExpoOut; ///< 鐢辨瀬蹇彉鎱
+ static KGE_API EaseFunc ExpoInOut; ///< 鐢辨參鑷虫瀬蹇, 鍐嶇敱鏋佸揩杈规參
+ static KGE_API EaseFunc ElasticIn; ///< 鑷捣鐐硅祴浜堝脊鎬
+ static KGE_API EaseFunc ElasticOut; ///< 鑷粓鐐硅祴浜堝脊鎬
+ static KGE_API EaseFunc ElasticInOut; ///< 鍐嶈捣鐐瑰拰缁堢偣璧嬩簣寮规
+ static KGE_API EaseFunc BounceIn; ///< 鑷捣鐐硅祴浜堝弽寮瑰姏
+ static KGE_API EaseFunc BounceOut; ///< 鑷粓鐐硅祴浜堝弽寮瑰姏
+ static KGE_API EaseFunc BounceInOut; ///< 鍦ㄨ捣鐐瑰拰缁堢偣璧嬩簣鍙嶅脊鍔
static KGE_API EaseFunc BackIn;
static KGE_API EaseFunc BackOut;
static KGE_API EaseFunc BackInOut;
@@ -86,32 +86,32 @@ KGE_DECLARE_SMART_PTR(ActionCustom);
*/
/// \~chinese
-/// @brief 补间动画
+/// @brief 琛ラ棿鍔ㄧ敾
class KGE_API ActionTween : public Action
{
public:
ActionTween();
/// \~chinese
- /// @brief 补间动画
- /// @param duration 动画时长
- /// @param func 动画速度缓动函数
+ /// @brief 琛ラ棿鍔ㄧ敾
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionTween(Duration duration, EaseFunc func);
/// \~chinese
- /// @brief 获取动画时长
+ /// @brief 鑾峰彇鍔ㄧ敾鏃堕暱
Duration GetDuration() const;
/// \~chinese
- /// @brief 设置动画时长
+ /// @brief 璁剧疆鍔ㄧ敾鏃堕暱
void SetDuration(Duration duration);
/// \~chinese
- /// @brief 获取动画速度缓动函数
+ /// @brief 鑾峰彇鍔ㄧ敾閫熷害缂撳姩鍑芥暟
EaseFunc const& GetEaseFunc() const;
/// \~chinese
- /// @brief 设置动画速度缓动函数
+ /// @brief 璁剧疆鍔ㄧ敾閫熷害缂撳姩鍑芥暟
void SetEaseFunc(EaseFunc const& func);
protected:
@@ -125,23 +125,23 @@ private:
};
/// \~chinese
-/// @brief 相对位移动画
+/// @brief 鐩稿浣嶇Щ鍔ㄧ敾
class KGE_API ActionMoveBy : public ActionTween
{
public:
/// \~chinese
- /// @brief 构造相对位移动画
- /// @param duration 动画时长
- /// @param vector 移动向量
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犵浉瀵逛綅绉诲姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param vector 绉诲姩鍚戦噺
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionMoveBy(Duration duration, Vec2 const& vector, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override;
protected:
@@ -156,23 +156,23 @@ protected:
};
/// \~chinese
-/// @brief 位移动画
+/// @brief 浣嶇Щ鍔ㄧ敾
class KGE_API ActionMoveTo : public ActionMoveBy
{
public:
/// \~chinese
- /// @brief 构造位移动画
- /// @param duration 动画时长
- /// @param pos 目的坐标
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犱綅绉诲姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param pos 鐩殑鍧愭爣
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionMoveTo(Duration duration, Point const& pos, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
virtual ActionPtr Reverse() const override
{
KGE_ERROR("Reverse() not supported in ActionMoveTo");
@@ -187,25 +187,25 @@ private:
};
/// \~chinese
-/// @brief 相对跳跃动画
+/// @brief 鐩稿璺宠穬鍔ㄧ敾
class KGE_API ActionJumpBy : public ActionTween
{
public:
/// \~chinese
- /// @brief 构造相对跳跃动画
- /// @param duration 动画时长
- /// @param vec 跳跃位移向量
- /// @param height 跳跃高度
- /// @param jumps 跳跃次数
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犵浉瀵硅烦璺冨姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param vec 璺宠穬浣嶇Щ鍚戦噺
+ /// @param height 璺宠穬楂樺害
+ /// @param jumps 璺宠穬娆℃暟
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionJumpBy(Duration duration, Vec2 const& vec, float height, int jumps = 1, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override;
protected:
@@ -222,25 +222,25 @@ protected:
};
/// \~chinese
-/// @brief 跳跃动画
+/// @brief 璺宠穬鍔ㄧ敾
class KGE_API ActionJumpTo : public ActionJumpBy
{
public:
/// \~chinese
- /// @brief 构造跳跃动画
- /// @param duration 动画时长
- /// @param pos 目的坐标
- /// @param height 跳跃高度
- /// @param jumps 跳跃次数
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犺烦璺冨姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param pos 鐩殑鍧愭爣
+ /// @param height 璺宠穬楂樺害
+ /// @param jumps 璺宠穬娆℃暟
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionJumpTo(Duration duration, Point const& pos, float height, int jumps = 1, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
virtual ActionPtr Reverse() const override
{
KGE_ERROR("Reverse() not supported in ActionJumpTo");
@@ -255,24 +255,24 @@ private:
};
/// \~chinese
-/// @brief 相对缩放动画
+/// @brief 鐩稿缂╂斁鍔ㄧ敾
class KGE_API ActionScaleBy : public ActionTween
{
public:
/// \~chinese
- /// @brief 构造相对缩放动画
- /// @param duration 动画时长
- /// @param scale_x 横向缩放相对变化值
- /// @param scale_y 纵向缩放相对变化值
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犵浉瀵圭缉鏀惧姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param scale_x 妯悜缂╂斁鐩稿鍙樺寲鍊
+ /// @param scale_y 绾靛悜缂╂斁鐩稿鍙樺寲鍊
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionScaleBy(Duration duration, float scale_x, float scale_y, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override;
protected:
@@ -288,24 +288,24 @@ protected:
};
/// \~chinese
-/// @brief 缩放动画
+/// @brief 缂╂斁鍔ㄧ敾
class KGE_API ActionScaleTo : public ActionScaleBy
{
public:
/// \~chinese
- /// @brief 构造缩放动画
- /// @param duration 动画时长
- /// @param scale_x 横向缩放目标值
- /// @param scale_y 纵向缩放目标值
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犵缉鏀惧姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param scale_x 妯悜缂╂斁鐩爣鍊
+ /// @param scale_y 绾靛悜缂╂斁鐩爣鍊
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionScaleTo(Duration duration, float scale_x, float scale_y, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
virtual ActionPtr Reverse() const override
{
KGE_ERROR("Reverse() not supported in ActionScaleTo");
@@ -321,23 +321,23 @@ private:
};
/// \~chinese
-/// @brief 透明度渐变动画
+/// @brief 閫忔槑搴︽笎鍙樺姩鐢
class KGE_API ActionFadeTo : public ActionTween
{
public:
/// \~chinese
- /// @brief 构造透明度渐变动画
- /// @param duration 动画时长
- /// @param opacity 目标透明度
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犻忔槑搴︽笎鍙樺姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param opacity 鐩爣閫忔槑搴
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionFadeTo(Duration duration, float opacity, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
virtual ActionPtr Reverse() const override
{
KGE_ERROR("Reverse() not supported in ActionFadeTo");
@@ -356,47 +356,47 @@ private:
};
/// \~chinese
-/// @brief 淡入动画
+/// @brief 娣″叆鍔ㄧ敾
class KGE_API ActionFadeIn : public ActionFadeTo
{
public:
/// \~chinese
- /// @brief 构造淡入动画
- /// @param duration 动画时长
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犳贰鍏ュ姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
explicit ActionFadeIn(Duration duration, EaseFunc func = nullptr);
};
/// \~chinese
-/// @brief 淡出动画
+/// @brief 娣″嚭鍔ㄧ敾
class KGE_API ActionFadeOut : public ActionFadeTo
{
public:
/// \~chinese
- /// @brief 构造淡出动画
- /// @param duration 动画时长
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犳贰鍑哄姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
explicit ActionFadeOut(Duration duration, EaseFunc func = nullptr);
};
/// \~chinese
-/// @brief 相对旋转动画
+/// @brief 鐩稿鏃嬭浆鍔ㄧ敾
class KGE_API ActionRotateBy : public ActionTween
{
public:
/// \~chinese
- /// @brief 构造相对旋转动画
- /// @param duration 动画时长
- /// @param rotation 角度相对变化值
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犵浉瀵规棆杞姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param rotation 瑙掑害鐩稿鍙樺寲鍊
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionRotateBy(Duration duration, float rotation, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override;
protected:
@@ -410,23 +410,23 @@ protected:
};
/// \~chinese
-/// @brief 旋转动画
+/// @brief 鏃嬭浆鍔ㄧ敾
class KGE_API ActionRotateTo : public ActionRotateBy
{
public:
/// \~chinese
- /// @brief 构造旋转动画
- /// @param duration 动画时长
- /// @param rotation 目标角度
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犳棆杞姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param rotation 鐩爣瑙掑害
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionRotateTo(Duration duration, float rotation, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
virtual ActionPtr Reverse() const override
{
KGE_ERROR("Reverse() not supported in ActionRotateTo");
@@ -441,28 +441,28 @@ private:
};
/// \~chinese
-/// @brief 自定义动画
+/// @brief 鑷畾涔夊姩鐢
class KGE_API ActionCustom : public ActionTween
{
public:
/// \~chinese
- /// @brief 动画回调函数
- /// @details 在动画更新时回调该函数,第一个参数是执行动画的目标,第二个参数是动画进度(0.0 - 1.0)
+ /// @brief 鍔ㄧ敾鍥炶皟鍑芥暟
+ /// @details 鍦ㄥ姩鐢绘洿鏂版椂鍥炶皟璇ュ嚱鏁帮紝绗竴涓弬鏁版槸鎵ц鍔ㄧ敾鐨勭洰鏍囷紝绗簩涓弬鏁版槸鍔ㄧ敾杩涘害锛0.0 - 1.0锛
using TweenFunc = Function;
/// \~chinese
- /// @brief 构造自定义动画
- /// @param duration 动画时长
- /// @param tween_func 动画回调函数
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犺嚜瀹氫箟鍔ㄧ敾
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param tween_func 鍔ㄧ敾鍥炶皟鍑芥暟
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionCustom(Duration duration, TweenFunc tween_func, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override
{
KGE_ERROR("Reverse() not supported in ActionCustom");
diff --git a/src/kiwano/2d/action/ActionWalk.h b/src/kiwano/2d/action/ActionWalk.h
index d6471eed..d583852e 100644
--- a/src/kiwano/2d/action/ActionWalk.h
+++ b/src/kiwano/2d/action/ActionWalk.h
@@ -33,44 +33,44 @@ KGE_DECLARE_SMART_PTR(ActionWalk);
*/
/// \~chinese
-/// @brief 路径行走动画
+/// @brief 璺緞琛岃蛋鍔ㄧ敾
class KGE_API ActionWalk : public ActionTween
{
public:
/// \~chinese
- /// @brief 构造路径行走动画
- /// @param duration 持续时长
- /// @param rotating 是否沿路径切线方向旋转
- /// @param start 路径起点(百分比)
- /// @param end 路径终点(百分比)
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犺矾寰勮璧板姩鐢
+ /// @param duration 鎸佺画鏃堕暱
+ /// @param rotating 鏄惁娌胯矾寰勫垏绾挎柟鍚戞棆杞
+ /// @param start 璺緞璧风偣锛堢櫨鍒嗘瘮锛
+ /// @param end 璺緞缁堢偣锛堢櫨鍒嗘瘮锛
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionWalk(Duration duration, bool rotating = false, float start = 0.f, float end = 1.f, EaseFunc func = nullptr);
/// \~chinese
- /// @brief 构造路径行走动画
- /// @param duration 持续时长
- /// @param path 路径形状
- /// @param rotating 是否沿路径切线方向旋转
- /// @param start 路径起点(百分比)
- /// @param end 路径终点(百分比)
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勯犺矾寰勮璧板姩鐢
+ /// @param duration 鎸佺画鏃堕暱
+ /// @param path 璺緞褰㈢姸
+ /// @param rotating 鏄惁娌胯矾寰勫垏绾挎柟鍚戞棆杞
+ /// @param start 璺緞璧风偣锛堢櫨鍒嗘瘮锛
+ /// @param end 璺緞缁堢偣锛堢櫨鍒嗘瘮锛
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
ActionWalk(Duration duration, ShapePtr path, bool rotating = false, float start = 0.f, float end = 1.f,
EaseFunc func = nullptr);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override;
/// \~chinese
- /// @brief 获取路线
+ /// @brief 鑾峰彇璺嚎
ShapePtr const& GetPath() const;
/// \~chinese
- /// @brief 设置路径形状
+ /// @brief 璁剧疆璺緞褰㈢姸
void SetPath(ShapePtr path);
protected:
diff --git a/src/kiwano/2d/action/Animation.h b/src/kiwano/2d/action/Animation.h
index 9125bd0c..9675bb8b 100644
--- a/src/kiwano/2d/action/Animation.h
+++ b/src/kiwano/2d/action/Animation.h
@@ -32,36 +32,36 @@ KGE_DECLARE_SMART_PTR(Animation);
*/
/// \~chinese
-/// @brief 帧动画
+/// @brief 甯у姩鐢
class KGE_API Animation : public ActionTween
{
public:
Animation();
/// \~chinese
- /// @brief 构建帧动画
- /// @param duration 动画时长
- /// @param[in] frame_seq 序列帧
- /// @param func 动画速度缓动函数
+ /// @brief 鏋勫缓甯у姩鐢
+ /// @param duration 鍔ㄧ敾鏃堕暱
+ /// @param[in] frame_seq 搴忓垪甯
+ /// @param func 鍔ㄧ敾閫熷害缂撳姩鍑芥暟
Animation(Duration duration, FrameSequencePtr frame_seq, EaseFunc func = nullptr);
virtual ~Animation();
/// \~chinese
- /// @brief 获取序列帧
+ /// @brief 鑾峰彇搴忓垪甯
FrameSequencePtr GetFrameSequence() const;
/// \~chinese
- /// @brief 设置序列帧
- /// @param[in] frame_seq 序列帧
+ /// @brief 璁剧疆搴忓垪甯
+ /// @param[in] frame_seq 搴忓垪甯
void SetFrameSequence(FrameSequencePtr frame_seq);
/// \~chinese
- /// @brief 获取该动画的拷贝对象
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鎷疯礉瀵硅薄
ActionPtr Clone() const override;
/// \~chinese
- /// @brief 获取该动画的倒转
+ /// @brief 鑾峰彇璇ュ姩鐢荤殑鍊掕浆
ActionPtr Reverse() const override;
protected:
diff --git a/src/kiwano/core/AsyncTask.h b/src/kiwano/core/AsyncTask.h
index 3fb9fb70..35c7528a 100644
--- a/src/kiwano/core/AsyncTask.h
+++ b/src/kiwano/core/AsyncTask.h
@@ -31,8 +31,8 @@ typedef Function AsyncTaskFunc;
typedef Function AsyncTaskCallback;
/// \~chinese
-/// @brief 异步任务
-/// @details 在多线程下执行任务并返回
+/// @brief 寮傛浠诲姟
+/// @details 鍦ㄥ绾跨▼涓嬫墽琛屼换鍔″苟杩斿洖
/// @code
/// AsyncTaskPtr task = new AsyncTask;
/// task->Then(DoSomething);
@@ -42,27 +42,27 @@ class AsyncTask : public virtual ObjectBase
{
public:
/// \~chinese
- /// @brief 创建异步任务
- /// @param func 异步回调函数
+ /// @brief 鍒涘缓寮傛浠诲姟
+ /// @param func 寮傛鍥炶皟鍑芥暟
static AsyncTaskPtr Create(AsyncTaskFunc func);
/// \~chinese
- /// @brief 构造异步任务
+ /// @brief 鏋勯犲紓姝ヤ换鍔
AsyncTask();
virtual ~AsyncTask();
/// \~chinese
- /// @brief 添加异步任务链
+ /// @brief 娣诲姞寮傛浠诲姟閾
AsyncTask& Then(AsyncTaskFunc func);
/// \~chinese
- /// @brief 设置任务执行完成后的回调函数
- /// @note 该函数在 Kiwano 主线程中执行
+ /// @brief 璁剧疆浠诲姟鎵ц瀹屾垚鍚庣殑鍥炶皟鍑芥暟
+ /// @note 璇ュ嚱鏁板湪 Kiwano 涓荤嚎绋嬩腑鎵ц
AsyncTask& SetCallback(AsyncTaskCallback callback);
/// \~chinese
- /// @brief 启动异步任务
+ /// @brief 鍚姩寮傛浠诲姟
void Start();
private:
diff --git a/src/kiwano/core/Common.h b/src/kiwano/core/Common.h
index f24cbe75..283970a7 100644
--- a/src/kiwano/core/Common.h
+++ b/src/kiwano/core/Common.h
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -36,108 +37,108 @@ namespace kiwano
{
/// \~chinese
-/// @brief 输入流
+/// @brief 杈撳叆娴
using InputStream = std::istream;
/// \~chinese
-/// @brief 输出流
+/// @brief 杈撳嚭娴
using OutputStream = std::ostream;
/// \~chinese
-/// @brief 字符串容器
+/// @brief 瀛楃涓插鍣
using String = oc::string;
/// \~chinese
-/// @brief 宽字符串容器
+/// @brief 瀹藉瓧绗︿覆瀹瑰櫒
using WideString = oc::wstring;
/// \~chinese
-/// @brief 字符串流
+/// @brief 瀛楃涓叉祦
using StringStream = std::stringstream;
/// \~chinese
-/// @brief 宽字符串流
+/// @brief 瀹藉瓧绗︿覆娴
using WideStringStream = std::wstringstream;
/// \~chinese
-/// @brief 线性数组容器
+/// @brief 绾挎ф暟缁勫鍣
template
using Vector = std::vector<_Ty, _Args...>;
/// \~chinese
-/// @brief 链表容器
+/// @brief 閾捐〃瀹瑰櫒
template
using List = std::list<_Ty, _Args...>;
/// \~chinese
-/// @brief 队列容器
+/// @brief 闃熷垪瀹瑰櫒
template
using Queue = std::queue<_Ty, _Args...>;
/// \~chinese
-/// @brief 集合容器
+/// @brief 闆嗗悎瀹瑰櫒
template
using Set = std::set<_Ty, _Args...>;
/// \~chinese
-/// @brief 对容器
+/// @brief 瀵瑰鍣
template
using Pair = std::pair<_Ty1, _Ty2>;
/// \~chinese
-/// @brief 无序集合容器
+/// @brief 鏃犲簭闆嗗悎瀹瑰櫒
template
using UnorderedSet = std::unordered_set<_Ty, _Args...>;
/// \~chinese
-/// @brief 栈容器
+/// @brief 鏍堝鍣
template
using Stack = std::stack<_Ty, _Args...>;
/// \~chinese
-/// @brief 字符串容器
+/// @brief 瀛楃涓插鍣
template
using Map = std::map<_Kty, _Ty, _Args...>;
/// \~chinese
-/// @brief 字符串容器
+/// @brief 瀛楃涓插鍣
template
using UnorderedMap = std::unordered_map<_Kty, _Ty, _Args...>;
/// \~chinese
-/// @brief 函数封装器
+/// @brief 鍑芥暟灏佽鍣
template
using Function = oc::function<_FuncTy>;
/// \~chinese
-/// @brief 单值容器
+/// @brief 鍗曞煎鍣
using Any = oc::any;
/// \~chinese
-/// @brief 侵入式链表容器
+/// @brief 渚靛叆寮忛摼琛ㄥ鍣
template
using IntrusiveList = oc::intrusive_list<_Ty>;
/// \~chinese
-/// @brief 侵入式链表元素
+/// @brief 渚靛叆寮忛摼琛ㄥ厓绱
template
using IntrusiveListItem = oc::intrusive_list_item<_Ty>;
/// \~chinese
-/// @brief 侵入式智能指针
+/// @brief 渚靛叆寮忔櫤鑳芥寚閽
template
using IntrusivePtr = oc::intrusive_ptr<_Ty, _RefProxyTy>;
/// \~chinese
-/// @brief JSON对象容器
+/// @brief JSON瀵硅薄瀹瑰櫒
using Json = nlohmann::basic_json