Exemple #1
0
// on "init" you need to initialize your instance
bool StatusDisplay::init(GameState* gameState)
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    glview->setDesignResolutionSize(320, 480, ResolutionPolicy::SHOW_ALL);
    
    Size visibleSize = director->getVisibleSize();
    Vec2 origin = director->getVisibleOrigin();
    
    auto spriteCache = SpriteFrameCache::getInstance();
    spriteCache->addSpriteFramesWithFile("sprites_default.plist");
    
    auto player = Sprite::createWithSpriteFrameName("mario_00.png");
    player->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2 - player->getContentSize().height));
    addChild(player);
    auto action = Sequence::create(DelayTime::create(1), CallFunc::create([gameState](){Director::getInstance()->replaceScene(HelloWorld::createScene(gameState));}), NULL);
    
    runAction(action);
    return true;
}
Exemple #2
0
bool GameScene::init()
{
    if (!Layer::init()) {
        return false;
    }
    auto director = Director::getInstance();
    Size visibleSize = director->getVisibleSize();
    Point origin = director->getVisibleOrigin();
    
    /////////////////////////////
    // 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(GameScene::menuCloseCallback, this));
    
	closeItem->setPosition(Point(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(Point::ZERO);
    this->addChild(menu, 1);
    
    
    _field = Field::create();
    this->addChild(_field, 10);
    
    
    Director::getInstance()->getScheduler()->scheduleUpdate(this, 0, false);
    return true;
}
// helpers
bool Renderer::checkVisibility(const Mat4 &transform, const Size &size)
{
    auto scene = Director::getInstance()->getRunningScene();
    
    //If draw to Rendertexture, return true directly.
    // only cull the default camera. The culling algorithm is valid for default camera.
    if (!scene || (scene && scene->_defaultCamera != Camera::getVisitingCamera()))
        return true;

    auto director = Director::getInstance();
    Rect visiableRect(director->getVisibleOrigin(), director->getVisibleSize());
    
    // transform center point to screen space
    float hSizeX = size.width/2;
    float hSizeY = size.height/2;
    Vec3 v3p(hSizeX, hSizeY, 0);
    transform.transformPoint(&v3p);
    Vec2 v2p = Camera::getVisitingCamera()->projectGL(v3p);

    // convert content size to world coordinates
    float wshw = std::max(fabsf(hSizeX * transform.m[0] + hSizeY * transform.m[4]), fabsf(hSizeX * transform.m[0] - hSizeY * transform.m[4]));
    float wshh = std::max(fabsf(hSizeX * transform.m[1] + hSizeY * transform.m[5]), fabsf(hSizeX * transform.m[1] - hSizeY * transform.m[5]));
    
    // enlarge visable rect half size in screen coord
    visiableRect.origin.x -= wshw;
    visiableRect.origin.y -= wshh;
    visiableRect.size.width += wshw * 2;
    visiableRect.size.height += wshh * 2;
    bool ret = visiableRect.containsPoint(v2p);
    return ret;
}
Exemple #4
0
bool Box2dTestBed::initWithEntryID(int entryId)
{
    if (!TestCase::init())
    {
        return false;
    }
    auto director = Director::getInstance();
	Vec2 visibleOrigin = director->getVisibleOrigin();
	Size visibleSize = director->getVisibleSize();

    m_entryID = entryId;
    
    Box2DView* view = Box2DView::viewWithEntryID( entryId );
    addChild(view, 0, kTagBox2DNode);
    view->setScale(15);
    view->setAnchorPoint( Vec2(0,0) );
    view->setPosition(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/3);
    auto label = Label::createWithTTF(view->title().c_str(), "fonts/arial.ttf", 28);
    addChild(label, 1);
    label->setPosition(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height-50);
    
    // Adds touch event listener
    auto listener = EventListenerTouchOneByOne::create();
    listener->setSwallowTouches(true);

    listener->onTouchBegan = CC_CALLBACK_2(Box2dTestBed::onTouchBegan, this);
    listener->onTouchMoved = CC_CALLBACK_2(Box2dTestBed::onTouchMoved, this);

    _eventDispatcher->addEventListenerWithFixedPriority(listener, 1);

    _touchListener = listener;
    
    return true;
}
bool IntroScene::init() {
  if (!Scene::init()) {
    return false;
  }
  
  srand(std::time(0));
  
  auto layer = Layer::create();
  
  auto director = Director::getInstance();
  
  Size visibleSize = director->getVisibleSize();
  Vec2 visibleOrigin = director->getVisibleOrigin();
  
  Vec2 center = Vec2(visibleSize.width / 2 + visibleOrigin.x,
                     visibleSize.height / 2 + visibleOrigin.y);
  
  auto introImage = Sprite::create(IMG_INTRO);
  
  float scaleX = visibleSize.width / introImage->getContentSize().width;
  float scaleY = visibleSize.height / introImage->getContentSize().height;
  
  introImage->setPosition(center);
  introImage->setScale(scaleX, scaleY);
  
  layer->addChild(introImage);
  
  this->addChild(layer);
  
  this->schedule(schedule_selector(IntroScene::loadResources));
  
  return true;
}
Exemple #6
0
Rect GLView::getVisibleRect() const
{
    Rect ret;
    ret.size = getVisibleSize();
    ret.origin = getVisibleOrigin();
    return ret;
}
Exemple #7
0
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLView::create("My Game");
        director->setOpenGLView(glview);
    }
    Size winsize = director->getVisibleSize();
    double ratio = winsize.width / winsize.height;
   
    if(ratio >= 1.775){
        glview->setDesignResolutionSize(1136,640,ResolutionPolicy::SHOW_ALL);
        
    }else if(ratio > 1.5){
        glview->setDesignResolutionSize(640*ratio,640,ResolutionPolicy::SHOW_ALL);
        
    }else{
        glview->setDesignResolutionSize(960,640,ResolutionPolicy::SHOW_ALL);
    }
    // turn on display FPS
    director->setDisplayStats(false);

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object
    auto scene = GameMainMenu::scene();

    // run
    director->runWithScene(scene);

    return true;
}
void VisibleRect::lazyInit() {
  if (_visibleRect.size.width == 0.0f && _visibleRect.size.height == 0.0f) {
    auto director = Director::getInstance();
    _visibleRect.origin = director->getVisibleOrigin();
    _visibleRect.size = director->getVisibleSize();
  }
}
Exemple #9
0
bool MainScene::init() {
	if (!Layer::init())
		return false;

	auto director = Director::getInstance();
	auto pView = director->getOpenGLView();
	pView->setDesignResolutionSize(RESOLUTION_WIDTH, RESOLUTION_HEIGHT, ResolutionPolicy::SHOW_ALL);

	Size visibleSize = director->getVisibleSize();
	Vec2 origin = director->getVisibleOrigin();

	//Title 'Kid Sudoku'
	auto labelTitle = Label::createWithTTF("Kid Remember It", "fonts/Marker Felt.ttf", 188);
	labelTitle->setTextColor(Color4B(0xe3, 0x54, 0xf4, 0xff));
	labelTitle->setPosition(Vec2(origin.x + visibleSize.width / 2,
						 	origin.y + visibleSize.height - labelTitle->getContentSize().height/2 - 40)
						);
	this->addChild(labelTitle);

	//Cool Papa-Legend announcement
	auto labelAnn = Label::createWithTTF("Cool Papa-Legend :   Produce product for our kids.", "fonts/Marker Felt.ttf", 30);
	labelAnn->setTextColor(Color4B(0x00, 0xff, 0x00, 0xff));
	labelAnn->setPosition(Vec2(origin.x + visibleSize.width / 2,
						 	labelTitle->getPosition().y - labelTitle->getContentSize().height/2 - 60 - labelAnn->getContentSize().height / 2)
						);
	this->addChild(labelAnn);

	//Campaign Button
	auto btnPlay = ui::Button::create("btn-menu-0.png",
											  "btn-menu-1.png",
											  "btn-menu-2.png");
	btnPlay->setScale9Enabled(true);
	btnPlay->setCapInsets(Rect(15, 15, 4, 4));
	btnPlay->setTitleText("Play");
	btnPlay->setTitleFontSize(40);
	btnPlay->setContentSize(Size(300, 90));
	btnPlay->setPosition(Vec2(origin.x + visibleSize.width / 2,
			 	 	 	   	 	  labelAnn->getPosition().y - labelAnn->getContentSize().height / 2 - 140 - btnPlay->getContentSize().height/2)
							);
	btnPlay->addClickEventListener(CC_CALLBACK_1(MainScene::onMenuPlayClicked, this));
	this->addChild(btnPlay, 1);

	//Exit Button
	auto btnExit = ui::Button::create("btn-menu-0.png",
											  "btn-menu-1.png",
											  "btn-menu-2.png");
	btnExit->setScale9Enabled(true);
	btnExit->setCapInsets(Rect(15, 15, 4, 4));
	btnExit->setTitleText("Exit");
	btnExit->setTitleFontSize(40);
	btnExit->setContentSize(Size(300, 90));
	btnExit->setPosition(Vec2(origin.x + visibleSize.width / 2,
							btnPlay->getPosition().y - btnPlay->getContentSize().height / 2 - 40 - btnExit->getContentSize().height/2)
							);
	btnExit->addClickEventListener(CC_CALLBACK_1(MainScene::onMenuExitClicked, this));
	this->addChild(btnExit, 1);
	return true;
}
Exemple #10
0
void Game::initGUI() {

	auto director = CCDirector::sharedDirector();
	auto visibleSize = director->getVisibleSize();

	initStatusBar(visibleSize);
	initInventory(visibleSize);
	addMenu(visibleSize);
}
Exemple #11
0
Vec2 GameLayer::_getViewPoint(Vec2 position) {
    
    float width = getVisibleOrigin().x + getVisibleSize().width;
    float height = getVisibleOrigin().y + getVisibleSize().height;
    
    int x = MAX(position.x, width * 0.5f);
    int y = MAX(position.y, height * 0.5f);
    
    x = MIN(x, _map_size.width - width * 0.5f + visibleOrigin.x);
    y = MIN(y, _map_size.height - height * 0.5f + visibleOrigin.y);
    
    Vec2 actualPosition = Vec2(x, y);
    Vec2 centerOfView = Vec2(width * 0.5f, height * 0.5f);
    Vec2 viewPoint;
    Vec2::subtract(centerOfView, actualPosition, &viewPoint);
    
    return viewPoint;
}
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLView::create("My Game");
        director->setOpenGLView(glview);
    }
    
    // turn on display FPS
    director->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);
    
    
    AppDelegate::SCREEN_SCALE_FACTOR = director->getVisibleSize().width / 960.0f;
    AppDelegate::SCREEN_WIDTH  = director->getWinSizeInPixels().width;
    AppDelegate::SCREEN_HEIGHT = director->getWinSize().height;
    
    
    std::vector<std::string> searchPath;
    
    if (AppDelegate::SCREEN_HEIGHT > 768)
    {
        searchPath.push_back("HDR");
        CCLOG("Using HDR Directory");
        //pDirector->setContentScaleFactor(MAX(AppDelegate::SCREEN_WIDTH/2048.0f, AppDelegate::SCREEN_HEIGHT/1536.0f));
    }
    else if (AppDelegate::SCREEN_HEIGHT > 320)
    {
        searchPath.push_back("HD");
        //pDirector->setContentScaleFactor(MIN(AppDelegate::SCREEN_WIDTH/1024.0f, AppDelegate::SCREEN_HEIGHT/768.0f));
        CCLOG("Using HD Directory with scaleFactor = %f", director->getContentScaleFactor());
        //CCEGLView::sharedOpenGLView()->setDesignResolutionSize(AppDelegate::SCREEN_WIDTH, AppDelegate::SCREEN_HEIGHT, kResolutionNoBorder);
    }
    else
    {
        searchPath.push_back("SD");
        CCLOG("Using SD Directory");
        //pDirector->setContentScaleFactor(AppDelegate::SCREEN_HEIGHT/320.0f);
    }
    
    FileUtils::getInstance()->setSearchPaths(searchPath);
    
    // create a scene. it's an autorelease object
    auto *pScene = SplashScene::scene();
    //auto *pScene = HelloWorld::createScene();
    
    // run
    director->runWithScene(pScene);
    
    EziSocialObject::sharedObject()->setAutoCheckIncomingRequestsOnAppLaunch(false);
    return true;
}
void ClippingToRenderTextureTest::reproduceBug()
{
    auto director = Director::getInstance();
    Size visibleSize = director->getVisibleSize();
    Point origin = director->getVisibleOrigin();


    // add "HelloWorld" splash screen"
    auto sprite = Sprite::create("Images/grossini.png");

    // position the sprite on the center of the screen
    sprite->setPosition(Point(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

    // add the sprite as a child to this layer
    this->addChild(sprite, 0);


    // container node that will contain the clippingNode
    auto container = Node::create();
    container->retain();

    auto stencil = DrawNode::create();
    Point triangle[3];
    triangle[0] = Point(-50, -50);
    triangle[1] = Point(50, -50);
    triangle[2] = Point(0, 50);
    Color4F green(0, 1, 0, 1);
    stencil->drawPolygon(triangle, 3, green, 0, green);

    auto clipper = ClippingNode::create();
    clipper->setAnchorPoint(Point(0.5, 0.5));
    clipper->setPosition( Point(visibleSize.width/2, visibleSize.height/2) );
    clipper->setStencil(stencil);
    clipper->setInverted(true);
    container->addChild(clipper, 1);


    auto img = DrawNode::create();
    triangle[0] = Point(-200, -200);
    triangle[1] = Point(200, -200);
    triangle[2] = Point(0, 200);
    Color4F red(1, 0, 0, 1);
    img->drawPolygon(triangle, 3, red, 0, red);
    clipper->addChild(img);

    // container rendered on Texture the size of the screen and because Clipping node use stencil buffer so we need to
    // create RenderTexture with depthStencil format parameter
    RenderTexture* rt = RenderTexture::create(visibleSize.width, visibleSize.height, Texture2D::PixelFormat::RGBA8888, GL_DEPTH24_STENCIL8);
    rt->setPosition(visibleSize.width/2, visibleSize.height/2);
    this->addChild(rt);

    rt->begin();
    container->visit();
    rt->end();
}
void VisibleRect::lazyInit()
{
    if (s_visibleRect.size.width == 0.0f && s_visibleRect.size.height == 0.0f)
    {
        auto director  = Director::getInstance();
        //auto pEGLView = director->getOpenGLView();
        //GLView* pEGLView = GLView:: :: GLView::sharedOpenGLView();
        s_visibleRect.origin = director->getVisibleOrigin();
        s_visibleRect.size = director->getVisibleSize();
    }
}
Exemple #15
0
bool MenuLayer::initWithEntryID(int entryId)
{
    auto director = Director::getInstance();
	Point visibleOrigin = director->getVisibleOrigin();
	Size visibleSize = director->getVisibleSize();

    m_entryID = entryId;
    
    setTouchEnabled( true );
    setTouchMode(Touch::DispatchMode::ONE_BY_ONE);
    
    Box2DView* view = Box2DView::viewWithEntryID( entryId );
    addChild(view, 0, kTagBox2DNode);
    view->setScale(15);
    view->setAnchorPoint( Point(0,0) );
    view->setPosition( Point(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/3) );
//#if (CC_TARGET_PLATFORM == CC_PLATFORM_MARMALADE)
//    auto label = LabelBMFont::create(view->title().c_str(),  "fonts/arial16.fnt");
//#else    
    auto label = LabelTTF::create(view->title().c_str(), "Arial", 28);
//#endif
    addChild(label, 1);
    label->setPosition( Point(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height-50) );

    auto item1 = MenuItemImage::create("Images/b1.png", "Images/b2.png", CC_CALLBACK_1(MenuLayer::backCallback, this) );
    auto item2 = MenuItemImage::create("Images/r1.png","Images/r2.png", CC_CALLBACK_1( MenuLayer::restartCallback, this) );
    auto item3 = MenuItemImage::create("Images/f1.png", "Images/f2.png", CC_CALLBACK_1(MenuLayer::nextCallback, this) );

    auto menu = Menu::create(item1, item2, item3, NULL);

    menu->setPosition( Point::ZERO );
    item1->setPosition(Point(VisibleRect::center().x - item2->getContentSize().width*2, VisibleRect::bottom().y+item2->getContentSize().height/2));
    item2->setPosition(Point(VisibleRect::center().x, VisibleRect::bottom().y+item2->getContentSize().height/2));
    item3->setPosition(Point(VisibleRect::center().x + item2->getContentSize().width*2, VisibleRect::bottom().y+item2->getContentSize().height/2));
    
    addChild(menu, 1);
    
    // Removes touch event listener
    EventDispatcher::getInstance()->removeEventListener(_touchListener);
    
    // Adds touch event listener
    auto listener = EventListenerTouch::create(Touch::DispatchMode::ONE_BY_ONE);
    listener->setSwallowTouches(true);

    listener->onTouchBegan = CC_CALLBACK_2(MenuLayer::onTouchBegan, this);
    listener->onTouchMoved = CC_CALLBACK_2(MenuLayer::onTouchMoved, this);

    EventDispatcher::getInstance()->addEventListenerWithFixedPriority(listener, 1);
    _touchListener = listener;
    return true;
}
ButtonControlLayer::ButtonControlLayer(Level* level)
{
    Layer::init();
    
    _level = level;
    _selectedItem = nullptr;
    _selectedWithCamera = nullptr;
    memset(_states, 0, sizeof(ButtonState) * 4);
    
    auto director = cocos2d::Director::getInstance();
    auto winSize = director->getWinSize();
    cocos2d::Rect screenBounds(director->getVisibleOrigin(), director->getVisibleSize());
    
    auto southItem = cocos2d::MenuItemSprite::create(cocos2d::Sprite::createWithSpriteFrameName("ui-button-control.png"), cocos2d::Sprite::createWithSpriteFrameName("ui-button-control-on.png"));
    southItem->setScale(1, -1);
    southItem->setTag(static_cast<int>(Direction::SOUTH));
    southItem->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
    southItem->setPosition(cocos2d::Vec2(screenBounds.origin.x + 61.5f, screenBounds.origin.y + 94.5f));
    addChild(southItem);
    
    auto westItem = cocos2d::MenuItemSprite::create(cocos2d::Sprite::createWithSpriteFrameName("ui-button-control.png"), cocos2d::Sprite::createWithSpriteFrameName("ui-button-control-on.png"));
    westItem->setTag(static_cast<int>(Direction::WEST));
    westItem->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
    westItem->setPosition(cocos2d::Vec2(screenBounds.origin.x + 61.5f, screenBounds.origin.y + 202.5f));
    addChild(westItem);
    
    auto northItem = cocos2d::MenuItemSprite::create(cocos2d::Sprite::createWithSpriteFrameName("ui-button-control.png"), cocos2d::Sprite::createWithSpriteFrameName("ui-button-control-on.png"));
    northItem->setScale(-1, 1);
    northItem->setTag(static_cast<int>(Direction::NORTH));
    northItem->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
    northItem->setPosition(cocos2d::Vec2(screenBounds.origin.x + screenBounds.size.width - 61.5f, screenBounds.origin.y + 202.5f));
    addChild(northItem);
    
    auto eastItem = cocos2d::MenuItemSprite::create(cocos2d::Sprite::createWithSpriteFrameName("ui-button-control.png"), cocos2d::Sprite::createWithSpriteFrameName("ui-button-control-on.png"));
    eastItem->setScale(-1, -1);
    eastItem->setTag(static_cast<int>(Direction::EAST));
    eastItem->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
    eastItem->setPosition(cocos2d::Vec2(screenBounds.origin.x + screenBounds.size.width - 61.5f, screenBounds.origin.y + 94.5f));
    addChild(eastItem);
    
    auto touchListener = cocos2d::EventListenerTouchOneByOne::create();
    touchListener->setSwallowTouches(true);
    touchListener->onTouchBegan = CC_CALLBACK_2(ButtonControlLayer::onTouchBegan, this);
    touchListener->onTouchMoved = CC_CALLBACK_2(ButtonControlLayer::onTouchMoved, this);
    touchListener->onTouchEnded = CC_CALLBACK_2(ButtonControlLayer::onTouchEnded, this);
    touchListener->onTouchCancelled = CC_CALLBACK_2(ButtonControlLayer::onTouchEnded, this);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
}
void ClippingToRenderTextureTest::expectedBehaviour()
{
    auto director = Director::getInstance();
    Size visibleSize = director->getVisibleSize();
    Point origin = director->getVisibleOrigin();


    // add "HelloWorld" splash screen"
    auto sprite = Sprite::create("Images/grossini.png");

    // position the sprite on the center of the screen
    sprite->setPosition(Point(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

    // add the sprite as a child to this layer
    this->addChild(sprite, 0);
    sprite->setName("remove me 0");

    // container node that will contain the clippingNode
    auto container = Node::create();
    this->addChild(container);
    container->setName("remove me 1");

    auto stencil = DrawNode::create();
    Point triangle[3];
    triangle[0] = Point(-50, -50);
    triangle[1] = Point(50, -50);
    triangle[2] = Point(0, 50);
    Color4F green(0, 1, 0, 1);
    stencil->drawPolygon(triangle, 3, green, 0, green);

    auto clipper = ClippingNode::create();
    clipper->setAnchorPoint(Point(0.5, 0.5));
    clipper->setPosition( Point(visibleSize.width/2, visibleSize.height/2) );
    clipper->setStencil(stencil);
    clipper->setInverted(true);
    container->addChild(clipper, 1);


    auto img = DrawNode::create();
    triangle[0] = Point(-200, -200);
    triangle[1] = Point(200, -200);
    triangle[2] = Point(0, 200);
    Color4F red(1, 0, 0, 1);
    img->drawPolygon(triangle, 3, red, 0, red);
    clipper->addChild(img);
}
Exemple #18
0
bool MenuLayer::initWithEntryID(int entryId)
{
    auto director = Director::getInstance();
	Vec2 visibleOrigin = director->getVisibleOrigin();
	Size visibleSize = director->getVisibleSize();

    m_entryID = entryId;
    
    Box2DView* view = Box2DView::viewWithEntryID( entryId );
    addChild(view, 0, kTagBox2DNode);
    view->setScale(15);
    view->setAnchorPoint( Vec2(0,0) );
    view->setPosition( Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/3) );  
    auto label = Label::createWithTTF(view->title().c_str(), "fonts/arial.ttf", 28);
    addChild(label, 1);
    label->setPosition( Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height-50) );

    auto item1 = MenuItemImage::create("Images/b1.png", "Images/b2.png", CC_CALLBACK_1(MenuLayer::backCallback, this) );
    auto item2 = MenuItemImage::create("Images/r1.png","Images/r2.png", CC_CALLBACK_1( MenuLayer::restartCallback, this) );
    auto item3 = MenuItemImage::create("Images/f1.png", "Images/f2.png", CC_CALLBACK_1(MenuLayer::nextCallback, this) );

    auto menu = Menu::create(item1, item2, item3, nullptr);

    menu->setPosition( Vec2::ZERO );
    item1->setPosition(Vec2(VisibleRect::center().x - item2->getContentSize().width*2, VisibleRect::bottom().y+item2->getContentSize().height/2));
    item2->setPosition(Vec2(VisibleRect::center().x, VisibleRect::bottom().y+item2->getContentSize().height/2));
    item3->setPosition(Vec2(VisibleRect::center().x + item2->getContentSize().width*2, VisibleRect::bottom().y+item2->getContentSize().height/2));
    
    addChild(menu, 1);
    
    // Adds touch event listener
    auto listener = EventListenerTouchOneByOne::create();
    listener->setSwallowTouches(true);

    listener->onTouchBegan = CC_CALLBACK_2(MenuLayer::onTouchBegan, this);
    listener->onTouchMoved = CC_CALLBACK_2(MenuLayer::onTouchMoved, this);

    _eventDispatcher->addEventListenerWithFixedPriority(listener, 1);

    _touchListener = listener;
    
    return true;
}
bool PlayerPlane::initWithParent(cocos2d::Node * parent)
{
    if (!parent)
        return false;

    bool ret = this->init();

    auto director = Director::getInstance();
    auto visibleSize = director->getVisibleSize();
    Vec2 origin = director->getVisibleOrigin();
    _rectVisible = Rect(origin.x, origin.y, visibleSize.width, visibleSize.height);

    parent->addChild(this);
    this->runAction(MoveTo::create(1.0f, Vec2(visibleSize.width/2, visibleSize.height/4)));

    // register touches event
    auto listener = EventListenerTouchAllAtOnce::create();
    listener->onTouchesBegan = [&](const std::vector<Touch*>& touches, Event *unused_event)
    {
        _bIsTouching = true;
        _vFigherPositionDelta = Vec2::ZERO;
    };
    listener->onTouchesMoved = [&](const std::vector<Touch*>& touches, Event *unused_event)
    {
        if (_bIsTouching && !touches.empty())
            _vFigherPositionDelta += touches.front()->getDelta();
    };
    listener->onTouchesEnded = [&](const std::vector<Touch*>& touches, Event *unused_event)
    {
        _bIsTouching = false;
    };
    listener->onTouchesCancelled = [&](const std::vector<Touch*>& touches, Event *unused_event)
    {
        _bIsTouching = false;
    };
    director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, parent);

    scheduleUpdate();

    return ret;
}
bool TetrisGameAreaLayer::init()
{
	LayerColor::initWithColor(Color4B(255, 100, 100, 255));
	auto keyListener = EventListenerKeyboard::create();
	keyListener->setEnabled(true);
	keyListener->onKeyReleased = std::bind(&TetrisGameAreaLayer::onKeyReleased, this, std::placeholders::_1,std::placeholders::_2);
	keyListener->onKeyPressed = std::bind(&TetrisGameAreaLayer::onKeyDown, this, std::placeholders::_1, std::placeholders::_2);
	_eventDispatcher->addEventListenerWithSceneGraphPriority(keyListener, this);
	auto dtor = Director::getInstance();
	Size  vSize = dtor->getVisibleSize();
	Vec2 org = dtor->getVisibleOrigin();
	//left bottom
	Vec2 vlb(org.x + KWBorder, org.y + KHBorder);
	int areaHeight = vSize.height * KAreaHRationInVisible;
	setContentSize(Size(areaHeight / 2 - 2 * KWBorder, areaHeight - 4 * KWBorder));
	setAnchorPoint(Vec2(0 ,0));
	setPosition(vlb);
	initBlockRectSprite();
	//schedule(schedule_selector(TetrisGameAreaLayer::onBlockUpdate), 0.0);
	scheduleUpdate();
	return true;
}
Exemple #21
0
bool Game::init() {
	if (!CCLayer::init()) {
		return false;
	}

	auto director = CCDirector::sharedDirector();
	auto visibleSize = director->getVisibleSize();

	score = 0;

	board = Board::create(6, 6);
	board->addListener(this);
	addChild(board);

	bonusLayer = BonusLayer::create();
	bonusLayer->setPosition(
			ccp(VisibleRect::left().x, VisibleRect::rightTop().y - visibleSize.height / 7 - bonusLayer->getContentSize().height));
	bonusLayer->setVisible(false);

	addChild(bonusLayer, 2);

	gameSpice = GameSpice::getInstance();
	gameSpice->getInventory([&] (Inventory inventory) {

		auto items = inventory.getItems();
		swapRemaining = items.at(SWAP_BONUS_IDENTIFIER).getQuantity();
		removeRemaining = items.at(REMOVE_BONUS_IDENTIFIER).getQuantity();
		changeRemaining = items.at(CHANGE_BONUS_IDENTIFIER).getQuantity();

		initGUI();

		timer = CountDownTimer::create(1.0f, LEVEL_TIME);
		timer->retain();
		timer->addDelegate(this);
		timer->start();
	});

	return true;
}
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLView::create("My Game");
        director->setOpenGLView(glview);
    }

#ifdef _DEBUG
    // turn on display FPS
    director->setDisplayStats(true);
#endif

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

    glview->setDesignResolutionSize(1024, 768, ResolutionPolicy::FIXED_HEIGHT);

    Size winSize = director->getVisibleSize();
    if (winSize.height > 768)
    {
        director->setContentScaleFactor(2.0);
    }
    else
    {
        director->setContentScaleFactor(1.0);
    }

    glClearColor(1, 1, 1, 1.0);

    // create a scene. it's an autorelease object
    auto scene = MainMenuScene::create();

    // run
    director->runWithScene(scene);

    return true;
}
Exemple #23
0
void GraphDisplay::drawBackground(GlInterface &gl)
{
	Display::drawBackground(gl);

	//Draw standard scale as the background
	GPoint v_origin = getVisibleOrigin(gl);
	GVec v_size = getVisibleSize(gl);

	GPoint	prev_lines(	floor(v_origin.x/standardUnitSize.x)*standardUnitSize.x,
						floor(v_origin.y/standardUnitSize.y)*standardUnitSize.y);
	APoint	start_lines = graphToAbsolutePoint(prev_lines + standardUnitSize);
	AVec	line_step = graphToAbsoluteVec(standardUnitSize);

	//Vertical lines (x dimension) --> GREY
	gl.setColor(Color(0.4f, 0.4f, 0.4f, 1.0f));
	for(float a_x = start_lines.x; a_x < v_size.x; a_x += line_step.x)
		gl.drawLine(APoint(a_x, 0.0f), APoint(a_x, size.y));
	
	//Horizontal lines (y dimension) --> GREY
	gl.setColor(Color(0.4f, 0.4f, 0.4f, 1.0f));
	for(float a_y = start_lines.y; a_y < v_size.y; a_y += line_step.y)
		gl.drawLine(APoint(0.0f, a_y), APoint(size.x, a_y));
}
Exemple #24
0
    virtual bool init() override
    {
        this->Layer::init();
        Resource::Load();

        auto director = cocos2d::Director::getInstance();
        auto visibleSize = director->getVisibleSize();
        auto background = cocos2d::Sprite::create(Resource::WELCOME_BACKGROUND);
        auto newGame = cocos2d::ui::Button::create(Resource::BUTTON_NEWGAME);
        auto logoMaples = cocos2d::Sprite::create(Resource::LOGO_MAPLE);

        this->player = Fighter::Create(cocos2d::Point(visibleSize.width * 0.2, visibleSize.height * 0.2));

        logoMaples->setPosition(cocos2d::Point(visibleSize.width * 0.5, visibleSize.height * 0.7));
        logoMaples->setBlendFunc(cocos2d::BlendFunc::ADDITIVE);

        background->setPosition(cocos2d::Point::ZERO);
        background->setAnchorPoint(cocos2d::Point::ZERO);

        newGame->setPosition(cocos2d::Point(visibleSize.width * 0.5, visibleSize.height * 0.5));
        newGame->addTouchEventListener([this, director](cocos2d::Ref * pSender, cocos2d::ui::Widget::TouchEventType type){
            if (type == cocos2d::ui::Widget::TouchEventType::ENDED)
            {

                auto stepOne = cocos2d::CallFunc::create([this]
                {
                    this->addChild(Effect::CreateFlare());
                });

                auto stepTwo = cocos2d::CallFunc::create([director]
                {
                    auto transition = cocos2d::TransitionFade::create(2.0, HelloWorld::createScene());
                    director->replaceScene(transition);
                });

                this->runAction(cocos2d::Sequence::create(stepOne, stepTwo, nullptr));

            }
        });

        auto moveToRight = cocos2d::MoveTo::create(2.0, cocos2d::Vec2(visibleSize.width * 0.2, visibleSize.height * 0.2));
        auto moveToLeft = cocos2d::MoveTo::create(2.0, cocos2d::Vec2(visibleSize.width * 0.8, visibleSize.height * 0.2));

        auto sequence = cocos2d::Sequence::create(moveToLeft, moveToRight, nullptr);
        auto playerAction = cocos2d::RepeatForever::create(sequence);

        this->player->runAction(playerAction);

        auto name = cocos2d::Label::create();
        name->setString("姓名 : 刘枫林 (Maples)");
        name->setPosition(cocos2d::Point(visibleSize.width * 0.5, visibleSize.height * 0.36));
        auto info = cocos2d::Label::create();
        info->setString("学号 : 2013060109005");
        info->setPosition(cocos2d::Point(visibleSize.width * 0.5, visibleSize.height * 0.3));

        this->addChild(background);
        this->addChild(this->player);
        this->addChild(logoMaples);
        this->addChild(newGame);
        this->addChild(name);
        this->addChild(info);


        this->scheduleUpdate();
        return true;
    }
cocos2d::Rect mog::CCGame::getVisibleViewRect() const
{
	auto origin = getVisibleOrigin();
	auto viewSize = getVisibleSize();
	return Rect(origin.x, origin.y, viewSize.width, viewSize.height);
}
Exemple #26
0
bool UIEditBoxTest::init()
{
    if (UIScene::init())
    {
        auto glview = Director::getInstance()->getOpenGLView();
        auto visibleOrigin = glview->getVisibleOrigin();
        auto visibleSize = glview->getVisibleSize();
        
        auto pBg = Sprite::create("Images/HelloWorld.png");
        pBg->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/2));
        addChild(pBg);
        
        _TTFShowEditReturn = Label::createWithSystemFont("No edit control return!", "Arial", 30);
        _TTFShowEditReturn->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y + visibleSize.height - 50));
        addChild(_TTFShowEditReturn);
        
        
        auto editBoxSize = Size(visibleSize.width - 100, 60);
        
        // top
        std::string pNormalSprite = "extensions/green_edit.png";
        _editName = ui::EditBox::create(editBoxSize, ui::Scale9Sprite::create(pNormalSprite));
        _editName->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height*3/4));
        _editName->setFontName("Paint Boy");
        _editName->setFontSize(25);
        _editName->setFontColor(Color3B::RED);
        _editName->setPlaceHolder("Name:");
        _editName->setPlaceholderFontColor(Color3B::WHITE);
        _editName->setMaxLength(8);
        _editName->setReturnType(ui::EditBox::KeyboardReturnType::DONE);
        _editName->setDelegate(this);
        addChild(_editName);
        
        // middle
        _editPassword = ui::EditBox::create(editBoxSize, "extensions/orange_edit.png");
        _editPassword->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/2));
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
        _editPassword->setFont("American Typewriter", 30);
#else
        _editPassword->setFont("American Typewriter", 80);
        _editPassword->setPlaceholderFont("American Typewriter", 80);
#endif
        _editPassword->setFontColor(Color3B::GREEN);
        _editPassword->setPlaceHolder("Password:"******"extensions/yellow_edit.png");
        _editEmail->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/4));
        _editEmail->setAnchorPoint(Vec2(0.5, 1.0f));
        _editEmail->setPlaceHolder("Email:");
        _editEmail->setInputMode(ui::EditBox::InputMode::EMAIL_ADDRESS);
        _editEmail->setDelegate(this);
        addChild(_editEmail);
        
        this->setPosition(Vec2(10, 20));
        
      
        
        return true;
    }
    return false;
}
Scene* Chapter13::createScene()
{
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // some upfront items that we need
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    auto dirs = Director::getInstance();
    Size visibleSize = dirs->getVisibleSize();
    Vec2 origin = dirs->getVisibleOrigin();
    
    Size playingSize = Size(visibleSize.width, visibleSize.height - (visibleSize.height/8)); // actual playing size to work with

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // create a scene
    // 'scene' is an autorelease object
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    auto scene = Scene::create();
    
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // create a node to hold non-sprites.
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    auto nodeItems = Node::create();
    nodeItems->setName("nodeItems");
    
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // create a node to hold menu
    // create a menu
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    auto menuNode = Node::create();
    menuNode->setName("menuNode");
    int index = 2;
    
    auto menuItem1 = MenuItemFont::create("Play Music");
    menuItem1->setFontNameObj("fonts/Marker Felt.ttf");
    menuItem1->setFontSizeObj(32);
    menuItem1->setName("menuItem1");
    menuItem1->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem1->setCallback([&](cocos2d::Ref *sender) {
        auto dirs = Director::getInstance()->getRunningScene();
        auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
        
        audio->playBackgroundMusic("music.mp3");
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem1");
        cnode->setVisible(false);
        cnode = bnode->getChildByName("menuItem2");
        cnode->setVisible(true);
    });
    
    auto menuItem2 = MenuItemFont::create("Stop Music");
    menuItem2->setFontNameObj("fonts/Marker Felt.ttf");
    menuItem2->setFontSizeObj(32);
    menuItem2->setName("menuItem2");
    menuItem2->setVisible(false);
    menuItem2->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem2->setCallback([&](cocos2d::Ref *sender) {
        auto dirs = Director::getInstance()->getRunningScene();
        auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
        
        audio->stopBackgroundMusic("music.mp3");
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem2");
        cnode->setVisible(false);
        cnode = bnode->getChildByName("menuItem1");
        cnode->setVisible(true);
    });
    
    auto menuItem3 = MenuItemFont::create("Play Effect");
    menuItem3->setFontNameObj("fonts/Marker Felt.ttf");
    menuItem3->setFontSizeObj(32);
    menuItem3->setName("menuItem3");
    menuItem3->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40));
    menuItem3->setCallback([&](cocos2d::Ref *sender) {
        auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
        
        audio->playEffect("alert.mp3");
    });
    
    auto menu = Menu::create(menuItem1, menuItem2, menuItem3, NULL);
    menu->setName("menu");
    menuNode->addChild(menu, 1);
    menu->setPosition(Vec2::ZERO);
    
    scene->addChild(menuNode, 2);
    
    // return the scene
    return scene;
}
Scene* Chapter3::createScene()
{
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // some upfront items that we need
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    auto dirs = Director::getInstance();
    Size visibleSize = dirs->getVisibleSize();
    Vec2 origin = dirs->getVisibleOrigin();
    
    Size playingSize = Size(visibleSize.width, visibleSize.height - (visibleSize.height/8)); // actual playing size to work with

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // create a scene
    // 'scene' is an autorelease object
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    auto scene = Scene::create();
    
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // create a node to hold non-sprites.
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    auto nodeItems = Node::create();
    nodeItems->setName("nodeItems");
    
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // create a node to hold menu
    // create a menu
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    auto menuNode = Node::create();
    menuNode->setName("menuNode");
    int index = 2;
    
    auto menuItem1 = MenuItemFont::create("First: Create a Sprite");
    menuItem1->setFontNameObj("Marker Felt.ttf");
    menuItem1->setFontSizeObj(32);
    menuItem1->setName("menuItem1");
    menuItem1->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem1->setCallback([&](cocos2d::Ref *sender) {
        auto dirs = Director::getInstance()->getRunningScene();
        auto newSprite = Sprite::create("Blue_Front1.png");
        newSprite->setPosition(100, 256);
        newSprite->setName("sprite1");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite,1);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem1");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem2");
        dnode->setVisible(true);
    });
    
    auto menuItem2 = MenuItemFont::create("Next: Create a Sprite from a Rect");
    menuItem2->setFontNameObj("Marker Felt.ttf");
    menuItem2->setFontSizeObj(32);
    menuItem2->setName("menuItem2");
    menuItem2->setVisible(false);
    menuItem2->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem2->setCallback([&](cocos2d::Ref *sender) {
        auto dirs = Director::getInstance()->getRunningScene();
        auto newSprite = Sprite::create("Blue_Front1.png", Rect(0,0,50,50));
        newSprite->setPosition(250, 256);
        newSprite->setName("sprite2");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite,1);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem2");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem3");
        dnode->setVisible(true);
    });
    
    auto menuItem3 = MenuItemFont::create("Next: Create a Sprite from SpriteFrameCache");
    menuItem3->setFontNameObj("Marker Felt.ttf");
    menuItem3->setFontSizeObj(32);
    menuItem3->setName("menuItem3");
    menuItem3->setVisible(false);
    menuItem3->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem3->setCallback([&](cocos2d::Ref *sender) {
        auto dirs = Director::getInstance()->getRunningScene();
        auto spritecache = SpriteFrameCache::getInstance();
        spritecache->addSpriteFramesWithFile("sprites.plist");

        auto newSprite = Sprite::createWithSpriteFrameName("Blue_Front1.png");
        newSprite->setPosition(400, 256);
        newSprite->setName("sprite3");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite,1);

        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem3");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem4");
        dnode->setVisible(true);
    });
    
    auto menuItem4 = MenuItemFont::create("Next: Create a Sprite from SpriteFrame");
    menuItem4->setFontNameObj("Marker Felt.ttf");
    menuItem4->setFontSizeObj(32);
    menuItem4->setName("menuItem4");
    menuItem4->setVisible(false);
    menuItem4->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem4->setCallback([&](cocos2d::Ref *sender) {
        auto dirs = Director::getInstance()->getRunningScene();
        auto spritecache = SpriteFrameCache::getInstance();
        spritecache->addSpriteFramesWithFile("sprites.plist");
        
        auto newspriteFrame = SpriteFrame::create("Blue_Front1.png", Rect(0,0,50,50));
        
        auto newSprite = Sprite::createWithSpriteFrame(newspriteFrame);
        newSprite->setPosition(550, 256);
        newSprite->setName("sprite4");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite,1);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem4");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem5");
        dnode->setVisible(true);
    });
    
    auto menuItem5 = MenuItemFont::create("Next: Scale a Sprite");
    menuItem5->setFontNameObj("Marker Felt.ttf");
    menuItem5->setFontSizeObj(32);
    menuItem5->setName("menuItem5");
    menuItem5->setVisible(false);
    menuItem5->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem5->setCallback([&](cocos2d::Ref *sender) {
        // hide everything else on the screen
        auto dirs = Director::getInstance()->getRunningScene();
        dirs->removeChildByName("sprite1");
        dirs->removeChildByName("sprite2");
        dirs->removeChildByName("sprite3");
        dirs->removeChildByName("sprite4");

        auto newSprite = Sprite::create("Blue_Front1.png");
        newSprite->setPosition(100, 256);
        newSprite->setName("sprite5");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite,1);
        
        auto point00 = Sprite::create("dot.png");
        point00->setName("point00");
        point00->setPosition(newSprite->getPosition());
        dirs->addChild(point00,2);
        
        auto newSpriteScaleXY = Sprite::create("Blue_Front1.png");
        newSpriteScaleXY->setPosition(300,256);
        newSpriteScaleXY->setName("sprite6");
        newSpriteScaleXY->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteScaleXY->setScale(2.0f);
        dirs->addChild(newSpriteScaleXY,1);
        
        auto pointXY = Sprite::create("dot.png");
        pointXY->setName("pointXY");
        pointXY->setPosition(newSpriteScaleXY->getPosition());
        dirs->addChild(pointXY,2);
        
        auto newSpriteScaleX = Sprite::create("Blue_Front1.png");
        newSpriteScaleX->setPosition(500,256);
        newSpriteScaleX->setName("sprite7");
        newSpriteScaleX->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteScaleX->setScaleX(2.0f);
        dirs->addChild(newSpriteScaleX,1);
        
        auto pointX = Sprite::create("dot.png");
        pointX->setName("pointX");
        pointX->setPosition(newSpriteScaleX->getPosition());
        dirs->addChild(pointX,2);
        
        auto newSpriteScaleY = Sprite::create("Blue_Front1.png");
        newSpriteScaleY->setPosition(800, 256);
        newSpriteScaleY->setName("sprite8");
        newSpriteScaleY->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteScaleY->setScaleY(2.0f);
        dirs->addChild(newSpriteScaleY,1);
        
        auto pointY = Sprite::create("dot.png");
        pointY->setName("pointY");
        pointY->setPosition(newSpriteScaleY->getPosition());
        dirs->addChild(pointY,2);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem5");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem6");
        dnode->setVisible(true);
    });
    
    auto menuItem6 = MenuItemFont::create("Next: Anchor Point and Sprite");
    menuItem6->setFontNameObj("Marker Felt.ttf");
    menuItem6->setFontSizeObj(32);
    menuItem6->setName("menuItem6");
    menuItem6->setVisible(false);
    menuItem6->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem6->setCallback([&](cocos2d::Ref *sender) {
        // hide everything else on the screen
        auto dirs = Director::getInstance()->getRunningScene();
        dirs->removeChildByName("sprite5");
        dirs->removeChildByName("sprite6");
        dirs->removeChildByName("sprite7");
        dirs->removeChildByName("sprite8");
        dirs->removeChildByName("point00");
        dirs->removeChildByName("pointXY");
        dirs->removeChildByName("pointX");
        dirs->removeChildByName("pointY");

        
        auto newSprite00 = Sprite::create("Blue_Front1.png");
        newSprite00->setPosition(100, 256);
        newSprite00->setName("sprite9");
        newSprite00->setAnchorPoint(Vec2(0,0));
        dirs->addChild(newSprite00,1);
        
        auto point00 = Sprite::create("dot.png");
        point00->setName("point00");
        point00->setPosition(newSprite00->getPosition());
        dirs->addChild(point00,2);
        
        auto newSprite01 = Sprite::create("Blue_Front1.png");
        newSprite01->setPosition(250, 256);
        newSprite01->setName("sprite10");
        newSprite01->setAnchorPoint(Vec2(0,1));
        dirs->addChild(newSprite01,1);
        
        auto point01 = Sprite::create("dot.png");
        point01->setName("point01");
        point01->setPosition(newSprite01->getPosition());
        dirs->addChild(point01,2);
        
        auto newSprite10 = Sprite::create("Blue_Front1.png");
        newSprite10->setPosition(400, 256);
        newSprite10->setName("sprite11");
        newSprite10->setAnchorPoint(Vec2(1,0));
        dirs->addChild(newSprite10,1);
        
        auto point10 = Sprite::create("dot.png");
        point10->setName("point10");
        point10->setPosition(newSprite10->getPosition());
        dirs->addChild(point10,2);
        
        auto newSprite11 = Sprite::create("Blue_Front1.png");
        newSprite11->setPosition(550, 256);
        newSprite11->setName("sprite12");
        newSprite11->setAnchorPoint(Vec2(1,1));
        dirs->addChild(newSprite11,1);
        
        auto point11 = Sprite::create("dot.png");
        point11->setName("point11");
        point11->setPosition(newSprite11->getPosition());
        dirs->addChild(point11,2);
        
        auto newSprite22 = Sprite::create("Blue_Front1.png");
        newSprite22->setPosition(700, 256);
        newSprite22->setName("sprite13");
        newSprite22->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite22,1);
        
        auto point22 = Sprite::create("dot.png");
        point22->setName("point22");
        point22->setPosition(newSprite22->getPosition());
        dirs->addChild(point22,2);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem6");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem7");
        dnode->setVisible(true);
    });

    auto menuItem7 = MenuItemFont::create("Next: Skew a Sprite");
    menuItem7->setFontNameObj("Marker Felt.ttf");
    menuItem7->setFontSizeObj(32);
    menuItem7->setName("menuItem7");
    menuItem7->setVisible(false);
    menuItem7->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem7->setCallback([&](cocos2d::Ref *sender) {
        // hide everything else on the screen
        auto dirs = Director::getInstance()->getRunningScene();
        dirs->removeChildByName("sprite9");
        dirs->removeChildByName("sprite10");
        dirs->removeChildByName("sprite11");
        dirs->removeChildByName("sprite12");
        dirs->removeChildByName("sprite13");
        dirs->removeChildByName("point00");
        dirs->removeChildByName("point01");
        dirs->removeChildByName("point10");
        dirs->removeChildByName("point11");
        dirs->removeChildByName("point22");
        
        auto newSprite = Sprite::create("Blue_Front1.png");
        newSprite->setPosition(100, 256);
        newSprite->setName("sprite14");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite,1);
        
        auto pointN = Sprite::create("dot.png");
        pointN->setName("pointN");
        pointN->setPosition(newSprite->getPosition());
        dirs->addChild(pointN,2);
        
        auto newSpriteSkewX = Sprite::create("Blue_Front1.png");
        newSpriteSkewX->setPosition(250, 256);
        newSpriteSkewX->setName("sprite15");
        newSpriteSkewX->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteSkewX->setSkewX(20.0f);
        dirs->addChild(newSpriteSkewX,1);
        
        auto pointX = Sprite::create("dot.png");
        pointX->setName("pointX");
        pointX->setPosition(newSpriteSkewX->getPosition());
        dirs->addChild(pointX,2);
        
        auto newSpriteSkewY = Sprite::create("Blue_Front1.png");
        newSpriteSkewY->setPosition(400, 256);
        newSpriteSkewY->setName("sprite16");
        newSpriteSkewY->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteSkewY->setSkewY(20.0f);
        dirs->addChild(newSpriteSkewY,1);
        
        auto pointY = Sprite::create("dot.png");
        pointY->setName("pointY");
        pointY->setPosition(newSpriteSkewY->getPosition());
        dirs->addChild(pointY,2);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem7");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem8");
        dnode->setVisible(true);
    });

    auto menuItem8 = MenuItemFont::create("Next: Rotate a Sprite");
    menuItem8->setFontNameObj("Marker Felt.ttf");
    menuItem8->setFontSizeObj(32);
    menuItem8->setName("menuItem8");
    menuItem8->setVisible(false);
    menuItem8->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem8->setCallback([&](cocos2d::Ref *sender) {
        // hide everything else on the screen
        auto dirs = Director::getInstance()->getRunningScene();
        dirs->removeChildByName("sprite14");
        dirs->removeChildByName("sprite15");
        dirs->removeChildByName("sprite16");
        dirs->removeChildByName("pointN");
        dirs->removeChildByName("pointX");
        dirs->removeChildByName("pointY");
        
        auto newSprite = Sprite::create("Blue_Front1.png");
        newSprite->setPosition(100, 256);
        newSprite->setName("sprite17");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite,1);
        
        auto point00 = Sprite::create("dot.png");
        point00->setName("point00");
        point00->setPosition(newSprite->getPosition());
        dirs->addChild(point00,2);
        
        auto newSpriteRotateP20 = Sprite::create("Blue_Front1.png");
        newSpriteRotateP20->setPosition(250, 256);
        newSpriteRotateP20->setName("sprite18");
        newSpriteRotateP20->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteRotateP20->setRotation(20.0f);
        dirs->addChild(newSpriteRotateP20,1);
        
        auto pointP20 = Sprite::create("dot.png");
        pointP20->setName("pointP20");
        pointP20->setPosition(newSpriteRotateP20->getPosition());
        dirs->addChild(pointP20,2);
        
        auto newSpriteRotateN20 = Sprite::create("Blue_Front1.png");
        newSpriteRotateN20->setPosition(400, 256);
        newSpriteRotateN20->setName("sprite19");
        newSpriteRotateN20->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteRotateN20->setRotation(-20.0f);
        dirs->addChild(newSpriteRotateN20,1);
        
        auto pointN20 = Sprite::create("dot.png");
        pointN20->setName("pointN20");
        pointN20->setPosition(newSpriteRotateN20->getPosition());
        dirs->addChild(pointN20,2);
        
        auto newSpriteRotateP60 = Sprite::create("Blue_Front1.png");
        newSpriteRotateP60->setPosition(550, 256);
        newSpriteRotateP60->setName("sprite20");
        newSpriteRotateP60->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteRotateP60->setRotation(60.0f);
        dirs->addChild(newSpriteRotateP60,1);
        
        auto pointP60 = Sprite::create("dot.png");
        pointP60->setName("pointP60");
        pointP60->setPosition(newSpriteRotateP60->getPosition());
        dirs->addChild(pointP60,2);
        
        auto newSpriteRotateN60 = Sprite::create("Blue_Front1.png");
        newSpriteRotateN60->setPosition(700, 256);
        newSpriteRotateN60->setName("sprite21");
        newSpriteRotateN60->setAnchorPoint(Vec2(0.5,0.5));
        newSpriteRotateN60->setRotation(-60.0f);
        dirs->addChild(newSpriteRotateN60,1);
        
        auto pointN60 = Sprite::create("dot.png");
        pointN60->setName("pointN60");
        pointN60->setPosition(newSpriteRotateN60->getPosition());
        dirs->addChild(pointN60,2);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem8");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem9");
        dnode->setVisible(true);
    });
    
    auto menuItem9 = MenuItemFont::create("Next: Change the Color of a Sprite");
    menuItem9->setFontNameObj("Marker Felt.ttf");
    menuItem9->setFontSizeObj(32);
    menuItem9->setName("menuItem9");
    menuItem9->setVisible(false);
    menuItem9->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem9->setCallback([&](cocos2d::Ref *sender) {
        // hide everything else on the screen
        auto dirs = Director::getInstance()->getRunningScene();
        dirs->removeChildByName("sprite18");
        dirs->removeChildByName("sprite19");
        dirs->removeChildByName("sprite20");
        dirs->removeChildByName("sprite21");
        dirs->removeChildByName("point00");
        dirs->removeChildByName("pointP20");
        dirs->removeChildByName("pointN20");
        dirs->removeChildByName("pointP60");
        dirs->removeChildByName("pointN60");
        
        auto newSprite = Sprite::create("Blue_Front1.png");
        newSprite->setPosition(100, 256);
        newSprite->setName("sprite30");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        dirs->addChild(newSprite,1);
        
        auto newSprite2 = Sprite::create("Blue_Front1.png");
        newSprite2->setPosition(200, 256);
        newSprite2->setName("sprite31");
        newSprite2->setAnchorPoint(Vec2(0.5,0.5));
        newSprite2->setColor(Color3B(155, 200, 50));
        dirs->addChild(newSprite2,1);
        
        auto newSprite3 = Sprite::create("Blue_Front1.png");
        newSprite3->setPosition(300, 256);
        newSprite3->setName("sprite32");
        newSprite3->setAnchorPoint(Vec2(0.5,0.5));
        newSprite3->setColor(Color3B(10, 230, 100));
        dirs->addChild(newSprite3,1);
        
        auto newSprite4 = Sprite::create("Blue_Front1.png");
        newSprite4->setPosition(400, 256);
        newSprite4->setName("sprite33");
        newSprite4->setAnchorPoint(Vec2(0.5,0.5));
        newSprite4->setColor(Color3B(100, 101, 230));
        dirs->addChild(newSprite4,1);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem9");
        cnode->setVisible(false);
        auto dnode = bnode->getChildByName("menuItem10");
        dnode->setVisible(true);
    });
    
    auto menuItem10 = MenuItemFont::create("Next: Change the Color of a Sprite");
    menuItem10->setFontNameObj("Marker Felt.ttf");
    menuItem10->setFontSizeObj(32);
    menuItem10->setName("menuItem10");
    menuItem10->setVisible(false);
    menuItem10->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                           (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40));
    menuItem10->setCallback([&](cocos2d::Ref *sender) {
        // hide everything else on the screen
        auto dirs = Director::getInstance()->getRunningScene();
        dirs->removeChildByName("sprite30");
        dirs->removeChildByName("sprite31");
        dirs->removeChildByName("sprite32");
        dirs->removeChildByName("sprite33");
        
        auto newSprite = Sprite::create("Blue_Front1.png");
        newSprite->setPosition(100, 256);
        newSprite->setName("sprite34");
        newSprite->setAnchorPoint(Vec2(0.5,0.5));
        newSprite->setOpacity(0.0f);
        dirs->addChild(newSprite,1);
        
        auto newSprite2 = Sprite::create("Blue_Front1.png");
        newSprite2->setPosition(200, 256);
        newSprite2->setName("sprite35");
        newSprite2->setAnchorPoint(Vec2(0.5,0.5));
        newSprite2->setOpacity(99);
        dirs->addChild(newSprite2,1);
        
        auto newSprite3 = Sprite::create("Blue_Front1.png");
        newSprite3->setPosition(300, 256);
        newSprite3->setName("sprite36");
        newSprite3->setAnchorPoint(Vec2(0.5,0.5));
        newSprite3->setOpacity(89);
        dirs->addChild(newSprite3,1);
        
        auto newSprite4 = Sprite::create("Blue_Front1.png");
        newSprite4->setPosition(400, 256);
        newSprite4->setName("sprite37");
        
        newSprite4->setAnchorPoint(Vec2(0.5,0.5));
        newSprite4->setOpacity(79);
        dirs->addChild(newSprite4,1);
        
        auto anode = dirs->getChildByName("menuNode");
        auto bnode = anode->getChildByName("menu");
        auto cnode = bnode->getChildByName("menuItem10");
        cnode->setVisible(false);
        //auto dnode = bnode->getChildByName("menuItem10");
        //dnode->setVisible(true);
    });

    auto menu = Menu::create(menuItem1, menuItem2, menuItem3, menuItem4, menuItem5, menuItem6,
                             menuItem7, menuItem8, menuItem9, menuItem10, NULL);
    menu->setName("menu");
    menuNode->addChild(menu, 1);
    menu->setPosition(Vec2::ZERO);
    
    scene->addChild(menuNode, 2);
    
    // return the scene
    return scene;
}
Exemple #29
0
void Game::drawStatusGUI() {
	auto director = CCDirector::sharedDirector();
	auto visibleSize = director->getVisibleSize();
	drawStatusBar(visibleSize);
	drawInventory(visibleSize);
}
Exemple #30
0
void TestList::runThisTest()
{
    _cellTouchEnabled = true;
    auto director = Director::getInstance();
    auto scene = Scene::create();

    auto visibleSize = director->getVisibleSize();
    auto origin = director->getVisibleOrigin();

    auto tableView = TestCustomTableView::create(this, Size(400, visibleSize.height));
    tableView->setPosition(origin.x + (visibleSize.width - 400) / 2, origin.y);
    tableView->setDirection(ScrollView::Direction::VERTICAL);
    tableView->setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN);
    tableView->setDelegate(this);
    scene->addChild(tableView);
    tableView->reloadData();

    if (_shouldRestoreTableOffset)
    {
        tableView->setContentOffset(_tableOffset);
    }

    if (_parentTest)
    {
        //Add back button.
        TTFConfig ttfConfig("fonts/arial.ttf", 20);
        auto label = Label::createWithTTF(ttfConfig, "Back");

        auto menuItem = MenuItemLabel::create(label, std::bind(&TestBase::backsUpOneLevel, this));
        auto menu = Menu::create(menuItem, nullptr);

        menu->setPosition(Vec2::ZERO);
        menuItem->setPosition(Vec2(VisibleRect::right().x - 50, VisibleRect::bottom().y + 25));

        scene->addChild(menu, 1);
    }
    else
    {
        //Add close and "Start AutoTest" button.
        auto closeItem = MenuItemImage::create(s_pathClose, s_pathClose, [](Ref* sender){
            TestController::getInstance()->stopAutoTest();
            TestController::destroyInstance();
            Director::getInstance()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
            exit(0);
#endif
        });
        closeItem->setPosition(VisibleRect::right().x - 30, VisibleRect::top().y - 30);

        auto autoTestLabel = Label::createWithTTF("Start AutoTest","fonts/arial.ttf",16);
        auto autoTestItem = MenuItemLabel::create(autoTestLabel, [&](Ref* sender){
            TestController::getInstance()->startAutoTest();
        });
        autoTestItem->setPosition(Vec2(VisibleRect::right().x - 70, VisibleRect::bottom().y + 25));

        auto menu = Menu::create(closeItem, autoTestItem, nullptr);
        menu->setPosition(Vec2::ZERO);
        scene->addChild(menu, 1);
    }

    director->replaceScene(scene);
}