【COCOS2DX-LUA 指令碼開發之六】利用Lua強轉函式解決使用CCNode報錯或無法正常使用以及簡單介紹 quick-cocos2d-x 與 OpenQuick 兩款Lua免費開源框架
Him 的Cocos2dx-Lua群中有童鞋出現一個問題,問題是當他在Lua專案中利用Lua建立一個區域性變數CCSprite或者CCLayer等CCNode,然後在其他的函式中通過其索引取出之前建立過的CCSprite或CCLayer等,取出後進行設定設定透明、座標、縮放、runAction等大部分機率都出現無法正常縮放、透明等這些操作。群友嘗試了很多方式,都沒有解決掉。
其實對於此種問題很多剛接觸Lua開發cocos2dx的開發者都很容易遇到,其實就是個強轉的問題,例如:
在 cpp中利用getChildByTag 函式獲取目標tag的ccnode:
12 | CCSprite* sp = (CCSprite*)node->getChildByTag(x); CCLayer* layer = (CCLayer*)node->getChildByTag(x) |
在Lua中程式碼如下:
12 | local sp = node:getChildByTag(x) local layer = node:getChildByTag(x) |
如上的程式碼一對比很多童鞋就看出來了,Lua形式的並沒有強轉型別!是的,就是因為沒有強轉造成。
還有一些童鞋該疑惑了“為什麼cocos2dx引擎示例中就沒有使用強轉呢?”
原因是由於示例基本都是採用成員變數進行的,區域性變數還是有強轉的操作的。
那麼Lua中強轉一個型別函式如下:
tolua.cast(object,”CCSprite”)
第一個引數是需要強轉的物件 , 第二個引數是強轉的目標型別
例如我們將x 強轉 CCSprite,則: tolua.cast(x,”CCSprite”)
quick-cocos2d-x 與 OpenQuick
OpenQuick:
quick-cocos2d-x :
quick-cocos2d-x 首頁及下載地址 : https://github.com/dualface/quick-cocos2d-x
簡單的說: OpenQuick 與 quick-cocos2d-x 都是針對 2D遊戲 基於 Lua 的免費開源框架,且都支援c2dx。
OpenQuick :主要是將所有的C2dx的類的基礎上進行了再次封裝成Q開標頭檔案,開發者需在此基礎上進行使用開發。
quick-cocos2d-x : 及時與cocos2dx版本匹配更新,另外它框架比較清晰,便於理解和使用。它所做的不是再次封裝,然後儘可能契合cocos2dx,在此基礎上做Lua的擴充套件。
Himi認為quick-cocos2d-x更適合一些,而且也是當前開發者使用居多的一款, 當然這大家可以更深入的去研究。
相關推薦
【COCOS2DX-LUA 指令碼開發之六】利用Lua強轉函式解決使用CCNode報錯或無法正常使用以及簡單介紹 quick-cocos2d-x 與 OpenQuick 兩款Lua免費開源框架
Him 的Cocos2dx-Lua群中有童鞋出現一個問題,問題是當他在Lua專案中利用Lua建立一個區域性變數CCSprite或者CCLayer等CCNode,然後在其他的函式中通過其索引取出之前建立過的CCSprite或CCLayer等,取出後進行設定設定透明、座標、縮放、
【COCOS2DX-LUA 指令碼開發之十三】解決lua專案編譯Android出現get data from file failed、Cocos2dxActivity cannot be 路徑等問題
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) CCString* pstrFileContent = CCString::createWithContentsOfFile("himi.lua"); if (pstrFi
【COCOS2DX-BOX2D遊戲開發之三】 讀取tiledmap的tmx阻擋
做一款畫素遊戲專案,需要讀取TMX檔案中的阻擋區域,生成box2d的fixture,來做阻擋 使用cocos2dx版本: 2.2.2 1.在tmx檔案中建立一個"Physics"的層,用來存放編輯器中生成的各種阻擋塊 編輯器中主要有polygone, polyline,
【COCOS2DX-BOX2D遊戲開發之四】 Box2D勻速運動
文章最後,附上自己的勻加速程式碼片段 以勻速移動物體 遊戲中一種常見的需求是讓物體做勻速運動。例如橫屏遊戲中的玩家角色,太空飛船或者汽車,等等。根據遊戲的不同,有時候物體應該逐漸改變速度,其他情況又希望能夠瞬間開始和停止運動。使用SetLinearVelocity方
【COCOS2DX-IOS-遊戲開發之二一】之 最熱血的RPG+RTS塔防遊戲Flesh&Blood-Attack on Orc上線了
我們的新遊戲Flesh&Blood – Attack on Orc 中文名:血肉之軀 正式在AppStore上線了,是一款熱血的塔防RTS遊戲,同時支援iPhone和iPad AppStore下載地址: 目前是收費的,過兩天限免的時候我會第一時間通知大家的.
【APACHE MINA2.0開發之二】自定義實現SERVER/CLIENT端的編解碼工廠(自定義編碼與解碼器)!
在上一篇博文中已經簡單介紹過“過濾器”的概念,那麼在Mina 中的協議編解碼器通過過濾器 ProtocolCodecFilter 構造,這個過濾器的構造方法需 要一個 ProtocolCodecFactory,這從前面註冊 TextLineCodecFactory 的程式碼就可以看出來。 Protoc
【REACT NATIVE 系列教程之十三】利用LISTVIEW與TEXTINPUT製作聊天/對話方塊&&獲取元件例項常用的兩種方式
補充說明:一:很多童鞋問,鍵盤調出來被擋住了,那麼下面給出三個解決方案:1. 在render最外層包一個ScrollView,然後當鍵盤調出時,scrollTo即可實現。2. 在底部新增一個可變化高度的view,根據鍵盤獲取、失去焦點時,進行處理實現二:有的童鞋說對話方塊的背景沒有根據內容長短自適應,OK ,
【iOS-cocos2d-X 遊戲開發之四】Cocos2dX建立Android NDK新專案並編譯匯入Eclipse中正常執行!
站文章均為 李華明Himi 原創,轉載務必在明顯處註明: 轉載自【黑米GameDev街區】 原文連結: http://www.himigame.com/android-game/645.html ☞ 點選訂閱 ☜ 本部落格最新動態
【學習筆記】【Cocos2d-x Lua指令碼開發】如何使用Lua指令碼呼叫自定義類
步驟:自定義類——>使用tolua++編譯到LuaCoco2d.cpp——>Lua指令碼呼叫 具體的操作步驟如下: 步驟一:自定義類 建立自定義類 //DeepSeaHero.h #include "cocos2d.h" using namespace
【Android遊戲開發十六】Android Gesture之【觸控式螢幕手勢識別】操作!利用觸控式螢幕手勢實現一個簡單切換圖片的功能!
原創,轉載務必在明顯處註明:很多童鞋說我的程式碼執行後,點選home或者back後會程式異常,如果你也這樣遇到過,那麼你肯定沒有仔細讀完Himi的博文,第十九篇Himi專門寫了關於這些錯誤的原因和解決方法,這裡我在部落格都補充說明下,省的童鞋們總疑惑這一塊;請點選下面聯絡進入
【.NET開發之美】使用ComponentOne提高.NET DataMap中的載入速度
概述 FlexGrid for WinForm 採用了最新的資料繫結技術,並與Microsoft .NET Framework無縫整合。 因此,您可以獲得易於使用的靈活網格控制元件,用於建立使用者友好介面,以顯示、編輯、格式化、組織、彙總和打印表格資料。 FlexGrid的DataMap屬性允
【webpack結合React開發環境配置】React開發環境配置之Webpack結合Babel8.x版本安裝的正確姿勢(Webpack最新版4.x結合Babel8.x環境配置步驟)
1. 安裝cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org【使用淘寶映象】2. 初始化package.json檔案cnpm init -y3. 安裝webpackcnpm install -d webpack webpack-
【OCR技術系列之六】文字檢測CTPN的程式碼實現
這幾天一直在用Pytorch來複現文字檢測領域的CTPN論文,本文章將從資料處理、訓練標籤生成、神經網路搭建、損失函式設計、訓練主過程編寫等這幾個方面來一步一步復現CTPN。CTPN演算法理論可以參考這裡。 訓練資料處理 我們的訓練選擇天池ICPR2018和MSRA_TD500兩個資料集,天池ICPR的資
【redis學習之六】基於Redis的分散式session實現
在web應用中,我們經常會用session來儲存已登入使用者的相關資訊,在單機應用中,由於所有的使用者都訪問同一個應用,而session都儲存在此單機應用中所以並無不妥。但是隨著使用者併發量的上升,分散式系統勢在必行,這就導致一個使用者的訪問請求可能會分發到不同的叢集部署
【轉】【UNITY3D 遊戲開發之七】C# 中的委託、事件、匿名函式、Lambda 表示式
"委託是一個類,它定義了方法的型別,使得可以將方法當作另一個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法,可以避免在程式中大量使用If-Else(Switch)語句,同時使得程式具有更好的可擴充套件性。" from: http://www.himigame.com/
【微信小程式開發之坑】javascript建立date物件
最近開發中用到date,開始以如下方式來建立: var date = new Date('2018-01-30 11:00:00'); 在開發工具上,除錯,ios 和 android都好好的。 在真機上一跑,android沒問題,ios出問題了。 不應該呀,按理,在開發工具上整合的是ios瀏覽器核心。
【Hadoop學習之六】MapReduce
分享圖片 耦合 output 2.x 大文件 分片 trac bubuko hdfs 一、概念MapReduce:"相同"的key為一組,調用一次reduce方法,方法內叠代這一組數據進行計算 塊、分片、map、reduce、分組、分區之間對應關系block > sp
【Mac + Appium + Python3.6學習(六)】之安裝Android模擬器(Genymotion)並運行模擬器進行自動化
註冊 允許 rgba tin 字符 虛擬 macos 運行 class 環境: MacOS:10.13.6 Virtualbox:5.2.22 Genymotion:genymotion-2.12.2 本文Virtualbox、Genymotio
【ZYNQ-7000開發之七】AXI CDMA特點以及在PS端使用的步驟_理論部分 未完待續
本編文章是AXI Central Direct Memory Access v4.1的閱讀筆記 硬體規格部分 簡介: AXI CDMA為嵌入式系統提供了高效能的片上互聯 The AXI CDMA provides high-bandwidth D
【quick-cocos2d-x 遊戲開發】quick cocos2dx 3.2最穩定版 建立工程+sublime除錯執行
測試環境mac quick cocos2dx 3.2 quick cocos2dx 3.2版本已經差不多了 已經可以建立工程使用了,看下流程 1.最新版quick cocos2dx 3.2 建立工程,編譯,執行 1.1下載 按照README配置工程,執行player3