I am using the HelloCpp sample for android with a small modification. I am calling a method from jni to display an image as a sprite. But instead of the image, all I see is a black rectangle in the center of the screen. Code is attached.
Update
Found similar question here http://www.cocos2d-x.org/boards/6/topics/20519
@
#include “HelloWorldScene.h”
#include “SimpleAudioEngine.h”
#include <android/log.h>
using namespace cocos2d;
using namespace CocosDenshion;
static HelloWorld* m_pGameLayerSingleton = NULL;
CCScene* HelloWorld::scene()
{
// ‘scene’ is an autorelease object
CCScene *scene = CCScene::create();
if(m_pGameLayerSingleton NULL) {
m_pGameLayerSingleton = HelloWorld::create();
}
// add layer as a child to scene
scene-\>addChild(m\_pGameLayerSingleton);
// return the scene
return scene;
}
// on “init” you need to initialize your instance
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
/////////////////////////////
// 2. add a menu item with "X" image, which is clicked to quit the program
// you may modify it.
// add a "close" icon to exit the progress. it's an autorelease object
CCMenuItemImage \*pCloseItem = CCMenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
this,
menu\_selector(HelloWorld::menuCloseCallback) );
pCloseItem-\>setPosition( ccp(CCDirector::sharedDirector()-\>getWinSize().width - 20, 20) );
// create menu, it's an autorelease object
CCMenu\* pMenu = CCMenu::create(pCloseItem, NULL);
pMenu-\>setPosition( CCPointZero );
this-\>addChild(pMenu, 1);
/////////////////////////////
// 3. add your codes below...
// add a label shows "Hello World"
// create and initialize a label
CCLabelTTF\* pLabel = CCLabelTTF::create("Hello World", "Thonburi", 34);
// ask director the window size
CCSize size = CCDirector::sharedDirector()-\>getWinSize();
// position the label on the center of the screen
pLabel-\>setPosition( ccp(size.width / 2, size.height - 20) );
// add the label as a child to this layer
this-\>addChild(pLabel, 1);
// add "HelloWorld" splash screen"
CCSprite\* pSprite = CCSprite::create("HelloWorld.png");
// position the sprite on the center of the screen
pSprite-\>setPosition( ccp(size.width/2, size.height/2) );
// add the sprite as a child to this layer
this-\>addChild(pSprite, 0);
return true;
}
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
CCDirector::sharedDirector()->end();
#if (CC_TARGET_PLATFORM CC_PLATFORM_IOS)
exit(0);
#endif
}
void HelloWorld::onInputReceived()
{
__android_log_write(ANDROID_LOG_VERBOSE, “HelloWorldScene”, “Received input”);//Or ANDROID_LOG_INFO, …
CCSprite* sprite = CCSprite::create(“google.png”);
//get director
CCDirector *director = CCDirector::sharedDirector();
// ask director the window size
CCSize size = director~~>getWinSize;
// position the sprite on the center of the screen
sprite~~>setPosition( ccp(size.width/2, size.height/2) );
m_pGameLayerSingleton->addChild(sprite, 0);
}
@
HelloWorldScene.cpp.zip (1.2 KB)
google.png (7.0 KB)