소스 정보
- 저장소
- kakuun333/CspDiscordRpcGd
- 최근 소스 활동
- 2026년 5월 8일 05:47
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 8
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/kakuun333/CspDiscordRpcGd --skill godot-cpp-guide명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | godot-cpp-guide |
| description | 編寫 Godot C++(godot-cpp)程式碼時的規範,確保結構清楚、易維護並符合最佳實踐。 |
godot-cppLFUTF-8檢查編譯錯誤時使用:
cmake --build cmake-build-codex --config Debug -j 26
必要時重新建置:
rm -rf cmake-build-codex
cmake -S . -B cmake-build-codex
cmake --build cmake-build-codex --config Debug -j 26
.h 中的類別方法與成員排列規則:
static → public → protected → privatepublic → protected → private.h 定義,其餘應在 .cpp 實作初始化:
godot::Ref<T> 明確初始化為 nullptr覆寫:
override 時,不要省略 virtual屬性:
[[nodiscard]],強調返回值的重要性[[maybe_unused]],避免未使用變數警告關鍵字:
_FORCE_INLINE__ALWAYS_INLINE_MyClassMyStructMyMethodMyMemberMY_ENUMERATORb + PascalCase → bIsActiveE + PascalCase → EMyEnumHttp、Ui、Npc、Xp、UserId避免重複宣告中的返回型別,改用大括號初始化
能使用 range-based for loop 時就使用
Pointer 和 Reference 應放在型別後方,且不留空格:
godot::Button* SomeFunc(const godot::String& SomeText);
callable_mp 巨集代替 godot::Callable:godot::Callable(this, "some_method") // 不推薦
callable_mp(this, &MyClass::SomeMethod) // 推薦
如果 enum 要綁定到 Godot,例如用於 VARIANT_ENUM_CAST、BIND_ENUM_CONSTANT、godot::ClassDB::bind_method,使用 enum EMyEnum
其他情況一律使用 enum class EMyEnum
根據列舉值數量繼承 uint8_t 或 uint16_t
成員變數使用統一初始化:
class MyClass
{
private:
bool bMyBoolean{ false };
};
godot::String 無法透過 operator+ 連接 const char*:godot::String("MyString") + "C-StyleString" // 錯誤
callable_mp() 代替 call_deferred():callable_mp(this, &MyClass::MyFunc).call_deferred(); // 推薦
call_deferred("my_func"); // 不推薦
Resource 使用 godot::Ref<T>newusing namespace godot;godot:: 前綴明確指定命名空間godot::ClassDB::bind_method 綁定方法godot::D_METHOD 的方法名稱與參數名稱使用 snake_casegodot::ClassDB::bind_method(godot::D_METHOD("some_method", "some_param"), &MyClass::SomeMethod);
ADD_PROPERTY 的第 2 和第 3 個參數使用 snake_caseADD_PROPERTY(godot::PropertyInfo(godot::Variant::STRING_NAME, "Name", godot::PROPERTY_HINT_NONE, "", godot::PROPERTY_USAGE_DEFAULT), "set_name", "get_name");
PropertyInfo 的第 2 個參數使用 PascalCasegodot::PropertyInfo(godot::Variant::STRING_NAME, "Name", godot::PROPERTY_HINT_NONE, "", godot::PROPERTY_USAGE_DEFAULT)
所有繼承 Godot 類別的類別都必須使用以下格式:
class MyClass : public godot::GodotClass
{
GDCLASS(MyClass, GodotClass)
protected:
static void _bind_methods();
}