axmol/samples/Cpp/TestCpp/Classes/BugsTest/Bug-914.cpp

85 lines
2.6 KiB
C++
Raw Normal View History

2011-07-08 11:22:35 +08:00
//
// HelloWorldLayer.m
// EAGLViewBug
//
// Created by Wylan Werth on 7/5/10.
// Copyright BanditBear Games 2010. All rights reserved.
//
// Import the interfaces
#include"Bug-914.h"
Scene* Bug914Layer::scene()
2011-07-08 11:22:35 +08:00
{
// 'scene' is an autorelease object.
auto scene = Scene::create();
// 'layer' is an autorelease object.
auto layer = Bug914Layer::create();
2011-07-08 11:22:35 +08:00
// add layer as a child to scene
scene->addChild(layer);
2011-07-08 11:22:35 +08:00
// return the scene
return scene;
2011-07-08 11:22:35 +08:00
}
// on "init" you need to initialize your instance
bool Bug914Layer::init()
{
// always call "super" init
// Apple recommends to re-assign "self" with the "super" return value
2011-07-08 11:22:35 +08:00
if (BugsTestBaseLayer::init())
{
auto dispatcher = EventDispatcher::getInstance();
auto listener = EventListenerTouchAllAtOnce::create();
listener->onTouchesBegan = CC_CALLBACK_2(Bug914Layer::onTouchesBegan, this);
listener->onTouchesMoved = CC_CALLBACK_2(Bug914Layer::onTouchesMoved, this);
dispatcher->addEventListenerWithSceneGraphPriority(listener, this);
// ask director the the window size
auto size = Director::getInstance()->getWinSize();
LayerColor *layer;
for( int i=0;i < 5;i++)
2011-07-08 11:22:35 +08:00
{
layer = LayerColor::create(Color4B(i*20, i*20, i*20,255));
layer->setContentSize(Size(i*100, i*100));
2013-07-12 14:11:55 +08:00
layer->setPosition(Point(size.width/2, size.height/2));
layer->setAnchorPoint(Point(0.5f, 0.5f));
layer->ignoreAnchorPointForPosition(false);
addChild(layer, -1-i);
}
2011-07-08 11:22:35 +08:00
// create and initialize a Label
auto label = LabelTTF::create("Hello World", "Marker Felt", 64);
auto item1 = MenuItemFont::create("restart", CC_CALLBACK_1(Bug914Layer::restart, this));
2011-07-08 11:22:35 +08:00
auto menu = Menu::create(item1, NULL);
menu->alignItemsVertically();
2013-07-12 14:11:55 +08:00
menu->setPosition(Point(size.width/2, 100));
addChild(menu);
2011-07-08 11:22:35 +08:00
// position the label on the center of the screen
2013-07-12 14:11:55 +08:00
label->setPosition(Point( size.width /2 , size.height/2 ));
2011-07-08 11:22:35 +08:00
// add the label as a child to this Layer
addChild(label);
2011-07-08 11:22:35 +08:00
return true;
}
return false;
2011-07-08 11:22:35 +08:00
}
void Bug914Layer::onTouchesMoved(const std::vector<Touch*>& touches, Event * event)
2011-07-08 11:22:35 +08:00
{
log("Number of touches: %d", (int)touches.size());
2011-07-08 11:22:35 +08:00
}
void Bug914Layer::onTouchesBegan(const std::vector<Touch*>& touches, Event * event)
2011-07-08 11:22:35 +08:00
{
onTouchesMoved(touches, event);
2011-07-08 11:22:35 +08:00
}
void Bug914Layer::restart(Object* sender)
2011-07-08 11:22:35 +08:00
{
Director::getInstance()->replaceScene(Bug914Layer::scene());
2011-07-08 11:22:35 +08:00
}