我是通过JNI去调用cocos的方法的 但是只要我一调用cocos的方法 它本身初始化的一些值就莫名的变了 还变得很奇怪 比如 用cocos写的游戏界面有个start按钮 通过touch事件触发
void GameScene::onTouch(Ref* obj, TouchEventType type){
LOGI("step is %d",step);
LOGI("betGold is %d",betGold);
Button* btn = (Button*)obj;
string name = btn->getName();
if (type != TouchEventType::TOUCH_EVENT_ENDED && name.find("betBtn") == -1) return;
//string name = "startBtn";
if (name == "startBtn"){
toStart();
}
void GameScene::toStart(){
LOGI("step is %d",step);
LOGI("betGold is %d",betGold);
if (step == 3){
collectGold();
} else if (step == 0){
clearResult(); //1
if (betGold <= 0){
betAgain();
}
if (betGold > 0){
step = 1;
bengin(); //1
//getWinId();
CustomTool::playSoundEffect("sounds/TURN_START.mp3");
}
}else{
__android_log_print(ANDROID_LOG_INFO, "JNIMsg", "NULL");
LOGI("step %d",step);
}
}
代码和上面一样 如果通过touch去触发的话 在touch 和tostart方法中打印出来的log就是正常的 但是 当我在JNI中pGame->toStart();去调用tostart方法的时候打印出来的log是-17......反正很大的一个数 还是负数 这是怎么一回事啊