1. ホーム
  2. lua

luaのエラーまとめ

2022-02-20 02:01:32
1. getPosition は再度変換する必要があります ccp(getPosition)



2. ノードを取得したら、それを使う前にtolua.cast(pNode, "CCNode")で強制変換を行う必要がある



3. 3. 呼び出される関数を追加する。CCMenuItem.cpp の registerScriptTapHandler を参照(lua のメンバーメソッドのオーバーロードを実装することができます)。



a. ハンドラを保存するためのメンバー変数を追加する



b. CCLuaEngine.cppにイベントを実行する呼び出しを追加します。この関数は、以前に保存した呼び出し関数を取得し、引数をスタックし、luaにコールバックする機能を実装しています。



c. 上記で実装したメソッドをc++のメンバ関数で呼び出す。







4. 配列でないテーブルを反復する場合、テーブルのサイズを得るために getn と # を使用することはできません。



5. 文字列 "xxx" を self[xxx] でアクセスできる変数として使用する。



6. CCScrollViewを使って、コンテナを設定せずにノードを追加する場合、デフォルトでコンテナとしてcclayerを作成し、子プロセスを追加する際にcclayerに子を追加します。そのため、スクロールビューの子ノードを削除する必要がある場合



コンテナを取得し、そのコンテナの子オブジェクトをすべて削除する必要があります。







7. luaのクラス名。変数はグローバル変数、つまり新しくなるたびに共有されるので、毎回異なる変数にしたい場合は、新しいインスタンスを取得する際に対応する変数を追加する必要があります











8. ローカル 'self' (数値値) のインデックスを作成しようとする。



エンジンが提供する CCBuilderReaderLoad を使って ccbi ファイルを読み込むと、コールバック関数がエラーを報告します。



を使っています。



 関数 MainScene:dialogClick()を実行します。



       cclog("dialogClick")



       local PersonPanel=require "luascript/PersonPanel"。



      self:addChild(PersonPanel.new())を実行します。



      self:setPosition(0,0)



   終了  



解決策



メソッドを定義します。



関数 handler(ターゲット, メソッド)



   return function(...)



       return method(target, ...)



   終了



終了



CCBuilderReaderLoad関数内のコールバックが設定されている箇所全てに、以下の変更を加えます。



--proxy:setCallback(callbackNode, ccb[documentControllerName][cbName], integerValue:getValue())



proxy:setCallback(callbackNode, handler(owner, owner[cbName])), integerValue:getValue())



引用元 http://www.68idc.cn/help/jiabenmake/qita/2014011167018.html







9. 14ビット以上のデータ型をjsonエンコードすると、それ以降のデータは丸められます。



元ファイルのデフォルトの精度は14ビットに設定されていますが、より大きな値に変更したい場合は、fpconv.cのset_number_format関数で"precision"を変更して、14を必要な精度に変更することが可能です。



lua_cjson.cで、関数json_cfg_encode_number_precisionの14ビットを必要な精度に変更します。json.luaで、初期化を追加します: cjson.encode_number_precision(xxx), "xxx " は必要とする精度です。





10. ccbiを読み込むと、以下のエラーが報告されます。 ccb: expression: ccnodeloadersiterator !



チェックメニュー・ドキュメント・サブメニュー・javascript制御



11.tip 座標点の設定において、座標点が浮動小数点の場合、フォントや透明度がシェーピングより悪くなり、シミュレーターではこのようになりますが、実機ではぼやけません。



12. ccbで作られたccontrolButtonは、レスポンス関数で2つのパラメータを渡しますが、その2つ目はccontrolButton自身なので、それ自身のタグを取得することができます。



13. cccontrolButtonのラベルをリセットする場合、ラベルのノードを取得し、文字を設定する必要がありますが、ボタンに別の状態を設定すると、元の文字に戻るため、リセットする必要があることに注意してください。



14.レイヤーとノード、対応する領域ではないが、最初の1つのイベントに応答する、しかし、優先順位は、応答することができます



15.アクションの実行、コールバックで外部定義アクションを呼び出すと、エラー "CCSequence:createWithTwoActions ASSERT FAILED ON LUA EXECUTE:" が表示されます。



解決方法:http://blog.csdn.net/song_hui_xiang/article/details/9174763



16. Quickx では、スプライトのイベントを個別に設定できます。イベントに応答する必要があるスプライトが多数ある場合、レイヤーのタッチで x,y を使用して、現在のクリックがスプライトのバウンディングボックス内にあるかどうかを判断することが検討できます。

17.quickx変数は、新しいインスタンスまたはテーブルの別の変数に等しく、割り当てが同じコンテンツを指す、インデックスです。オブジェクトの新しいアウトはprint_lua_tableでテーブルを印刷したい、あなたは印刷する前にNULLに__indexを設定する必要があり、それ以外の場合は無限ループにつながる。



18. for はクロージャーの繰り返し、ipairs (iter), pairs (iterator is next) はクロージャーのない状態の繰り返し。



19。異なる解像度でquickx領域rectは、領域の元の座標が変更されないことに注意してください:xx.origin.xとxx.origin.y、スクロールリストでは、タッチで可視領域のリストの要素がない応答の問題に対応するかどうかを判断するためにクリックすると、そのため使用する必要がディスプレイ。c_左= -xx.00 display.c_right = xx.00 標準のものからは、オフセット位置取得する引き算することです



20. luaはプライベートメンバー定義をローカルタイプとして実装しています。



21。新しい環境変数を設定するためのsetfenvは、これはグローバル変数を汚染する問題を解決することができます、外部変数への参照は、必要なインターフェイスを保存し、直接呼び出すためにローカルを使用する前にこの関数を使用できます、これはメタメソッドを使用するより効率的です、 __index = _G



22. ローカルを使ったインターフェースとメンバのプライベート化



23. エラー: 'const class std::type_info' には 'hash_code' という名前のメンバが存在しない。



APP_CPPFLAGS := -std=c++11



24.ccspriteを継承したCCLabelTTFは、CCTexture2Dでビットマップを描画し、マテリアルを生成し、setTextureで表示テキストを実装しています。