마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

블루투스키보드로 cocos2d-x게임화면으로 키값 전송 [closed]

0 추천

안녕하세요 

블루투스키보드로 cocos2dx 연동하는 게임을 만들고 있습니다.

키보드를 누르면 게임중인 화면에서 그 키값에 해당되는 문자를 표시하게 하고 싶은데 에러가 납니다.

//안드로이드소스===========================================

public class AppActivity extends Cocos2dxActivity {

    public native void keyCallFunc1();

 

     @Override

     public boolean onKeyDown(int keyCode, KeyEvent event) { //키를 입력받습니다.

         // TODO Auto-generated method stub

         if (keyCode == KeyEvent.KEYCODE_A) {

             keyCallFunc1();  //cocos2dx 함수호출

         }

        return super.onKeyDown(keyCode, event);

    }    

}

//=======================================================

 

블루투스키보드 연결 후 A버튼 누르면 cocos2d 화면으로 넘어가지만 Label을 변경할 수 없습니다.

//cocos2dx 소스------------------------------------------------------------------------------------

extern "C"

{

//키보드의 키값을 입력받아서 처리

        JNIEXPORT jstring JNICALL Java_org_cocos2dx_cpp_AppActivity_keyCallFunc1(JNIEnv* env)

        {

        HelloWorld *pHelloWorld = new HelloWorld();

        pHelloWorld->recvkeyCallFunc1();

    }

}

bool HelloWorld::init()

{

    auto label = LabelTTF::create("Hello World", "Arial", 24);

    label->setPosition(Vec2(origin.x + visibleSize.width/2,

                                   origin.y + visibleSize.height - label->getContentSize().height));

    label->setTag(111);

    this->addChild(label, 1);

}

 

void HelloWorld::recvkeyCallFunc1()

{

    CCLog("recvkeyCallFunc1() recv1");

MessageBox( "키보드값", "수신성공" ); //제대로 메시지창이 뜹니다.

    auto label = (Label*)this->getChildByTag(111); //Hello World

        label ->setString("Free"); //Free로 글자를 바꾸려고 하는데 에러가 나네요

}

//-------------------------------------------------------------------------------------------

recvkeyCallFunc1() recv1 로그는 찍히고 메시지창이 뜹니다만 그 다음 라인 setString 에서 아래와 같이 에러가 생기네요

 

Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 6458

 

어떻게 해야 나올까요 고수님들 도와주세요

질문을 종료한 이유: 해결
체리닉 (120 포인트) 님이 2016년 11월 24일 질문
체리닉님이 2016년 11월 28일 closed
...