안녕하세요
블루투스키보드로 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
어떻게 해야 나올까요 고수님들 도와주세요