cocos2d-x-3.0rc1メモ
自メモ)
x-pluginをリンクするとAndroidでSEGVするみたいなのでちょっと保留
x-plugin自体はメンテかかってないんだよねー。
でも
cocos2d-htmlのAndroid出力では
x-plugin使うはずなのでそのうち治ってくると信じたい
cocos2d-x 3.0 rc1 class Cocos2dxActivity extends NativeActivity=>class AppActivity extends Cocos2dxActivity(extends Activity) に確かに変更されてる
http://twitter.com/mk18/status/451577670778617856:twitter:detail:right
http://twitter.com/splhack/status/451578036840701952:twitter:detail:right
でもここらへんの話ってさー
- cocos2d 描画領域に View を重ねる(3.0 rc1) - Qiita
- cocos2d-x 3.0beta2(Android)で広告ADを導入してみる(NativeActivityでJava用パーツを使う)。AdStir編:OBAKESAN.net|オバケサン
の話であるわけですけど、これは以前のGoogle Analytics と同じ話で
起動時に初期化*1 or 設定だけできればいい って感じなんですよね。。
C++からいじる形でスマートにするには
- x-pluginでやりましょう
という構想なわけだったと思うし。まあドキュメントレスだから*2使わなかったのが敗因だと思われ、、、
操作するためにIF文で書くのも微妙な気がするけどどうなんだろう??
cocos2d-x 3.0 rc1 うーん、rc0=>rc1移植してみたけど androidだと 起動時にGL初期化直後に 速攻SEGVで落ちるな、、、(create_projectしたてのは動くけど。。。)状況分からないから戻すか。。。(汗
cocos2d-x 3.0 rc1 x-pluginのリンクで落ちてるとすると android_native_app_glue.h 依存のコード(の除去?)メンテとかかかってないからかもな。。。(汗x-plugin自体のcompileは allになってるの確認したし、、
- Apllication.mk
#APP_ABI := armeabi armeabi-v7a APP_ABI := all
に変更。x-pluginのprotocolのビルドは正常終了してる状態。。。
同じコードでrc0は動くわけだしな。。。
追加検証1>
LabelTTFはお疲れ様で、Labelになったのか。
書いた。 / “Cocos2d-x3.0rc0からCocos2d-x3.0rc1への移行メモ - きょこみのーと” URL
一応
のところを観点に見直してると
らへんのLabel関係は警告出てるわけですが。。。これって通常のとか音声の公式提供ライブラリリンクしただけよ?
[armeabi-v7a] Compile thumb : chipmunk_static <= cpArbiter.c
In file included from jni/../../cocos2d/cocos/audio/android/../../2d/cocos2d.h:96:0,
from jni/../../cocos2d/cocos/audio/android/ccdandroidUtils.cpp:26:
jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelTTF.h:77:77: warning: 'LabelTTF' is deprecated (declared at jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelTTF.h:59) [-Wdeprecated-declarations]
TextVAlignment vAlignment = TextVAlignment::TOP);
^
jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelTTF.h:81:105: warning: 'LabelTTF' is deprecated (declared at jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelTTF.h:59) [-Wdeprecated-declarations]
static LabelTTF * createWithFontDefinition(const std::string& string, FontDefinition &textDefinition);
[armeabi-v7a] Compile thumb : chipmunk_static <= cpArray.c
^
jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelTTF.h:116:30: warning: 'LabelTTF' is deprecated (declared at jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelTTF.h:59) [-Wdeprecated-declarations]
static LabelTTF * create();
^
In file included from jni/../../cocos2d/cocos/audio/android/../../2d/cocos2d.h:97:0,
from jni/../../cocos2d/cocos/audio/android/ccdandroidUtils.cpp:26:
jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelBMFont.h:85:188: warning: 'LabelBMFont' is deprecated (declared at jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelBMFont.h:71) [-Wdeprecated-declarations]
static LabelBMFont * create(const std::string& str, const std::string& fntFile, float width = 0, TextHAlignment alignment = TextHAlignment::LEFT,const Point& imageOffset = Point::ZERO);
^
jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelBMFont.h:89:33: warning: 'LabelBMFont' is deprecated (declared at jni/../../cocos2d/cocos/audio/android/../../2d/CCLabelBMFont.h:71) [-Wdeprecated-declarations]
static LabelBMFont * create();
で HonyBee*3辺りだと実行時にテクスチャー初期エラーが出ます。。。*4
でも同じソース beta2なら動いたので本体依存な気もしないでもない。。。<汗
D/JniHelper(5863): JniHelper::setJavaVM(0xabb0), pthread_self() = -1345002304
D/skia(5863): purging 13K from font cache [2 entries]
D/libEGL(5863): loaded /system/lib/egl/libGLES_android.so
D/libEGL(5863): loaded /vendor/lib/egl/libEGL_POWERVR_SGX543_141.so
D/libEGL(5863): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX543_141.so
D/libEGL(5863): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX543_141.so
D/cocos2d-x debug info(5863): {
D/cocos2d-x debug info(5863): gl.supports_vertex_array_object: true
D/cocos2d-x debug info(5863): gl.supports_BGRA8888: true
D/cocos2d-x debug info(5863): gl.supports_ATITC: false
D/cocos2d-x debug info(5863): gl.supports_S3TC: false
D/cocos2d-x debug info(5863): cocos2d.x.version: 3.0-rc1
D/cocos2d-x debug info(5863): gl.supports_discard_framebuffer: true
D/cocos2d-x debug info(5863): cocos2d.x.compiled_with_profiler: false
D/cocos2d-x debug info(5863): gl.supports_PVRTC: true
D/cocos2d-x debug info(5863): cocos2d.x.build_type: DEBUG
D/cocos2d-x debug info(5863): gl.renderer: PowerVR SGX 543MP
D/cocos2d-x debug info(5863): gl.supports_ETC1: true
D/cocos2d-x debug info(5863): cocos2d.x.compiled_with_gl_state_cache: true
D/cocos2d-x debug info(5863): gl.version: OpenGL ES 2.0 build 1.7@783851
D/cocos2d-x debug info(5863): gl.supports_NPOT: true
D/cocos2d-x debug info(5863): gl.max_texture_units: 8
D/cocos2d-x debug info(5863): gl.vendor: Imagination Technologies
D/cocos2d-x debug info(5863): gl.max_texture_size: 4096
D/cocos2d-x debug info(5863): }
D/cocos2d-x debug info(5863): cocos2d: ERROR: Failed to compile shader:
D/cocos2d-x debug info(5863): precision mediump float;
D/cocos2d-x debug info(5863): uniform mat4 CC_PMatrix;
D/cocos2d-x debug info(5863): uniform mat4 CC_MVMatrix;
D/cocos2d-x debug info(5863): uniform mat4 CC_MVPMatrix;
D/cocos2d-x debug info(5863): uniform vec4 CC_Time;
D/cocos2d-x debug info(5863): uniform vec4 CC_SinTime;
D/cocos2d-x debug info(5863): uniform vec4 CC_CosTime;
D/cocos2d-x debug info(5863): uniform vec4 CC_Random01;
D/cocos2d-x debug info(5863): //CC INCLUDES END
D/cocos2d-x debug info(5863):
D/cocos2d-x debug info(5863): #ifdef GL_ES
D/cocos2d-x debug info(5863): precision lowp float;
D/cocos2d-x debug info(5863): #endif
D/cocos2d-x debug info(5863):
D/cocos2d-x debug info(5863): varying vec4 v_fragmentColor;
D/cocos2d-x debug info(5863): varying vec2 v_texCoord;
D/cocos2d-x debug info(5863): uniform sampler2D CC_Texture0;
D/cocos2d-x debug info(5863): uniform vec4 v_effectColor;
D/cocos2d-x debug info(5863): uniform vec4 v_textColor;
D/cocos2d-x debug info(5863):
D/cocos2d-x debug info(5863): void main()
D/cocos2d-x debug info(5863): {
D/cocos2d-x debug info(5863): vec4 sample = texture2D(CC_Texture0, v_texCoord);
D/cocos2d-x debug info(5863): float fontAlpha = sample.a;
D/cocos2d-x debug info(5863): float outlineAlpha = sample.r;
D/cocos2d-x debug info(5863): if (outlineAlpha > 0.0){
D/cocos2d-x debug info(5863): vec4 color = v_textColor * fontAlpha + v_effectColor * (1.0 - fontAlpha);
D/cocos2d-x debug info(5863): gl_FragColor = v_fragmentColor * vec4( color.rgb,max(fontAlpha,outlineAlpha)*color.a);
D/cocos2d-x debug info(5863): }
D/cocos2d-x debug info(5863): else {
D/cocos2d-x debug info(5863): discard;
D/cocos2d-x debug info(5863): }
D/cocos2d-x debug info(5863): }
D/cocos2d-x debug info(5863): cocos2d: Compile failed.
ココらへんの情報ぐぐると、過去のverでも定期的にデグれってるようで、次
のverで治るとかよくあるみたい。したがって様子見してたほうがいいのかも、、、
追加検証2>
cocos2d-x 3.0 rc1 とりあえず動かなくなってた件は 2系の頃にあったEGLの初期化設定がなかったからっぽい。あとnativeActivityでなくなったので android_native_app_glue は確かに外しても問題ないな
cocos2d-x 3.0 rc1 でも rc0からある HoneyBeeで初期化エラーの話は改善されず。。beta2では問題なく動いてたんだけど何が違うんだろう?
- Merge pull request #25 from natural-law/develop · cocos2d-x/plugin-x@547ce2e · GitHub
- Android OpenGL demo "No config chosen" - Stack Overflow
の2つの修正がとりあえず必要。
//glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8); glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
上の初期化だとSEGVで落ちる端末があるってのは何でなんかねー(汗
2.2.3メモ)
とりあえずプロジェクトの作り方が違ってて混乱したorz
統一して欲しい気もあるかなー。pythonスクリプトの作りもいまいちですし、、、
cd $HOME/cocos2d/cocos2d-x-2.2.3/tools/project-creator python ./create_project.py -project irof -package com.hoge.driven -language cpp //=>$HOME/cocos2d/cocos2d-x-2.2.3/projects/irof に作成される
cocos2d-x 2.2.3 試しに環境構築してたけど、デフォルトの設定が BOX2Dとchipmunkが両方リンクされてるのと、-DCC_ENABLE_CHIPMUNK_INTEGRATION=0 指定すると CCSpriteあたりでコンパイルエラー出るのは何でかな〜><
-cocos2d-xのビルドを早くする (Android版) - Qiita
2系のcocos2d-x本体側のソースに確かに使用しているクラスが有るため
使わないならそのソースも除外するように修正しないと駄目とのこと。
(゜-゜)、必須なら必須でいいけど説明ないとわからないく無いか?
cocos2d-x 2.2.3 ココらへん逆に3.0系なら問題ないわけだが。。。うーん、どっちもどっち??
この話って、
build_native.py だと NDK_MODULE_PATHが切られてるけど
CDTだと普通*5環境パス等に切られてないので
$(call import-add-path, $(COCOS2DX_ROOT)/cocos2dx/platform/third_party/android/prebuilt) $(call import-module,libjpeg) $(call import-module,libpng) $(call import-module,libtiff) $(call import-module,libwebp)
をimport-add-path 等seatch pathをちゃんと定義しましょう。って話なんだよね。。
ndk-debugまでするならここまでちゃんとやらんといけないんだけど
まあ日本の*6cocos2d−x開発者的には apk作って genymotionとかに D&Dでよくね?
みたいな話が普通に出るので、まあ関心持たれてないんだろうな、、、という処。
XCodeで build_native.shを直接実行して eclipse使うのやめようぜ
みたいな記事も確かQitaあたりにあったしな。。。
testsプロジェクトをCDTで動かす)
よくわからん下記のコマンドラインで動かせと書いてるけどやりずらいので修正する
$ cd cocos2d-x/build $ python ./android-build.py cpp-empty-test -p 10 $ adb install ../tests/cpp-empty-tst/proj.android/bin/CppEmptyTest-debug.apk
cpp-empty-test> *7
- cprojectの追加、.projectの修正
- cocos2d-x-3.0rc0メモ - exception think らへんの記載を参考に
COCOS2DX_ROOT := /Users/◎◎/cocos2d/cocos2d-x-3.0rc1 #☆残念ながら絶対パスが必要 #ndk-buildで直接動かすなら以下の記述も必要 PROJECT_DIR := $(LOCAL_PATH)/../ $(shell rm -f $(PROJECT_DIR)/assets/*) $(shell cp -fr $(PROJECT_DIR)/../Resources/* $(PROJECT_DIR)/assets) $(call import-add-path,$(COCOS2DX_ROOT)/cocos) $(call import-add-path,$(COCOS2DX_ROOT)/external)
cpp-tests>
- cprojectの追加、.projectの修正
- cocos2d-x-3.0rc0メモ - exception think らへんの記載を参考に
- tests/cpp-tests/Android.mk
COCOS2DX_ROOT := /Users/◎◎/cocos2d/cocos2d-x-3.0rc1 #☆残念ながら絶対パスが必要 $(call import-add-path,$(COCOS2DX_ROOT)) $(call import-add-path,$(COCOS2DX_ROOT)/cocos) $(call import-add-path,$(COCOS2DX_ROOT)/external)
COCOS2DX_ROOT := /Users/◎◎/cocos2d/cocos2d-x-3.0rc1 #☆残念ながら絶対パスが必要 #ndk-buildで直接動かすなら以下の記述も必要 PROJECT_DIR := $(LOCAL_PATH)/../ $(shell rm -f $(PROJECT_DIR)/assets/*) $(shell cp -fr $(PROJECT_DIR)/../Resources/* $(PROJECT_DIR)/assets) $(call import-add-path,$(COCOS2DX_ROOT))
TLメモ)
cocos2d-x plistとスプライトシート読み込んでCCAnimationのaddSpriteFrameWithFileNameだとエラーになる。createWithSpriteFramesだと行ける。まぁいいか出来れば。。
多分、addSpriteWithFileNameは落ちてる箇所みると、まとめられた一枚のスプライトシートからじゃ、画像のcontentSize取れないのかな。なんのためにplistのsourceSizeあるんだよ。そっち読みに行けって。。