問題タブ [cocos2d-x-3.x]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Cocos2d-x v3.11 による Genymotion
Mac で cocos2d-x v3.11 を使用し、Genymotion 仮想デバイスを使用しています。
私/jni/Application.mk
の中に、私は入れました、
しかし、常に同じエラーが発生NO_MATCHING_ABIS
し、genymotion でアプリが起動しません。
エラーログは必要ないかもしれませんが、ここにあります:
D/dalvikvm( 1893): Late-enabling CheckJNI
I/ActivityManager( 587): Start proc org.company.numbergame for activity org.company.numbergame/org.cocos2dx.cpp.AppActivity: pid=1893 uid=10060 gids={50060, 3003}
D/dalvikvm( 1893): Trying to load lib /data/app-lib/org.company.numbergame-1/libMyGame.so 0xa4fe4688
E/dalvikvm( 1893): dlopen("/data/app-lib/org.company.numbergame-1/libMyGame.so") failed: dlopen failed: library "/system/lib/libhoudini.so" not found
D/AndroidRuntime( 1893): Shutting down VM
W/dalvikvm( 1893): threadid=1: thread exiting with uncaught exception (group=0xa4d17b20)
E/AndroidRuntime( 1893): FATAL EXCEPTION: main
E/AndroidRuntime( 1893): Process: org.company.numbergame, PID: 1893
E/AndroidRuntime( 1893): java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libhoudini.so" not found
E/AndroidRuntime( 1893): at java.lang.Runtime.loadLibrary(Runtime.java:364)
E/AndroidRuntime( 1893): at java.lang.System.loadLibrary(System.java:526)
E/AndroidRuntime( 1893): at org.cocos2dx.lib.Cocos2dxActivity.onLoadNativeLibraries(Cocos2dxActivity.java:246)
E/AndroidRuntime( 1893): at org.cocos2dx.lib.Cocos2dxActivity.onCreate(Cocos2dxActivity.java:260)
E/AndroidRuntime( 1893): at android.app.Activity.performCreate(Activity.java:5231)
E/AndroidRuntime( 1893): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
E/AndroidRuntime( 1893): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
E/AndroidRuntime( 1893): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
E/AndroidRuntime( 1893): at android.app.ActivityThread.access$800(ActivityThread.java:135)
E/AndroidRuntime( 1893): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
E/AndroidRuntime( 1893): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 1893): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 1893): at android.app.ActivityThread.main(ActivityThread.java:5001)
E/AndroidRuntime( 1893): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1893): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 1893): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/AndroidRuntime( 1893): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/AndroidRuntime( 1893): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 587): Force finishing activity org.company.numbergame/org.cocos2dx.cpp.AppActivity
D/dalvikvm( 587): GC_FOR_ALLOC freed 856K, 19% free 8972K/10964K, paused 11ms, total 11ms
D/MobileDataStateTracker( 587): default: setPolicyDataEnable(enabled=true)
W/ActivityManager( 587): Activity pause timeout for ActivityRecord{529f9534 u0 org.company.numbergame/org.cocos2dx.cpp.AppActivity t8 f}
W/EGL_genymotion( 763): eglSurfaceAttrib not implemented
D/MobileDataStateTracker( 587): default: setPolicyDataEnable(enabled=t
Eclipse エミュレーターは非常に遅く、複数デバイスの解像度テストにも Genymotion を使用する必要があります。
編集:
Eclipseを再起動した後に気付いた奇妙な問題。(Application.mk は変更しません)。を使用してプロジェクトをcocos compile -p android
ビルドすると、x86 のビルドが開始され、genymotion デバイスにインストールすると機能しましたが、実際のデバイスでは機能しませんでした。x86 を削除すると、 armeabi 用にビルドされました。ただし、両方の種類のデバイス (armeabi と x86) で同時に動作するわけではありません。
どうすれば解決できますか?
cocos2d-x-3.x - cocos2d-x FIXED_WIDTH が機能しない
700x1280 の画像があり、デザインの解像度は 700x1280 です。ターゲットとするデバイスごとに個別のアセットを提供するのではなく、すべてのアセットを含む 1 つのリソースを使用します。
問題:
デザインの解像度を設定するときに、ResolutionPolicy::FIXED_WIDTH を渡します。これは、境界線なしで幅をスケーリングしますが、高さは境界線で囲まれる可能性があることを理解しているからです。しかし、私が見るのは固定幅だけですが、画像の高さが画面からはみ出します。つまり、FIXED_WIDTH のように高さが画面に収まらないのですか?
animation - cocos2dx 3.13 - アニメーション付きの DrawNode
私は cocos2d-x 3.13 の初心者です。DrawNode のようなビデオでアニメーションを描画したい: Art Gurus . 手で描いた時と同じように線が引けます。このソリューションの提案はありますか? ありがとう
cocos2d-x - cocos2d-xでラップされたスクロール可能なテキストを作成するには?
中出ししui::Text
てui::Layout
、内容によってはオーバーフロー。を調べたり調べたりLabel::setOverflow
しましLabel::setWrap
たui::Text
がvirtualRenderer
Label
、スクロール可能にしてラップする方法がわかりません。
ui::Text
テキストを適切に折り返していることを確認しながらスクロール可能にするにはどうすればよいですか?
cocos2d-x - 画像ファイルをロードせずに白い正方形をスプライトとして作成する方法は?
通常、次のようにして、スプライト フレーム、ファイル、またはテクスチャからスプライトを作成します。
DrawNode を使用したり、ファイルをスプライトに渡したりせずに、指定された寸法の白い正方形を作成するにはどうすればよいでしょうか?
その方法を説明している別の投稿に出くわしましたが、それをブックマークすることを怠り、その投稿が検索結果に表示されないため、これが可能であることはわかっています..
php - cocos2dxのpngファイルをphpサーバーにアップロードする方法
cocos2dx から .png ファイルを php サーバーにアップロードする必要があります。(.txt はテスト目的には問題ありません)
ここで説明するようにエンジンを編集しました。
http://discuss.cocos2d-x.org/t/upload-file-with-httpclient-solved/18028/4 およびこちら: https://github.com/FenneX/FenneX/commit/134e9433c1dbc3ca6f772ce4c149bf911275a7e9
んで、どうする?ファイルをサーバーにアップロードするにはどうすればよいですか?
これは私の試みですが、私は http/network noob であるため、自分が何をしているのかわかりません...最初に簡単な作業例が必要です。
cocos2dx アップロード ボタン ソース:
PHP サーバー側のコード:
cocos2d-x - 自動バッチ処理のメリットを得るには、テクスチャ キャッシュにテクスチャを追加する必要がありますか?
通常、スプライト フレーム キャッシュをファイルからロードするときは、次のように呼び出します。
内部的に、そのファイルに対応するテクスチャは、以下を呼び出してテクスチャ キャッシュに追加されます。
これは基本的に、その画像から Texture2D オブジェクトを作成し、それを unordered_map に格納します。
オンザフライでテクスチャを生成し、ループ内で以下のコードを呼び出してフレーム キャッシュにスプライト フレームを追加すると、これは内部的に発生しません。
その場でテクスチャを生成し、次のようにして SpriteFrameCache にスプライト フレームを追加します。
すべてのスプライト フレームが同じテクスチャを使用しているにもかかわらず、(addSpriteFrame() を呼び出して) この方法でフレームを追加すると、テクスチャ キャッシュで addImage() が内部的に呼び出されないようです。
openGL 呼び出しの数を表示する左下のカウンターは、画面に追加するフレームの数に関係なく、2 つの呼び出ししかないことを示しています。
通話時
p Director::getInstance()->getTextureCache()->getCachedTextureInfo()
出力が得られます:
(std::__1::string) $0 = "\"/cc_fps_images\" rc=4 id=254 999 x 54 @ 16 bpp => 105 KB\nTextureCache dumpDebugInfo: 1 テクスチャ、105 KB (0.10 MB) の場合\n "
これは fps レートを示すテクスチャです....私のテクスチャの兆候はありませんが、同時にそのテクスチャを使用するフレームを追加しても問題はありません。
私の質問は次のとおりです。これにより、後でパフォーマンスの問題が発生しますか? テクスチャを手動でテクスチャ キャッシュに追加する必要がありますか? この方法でスプライト フレームを追加することで発生する可能性のある他の問題はありますか?
また、Texture2D* tex = new Texture2D() を使用してから、initWithData() を使用してテクスチャを作成します。では、このポインターへの参照を保持し、後で delete を呼び出す必要がありますか? それとも removeUnusedTextures を呼び出すだけで十分ですか?