KDbool TestList::init ( KDvoid )
{
	if ( !CCLayer::initWithVisibleViewport ( ) )
	{
		return KD_FALSE;
	}

	const CCSize&  tLyrSize = this->getContentSize ( );

	CCLayerGradient*  pBG = CCLayerGradient::create ( ccc4 ( 52, 84, 236, 200 ), ccc4 ( 149, 0, 202, 200 ) );
	pBG->setContentSize ( tLyrSize );
	this->addChild ( pBG, -10 );

	CCSprite*  pBottomLeft = CCSprite::create ( "ccb/jungle-left.png" );
	this->addChild ( pBottomLeft, 10 );
	pBottomLeft->setScale ( 1.5f );
	pBottomLeft->setOpacity ( 210 );
	pBottomLeft->setPositionWithParent ( kCCAlignmentBottomLeft );

	CCSprite*  pBottomRight = CCSprite::create ( "ccb/jungle-right.png" );
	this->addChild ( pBottomRight, 10 );
	pBottomRight->setScale ( 1.5f );
	pBottomRight->setOpacity ( 210 );
	pBottomRight->setPositionWithParent ( kCCAlignmentBottomRight );

	CCMenuItemImage*  pQuit = CCMenuItemImage::create
	(
		"xm_supports/CloseNormal.png", "xm_supports/CloseSelected.png", this, menu_selector ( TestList::onQuit ) 
	);
	pQuit->setScale ( 1.2f );
	pQuit->setPosition ( this, kCCAlignmentTopRight, ccp ( 10, 10 ) );
	this->addChild ( CCMenu::createWithItem ( pQuit ), 10 ); 

	CCTableView*  pTableView = CCTableView::create ( this, ccs ( tLyrSize.cx, tLyrSize.cy - 20.f ) );
	this->addChild ( pTableView );
	pTableView->setDelegate   ( this );	
	pTableView->setDataSource ( this );
	pTableView->setPosition   ( ccp ( 0, 10 ) );

	if ( s_tPrevPosition.x != -1 )
	{
		pTableView->setContentOffset ( s_tPrevPosition );
	}
	
	CCMenuItemFont::setFontSize ( 30 );
	CCMenuItemFont::setFontName ( "fonts/ThonburiBold.ttf" );

	return KD_TRUE;
}
Beispiel #2
0
bool CCLobbyView::initRoomTable()
{
    const CCPoint center = this->getCenter();
    CCLOG("CCLobbyView::initRoomTable:1");
    this->removeRoomTable();
    this->_lobbyViewDataSource = new CCLobbyViewDataSource(this);
    CCLOG("CCLobbyView::initRoomTable:2");
    
    if (this->_lobbyViewDataSource) {
//        this->_lobbyViewDataSource->autorelease();
//        CC_SAFE_RETAIN(this->_lobbyViewDataSource);
        CCSize tableSize = this->_lobbyViewDataSource->cellSizeForTable( NULL );
        tableSize.height *= 10.0f;
        CCLOG("CCLobbyView::initRoomTable:3 tableSize.height[%f]", tableSize.height);
        CCTableView* table = CCTableView::create( this->_lobbyViewDataSource, tableSize );
        CCLOG("CCLobbyView::initRoomTable:4");
        if( table )
        {
            CCSize winSize = CCDirector::sharedDirector()->getWinSize();
            float posy = this->getEditName()->getContentSize().height;
            posy += this->getConsole()->getContentSize().height;
            table->setContentOffset( CCPointZero );
            table->setDirection(kCCScrollViewDirectionVertical);
            table->setPosition( ccp( center.x - ( tableSize.width * 0.5f ), winSize.height - posy - tableSize.height - FONT_SIZE(24) ) );
            table->setDelegate( this );
            table->setVerticalFillOrder(kCCTableViewFillTopDown);
            table->setTouchEnabled( true );
            this->addChild( table, 0, Child::CCTableView_roomTable );
            table->reloadData();
            
            this->setMinRoomsInView( 10 );
            return true;
        } else {
        	CCLOG("CCLobbyView::initRoomTable:5 table create failed");
        }
    }
    return false;
}
bool CCLobbyView::init( CCNetworkLogic* network, const CCSize& mySize )
{
    if( CCLayer::init() )
    {
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
        const CCPoint& center = ccpMult( ccpFromSize( mySize ), 0.5f );
        CCPoint position = CCPointZero;
        CCSize size = CCSizeZero;
        int length = 0;
        int fontSize = 0;
        
        this->setNetwork( network );
        
        CCSprite* s = CCSprite::create("Images/r1.png");
        s->retain();
        CCRect rect = CCRectZero;
        rect.size = s->getContentSize();
        s->release();
        
        fontSize = 12;
        CCLabelTTF* label = CCLabelTTF::create( "Connect", "fonts/American Typewriter.ttf", fontSize );
        label->setColor( ccc3( 0, 0, 0 ) );
        CCScale9Sprite* sprite = CCScale9Sprite::create("Images/r1.png", rect, rect );
        sprite->setScaleX( 1.4f );
        sprite->setScaleY( 0.8f );
        CCControlButton* button = CCControlButton::create( label, sprite );
        button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::connectButtonCallback ), CCControlEventTouchUpInside);
        button->setPreferredSize( rect.size );
        position = center;
        position.y -= 136;
        position.x -= 100;
        button->setPosition( position );
        this->setConnectButton( button );
        
        label = CCLabelTTF::create( "Create Room", "fonts/American Typewriter.ttf", fontSize );
        label->setColor( ccc3( 0, 0, 0 ) );
        sprite = CCScale9Sprite::create("Images/r1.png", rect, rect );
        sprite->setScaleX( 1.4f );
        sprite->setScaleY( 0.8f );
        button = CCControlButton::create( label, sprite );
        button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::createGameButtonCallback ), CCControlEventTouchUpInside);
        button->setPreferredSize( rect.size );
        position = center;
        position.y -= 136;
        //position.x += 0;
        button->setPosition( position );
        this->setCreateGameButton( button );
        
        label = CCLabelTTF::create( "Random Room", "fonts/American Typewriter.ttf", fontSize );
        label->setColor( ccc3( 0, 0, 0 ) );
        sprite = CCScale9Sprite::create("Images/r1.png", rect, rect );
        sprite->setScaleX( 1.6f );
        sprite->setScaleY( 0.8f );
        button = CCControlButton::create( label, sprite );
        button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::joinGameButtonCallback ), CCControlEventTouchUpInside);
        button->setPreferredSize( rect.size );
        position = center;
        position.y -= 136;
        position.x += 100;
        button->setPosition( position );
        this->setRandomGameButton( button );
        
        this->_lobbyViewDataSource = new CCLobbyViewDataSource( this );

        fontSize = 16;
        length = mySize.width;
        size = this->_lobbyViewDataSource->cellSizeForTable( NULL );
        size.height *= 3;
        CCTableView* table = CCTableView::create( this->_lobbyViewDataSource, size );
        table->setContentOffset( CCPointZero );
        table->setDirection(kCCScrollViewDirectionVertical);
        position = center;
        position.x -= size.width * 0.5f;
        position.y -= fontSize + ( size.height * 0.17f );
        table->setPosition( position );
        table->setDelegate( this );
        table->setVerticalFillOrder(kCCTableViewFillTopDown);
        this->setRoomTable( table );
        table->reloadData();
        
        fontSize = 16;
        label = CCLabelTTF::create("Running games:", "fonts/American Typewriter.ttf", fontSize,
                                                 winSize, kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
        position = center;
        position.x -= size.width * 0.4f;
        position.y += size.height - ( fontSize * 0.5f );
        label->setPosition( position );
        //label->setAnchorPoint( CCPointZero );
        this->setRoomTableLabel( label );
        
        fontSize = 16;
        CCLabelTTF* console = CCLabelTTF::create("disconnected", "fonts/American Typewriter.ttf", fontSize,
                                             winSize, kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
        
            
        console->setColor( ccc3(255, 255, 255) );
        console->setContentSize(winSize);
        position = center;
        position.y += 100;
        console->setPosition( position );
        this->setConsole( console );
        
        label = CCLabelTTF::create( "localhost:5055", "fonts/American Typewriter.ttf", fontSize );
        position.y += fontSize;
        label->setPosition( position );
        this->setDisplayAddress( label );
        
        // top
        fontSize = 24;
        length = 19;
        size = CCSize( length * fontSize * 0.7f, fontSize * 1.7f );
        CCEditBox* edit = CCEditBox::create( size, CCScale9Sprite::create( "extensions/green_edit.png" ) );
        edit->setPosition( center );
        edit->setFontColor(ccBLACK);
        edit->setPlaceHolder("ip:port");
        edit->setMaxLength( 19 );
        edit->setReturnType(kKeyboardReturnTypeDone);
        edit->setDelegate(this);
        position.y -= fontSize * 2;
        edit->setPosition( position );
        this->setEditAddress( edit );
        
        //CCChatRoom* chatroom = CCChatRoom::create(this->getNetwork());
        //this->setChatRoom( chatroom );
        
        this->scheduleUpdate();

        return true;
    }
    
    return false;
}