Cocos2d-x と pd-for-android その3

さてさて、相変わらずバカげたミスで、コンパイル・エラーがとれないよー! してたワタクシ。

こちら様の cocos2d-xでjniを使ってみる を参考に、JniHelper を使ったら音が出ましたー!
いや、めでたい。

参考にしたサイト様をほぼ丸写しですが、Pd 側のレシーバーを指定して、float のデータを送りたかったので、こんな感じに改造。

InterfaceJNI.cpp

void InterfaceJNI::func_sendfloat(const char* value1, float value2){

  JniMethodInfo t;
    if(JniHelper::getStaticMethodInfo(t, CLASS_NAME, "func_sendfloat", "(Ljava/lang/String;F)V")){

      jstring stringArg1 = t.env->NewStringUTF(value1);

      t.env->CallStaticFloatMethod(t.classID, t.methodID, stringArg1, value2);
      t.env->DeleteLocalRef(stringArg1);
      t.env->DeleteLocalRef(t.classID);
    }
}



AppActivity.java

  public static void func_sendfloat(String receiver, float value){
    PdBase.sendFloat(receiver, value);
  }



HelloWorldScene.cpp

void HelloWorld::sendFloat(const char* rcv, float val){

  InterfaceJNI::func_sendfloat(rcv, val);

}



で、HelloWorldScene.cpp で、適宜(今回はボタンが押されたかどうかの判定するところ)、this->sendFloat("レシーバー名", float値) してやれば大丈夫でした。

さて、次は Pd 側からレシーブしたデータで、cocos側を制御ってのに挑戦かな。
するってーと、テンポに合わせてキャラを動かしたりできるって寸法よ。


スポンサーサイト

コメント

非公開コメント