这是直接在HelloWorld.cpp上直接改的
以下是代码
#include "HelloWorldScene.h"
USING_NS_CC;
Scene* HelloWorld::createScene()
{
// 'scene' is an autorelease object
auto scene = Scene::create();
// 'layer' is an autorelease object
auto layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
Size size = Director::getInstance()->getVisibleSize();
/////////////////////////////
// 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
auto closeItem = MenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 ,
origin.y + closeItem->getContentSize().height/2));
// create menu, it's an autorelease object
auto menu = Menu::create(closeItem, NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu);
//返回数据1
auto shux=Label::create("x=240\ny=240\nz=240","Arial", 24);
shux->setPosition(Point(origin.x + visibleSize.width/2,
origin.y + visibleSize.height/2-50));
shux->setTag(1);
this->addChild(shux);
/////////////////////////////
// 3. add your codes below...
Device::setAccelerometerEnabled(true);
auto sprite = Sprite::create("ball.png");
sprite->setPosition(origin + Vec2(size.width/2, size.height/2));
addChild(sprite);
auto listener = EventListenerAcceleration::create(=](Acceleration* acc, Event* event){
auto ballSize = sprite->getContentSize();
auto ptNow = sprite->getPosition();
log("acc: x = %lf, y = %lf", acc->x, acc->y);
ptNow.x += acc->x * 9.81f;
ptNow.y += acc->y * 9.81f;
shuxx=acc->x * 9.81f;
shuyy=acc->y*9.81f;
shuzz=acc->z*9.81f;
//返回数据2
Label *flag=(Label*)this->getChildByTag(1);
char strx;
sprintf(strx,"x=%f\ny=%f\nz=%f",shuxx,shuyy,shuzz);
flag->setString(strx);
sprite->setPosition(ptNow);
});
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, sprite);
// add a label shows "Hello World"
// create and initialize a label
auto label = LabelTTF::create("Gravity Test", "Arial", 24);
// position the label on the center of the screen
label->setPosition(Vec2(origin.x + visibleSize.width/2,
origin.y + visibleSize.height - label->getContentSize().height));
// add the label as a child to this layer
this->addChild(label);
return true;
}
void HelloWorld::menuCloseCallback(Ref* pSender)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) || (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
MessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");
return;
#endif
Director::getInstance()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
}
```
