首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Cocos2d-x 新手核心概念答疑:init 生命周期、父類調用、資源路徑、VS 專案結構

     編輯:程式設計綜合問答

問題 1:init 中創建的 Sprite 為何不釋放?

Cocos2d-x 採用引用計數內存管理。Sprite::create() 返回自動釋放池對象,addChild(sprite) 會 retain(),引用計數 +1。當父節點銷毀或調用 removeChild() 時 release(),計數歸零自動 delete。因此離開 init 作用域不會銷毀。

問題 2:為何必須調用父類 init()?

Cocos2d-x 從 Objective-C 移植,採用兩階段構造:create() 分配內存 → init() 初始化。父類 init 負責基礎設置(如 _contentSize、_anchorPoint、調度器註冊)。子類不調用會導致對象狀態不完整,出現難以定位的 Bug。

問題 3:資源文件夾分類管理

默認 Resources 為搜索根路徑。若建立子目錄 Resources/ui/,代碼中需使用相對路徑 "ui/icon.png",或在 AppDelegate.cpp 添加搜索路徑:


FileUtils::getInstance()->addSearchPath("Resources/ui");
FileUtils::getInstance()->addSearchPath("Resources/sound");

問題 4:VS2012 新建類放入 Classes 目錄

  • 右鍵項目 → Add → New Item → C++ Class。
  • 在 Location 欄選擇或輸入 Classes 目錄路徑。
  • 取消勾選「Add to external dependencies」(外部依賴項僅用於引用第三方庫頭文件)。
  • 建議在 Classes 下建立子目錄(Scenes/Layers/Models)對應邏輯模塊,VS 篩選器同步創建。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved