示例#1
0
void CCCGameScrollView::scrollToPage( int nPage )
{
	// 关闭CCScrollView中的自调整
	unscheduleAllSelectors();

	CCPoint oOffset = getContentOffset();
	// 调整位置
	CCPoint adjustPos;
	if (m_eDirection == kCCScrollViewDirectionHorizontal)
	{
		adjustPos = ccp(-m_CellSize.width * nPage, 0);
	}
	else
	{
		adjustPos = ccp(0, m_CellSize.height * nPage);
	}
	// 调整动画时间
	float adjustAnimDelay = ccpDistance(adjustPos, oOffset) / m_fAdjustSpeed;

	// 调整位置
	setContentOffsetInDuration(adjustPos, adjustAnimDelay);

	if (nPage != m_nCurPage)
	{
		m_nCurPage = nPage;
		scheduleOnce(schedule_selector(CCCGameScrollView::onScrollEnd), adjustAnimDelay);
	}
}
示例#2
0
void ScrollView::scrollToPage(int nPage)
{
    // 关闭CCScrollView中的自调整
    unscheduleAllCallbacks();
    
    Vec2 oOffset = getContentOffset();
    // 调整位置
    Vec2 adjustPos= Vec2(-_cellSize.width*nPage,0);
    
    // 调整动画时间
    float adjustAnimDelay= adjustPos.getDistance(oOffset)/_adjustSpeed;
    
    // 调整位置
    setContentOffsetInDuration(adjustPos, adjustAnimDelay);
    
    if (nPage!=_prePage)
    {
        this->setTouchEnabled(false);
        schedule(schedule_selector(ScrollView::onScrollEnd),adjustAnimDelay,0,0.0f);
        _prePage=nPage;
        
        if(_delegate)
            _delegate->scrollViewMoveToPage(nPage);
    }
}
示例#3
0
void CScrollView::setContentOffsetToTopInDuration(float fDuration)
{
	if( m_eDirection == eScrollViewDirectionVertical )
	{
		Vec2 tPoint(0, -(m_pContainer->getContentSize().height - _contentSize.height));
		setContentOffsetInDuration(tPoint, fDuration);
	}
}
void CCCGameScrollView::scrollToPage( int nPage )
{
	// 关闭CCScrollView中的自调整
	unscheduleAllSelectors();
    
	CCPoint oOffset=getContentOffset();
	// 调整位置
	CCPoint adjustPos=ccp(-m_CellSize.width*nPage,0);
    
	// 调整动画时间
	float adjustAnimDelay=ccpDistance(adjustPos,oOffset)/m_fAdjustSpeed;
    
	// 调整位置
	setContentOffsetInDuration(adjustPos, adjustAnimDelay);
    
	if (nPage!=m_nPrePage)
	{
		schedule(schedule_selector(CCCGameScrollView::onScrollEnd),adjustAnimDelay,0,0.0f);
		m_nPrePage=nPage;
	}
}
示例#5
0
// on "init" you need to initialize your instance
bool ReadyScene::init()
{
	//////////////////////////////
	// 1. super init first
	if (!Layer::init())
	{
		return false;
	}

	Singleton<WeaponDB>::getInstance();

	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("clotharmor.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("thunder.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ogre.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("pikachu.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("thunder_effect.plist");

	Size visibleSize = Director::getInstance()->getVisibleSize();
	Vec2 origin = Director::getInstance()->getVisibleOrigin();

	s = nullptr;

	auto backgroundSprite = Sprite::create("start_background.png");
	backgroundSprite->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
	backgroundSprite->setScale(3);
	this->addChild(backgroundSprite);


	auto tmap = TMXTiledMap::create("StartMap.tmx");

	gamemap = new GameMap(tmap);

	player = new Player(this, gamemap);

	player->getSpriteObject()->setScale(1.5f);
	player->getSprite()->setPosition(Point(visibleSize.width * 7 / 24, visibleSize.height /2));

	s = new Weapon(1);
	player->setWeapon(s);

	MenuItemImage* PlayMenu = MenuItemImage::create("play_button1.png", "play_button2.png", CC_CALLBACK_1(ReadyScene::onMenu, this));
	PlayMenu->setScale(2.5f);

	Menu* menu = Menu::create(PlayMenu, NULL);
	menu->setPosition(visibleSize.width * 0.3f, visibleSize.height * 0.3f);
	this->addChild(menu, 1);

	MenuItemImage* LeftButton = MenuItemImage::create("left_button1.png", "left_button2.png", CC_CALLBACK_1(ReadyScene::onLeftButton, this));
	LeftButton->setScale(2.5f);

	Menu* left_bt = Menu::create(LeftButton, NULL);
	left_bt->setPosition(Point(visibleSize.width / 6, visibleSize.height / 2));
	this->addChild(left_bt, 1);

	MenuItemImage* RightButton = MenuItemImage::create("right_button1.png", "right_button2.png", CC_CALLBACK_1(ReadyScene::onRightButton, this));
	RightButton->setScale(2.5f);

	Menu* right_bt = Menu::create(RightButton, NULL);
	right_bt->setPosition(Point(visibleSize.width * 3 / 7, visibleSize.height   / 2));
	this->addChild(right_bt, 1);


	auto weapon_sprite = Sprite::create("weapon_font.png");
	weapon_sprite->setScale(2.0f);
	weapon_sprite->setPosition(Point(visibleSize.width * 0.55f, visibleSize.height * 0.75f));
	this->addChild(weapon_sprite);

	auto scrollView = ScrollView::create(Size(Singleton<WeaponDB>::getInstance()->getWeaponDBSize() * 48, 48));
	scrollView->setDirection(ScrollView::Direction::HORIZONTAL);
	scrollView->setContentOffset(Vec2(0, 0));
	scrollView->setContentOffsetInDuration(Vec2(0, 0), 10.f);
	scrollView->setPosition(Point(visibleSize.width * 0.5f, visibleSize.height * 0.6f));
	this->addChild(scrollView);

	
	MenuItemImage *test;
	Menu *menutest;

	for (int i = 1; i <= Singleton<WeaponDB>::getInstance()->getWeaponDBSize(); i++)
	{
		std::string str = StringUtils::format("%s_menu.png", Singleton<WeaponDB>::getInstance()->getWeaponData(i).path.c_str());

		test = MenuItemImage::create(str, str, CC_CALLBACK_1(ReadyScene::test2, this));
		test->setScale(2.5f);
		test->setTag(i);

		menutest = ScrollMenu::create(test, NULL);
		menutest->setPosition(Point((48 * i), 20));
		scrollView->addChild(menutest);
	}

	this->schedule(schedule_selector(ReadyScene::gameLogic), 0.2);

	return true;

}