Esempio n. 1
0
bool CBoxBehaviorState::IsPutable(CCSprite* sprite, CCPoint touchPos, CCPoint& avaliablePos)
{
	auto arr = CObjectManager::getInstance()->getBox2dSprite();
	CCPoint setPos;
	bool bIsEnable = true;
	CCRect rect;

	for (int i = 0; i <= 20; i++)
	{
		for (int j = 0; j <= 20; j++)
		{
			CCRect r;
			r.setRect(i * 105 + CScrollManager::getInstance()->getDeltaPosition().x, j * 105 + CScrollManager::getInstance()->getDeltaPosition().y, 105, 105);

			if (r.containsPoint(touchPos))
			{
				setPos = ccp(r.getMidX(), r.getMidY());
				rect = r;
			}
		}
	}

	for (int i = 0; i < arr->getSize(); i++)
	{
		auto anothersprite = arr->getObjectAt(i)->getSpritePtr();

		if (rect.intersectsRect(anothersprite->getBoundingBox()))
			bIsEnable = false;
	}

	avaliablePos = setPos;
	return bIsEnable;
}
Esempio n. 2
0
CCRect Player::collisionBoundingBox() {
	CCRect collisionBox = this->boundingBox();
	CCPoint diff = ccpSub(this->desiredPosition, this->getPosition());
	CCRect returnBoundingBox;
	returnBoundingBox.setRect(collisionBox.getMinX() + diff.x, collisionBox.getMinY() + diff.y, collisionBox.getMaxX()-collisionBox.getMinX(), collisionBox.getMaxY()-collisionBox.getMinY());
	return returnBoundingBox;
	//  return CCRect::intersectsRect(this->boundingBox, 2, 0);
}
Esempio n. 3
0
void CGameMessage::showHp()
{
	int iHp = CGameManager::getPlayer()->getHp();
	int iHpMax = CGameManager::getPlayer()->getHpMax();
	CCRect rect;
	rect.setRect(m_fMinX, m_fMinY, m_iWidth*(float)iHp/iHpMax, m_iHeight);
	m_pHp->setTextureRect(rect);
}
Esempio n. 4
0
CCObject* CCRect::copyWithZone(CCZone* pZone)
{
    CCRect* pRet = new CCRect();
    pRet->setRect(this->origin.x, this->origin.y, this->size.width, this->size.height);
    return pRet;
}
void GameShare_Score::setScore(long var)
{
    score = var;
    mpCounterImage->setNumber(score,true);
    long temp = score;
    //位数,用于设置横坐标偏移量.
    int digit = 0;
    scroeSprite->removeAllChildren();
    
    while (temp>0 || (digit==0 && temp==0)) {
        int remainder = temp % 10;
        temp = temp/10;
        CCSprite *m_Sprite = CCSprite::create();
        CCRect rc;
        switch(remainder)
        {
            case 0:
            {
                rc.setRect(1694, 972, 70, 70);
                break;
            }
            case 1:
            {
                rc.setRect(1, 1279, 47, 85);
                break;
            }
            case 2:
            {
                rc.setRect(337, 1054, 68, 86);
                break;
            }
            case 3:
            {
                rc.setRect(1687, 1417, 69, 84);
                break;
            }
            case 4:
            {
                rc.setRect(401, 1691, 71, 83);
                break;
            }
            case 5:
            {
                rc.setRect(1699, 105, 70, 85);
                break;
            }
            case 6:
            {
                rc.setRect(981, 1714, 69, 91);
                break;
            }
            case 7:
            {
                rc.setRect(359, 897, 64, 85);
                break;
            }
            case 8:
            {
                rc.setRect(348, 1517, 72, 88);
                break;
            }
            case 9:
            {
                rc.setRect(191, 1699, 65, 91);

                break;
            }
            default:
            {
                break;
            }
        }

        m_Sprite = GameShare_Texture::sharedTexture()->GetSpriteByCCRect(akoopang_image, rc);
        m_Sprite->setScaleX(xValue / rc.size.width);
        m_Sprite->setScaleY(yValue / rc.size.height);
        m_Sprite->setPosition(ccp((digit+(digit/3))*(-20), 0));
        scroeSprite->addChild(m_Sprite);
        if (digit%3==0 && digit>0) {
            CCSprite *comma = GameShare_Texture::sharedTexture()->GetSpriteByCCRect(akoopang_image, CCRect(252, 1076, 32, 36));
            comma->setScale(0.5);
            comma->setPosition(ccp(m_Sprite->getPositionX()+20, -20));
            scroeSprite->addChild(comma);
        }
        digit++;
    }
    scroeSprite->setPosition(ccp(digit*12 - 17, -25));
}
Esempio n. 6
0
bool StageSelect::init(){
	if ( !CCLayerColor::initWithColor( ccc4( 0xff, 0xff, 0xff, 0xff ) ) ){
		return false;
    }
	scheduleUpdate();

	//クリアステージの読み込み
	mUserDefault = CCUserDefault::sharedUserDefault();

	CCSprite* spriteBack = CCSprite::create( "image/stageBack.png" );
	CCSize winSize = CCDirector::sharedDirector()->getWinSize();
	spriteBack->setPosition( ccp( winSize.width / 2, winSize.height / 2 ) );
	addChild( spriteBack );

	mNumStage = 21;

	mButtons = new CCMenu*[ mNumStage ];
	mNumLeftSprites = new CCSprite*[ mNumStage ];
	mNumRightSprites = new CCSprite*[ mNumStage ];
	mCheckSprite = new CCSprite*[ mNumStage ];
	CCTexture2D* numberTex = CCTextureCache::sharedTextureCache()->addImage( "image/number.png" );
	for ( int i = 0; i < mNumStage; i++ ){
		CCMenuItemImage* item = CCMenuItemImage::create( "image/stagebutton_0.png", "image/stagebutton_1.png", this, menu_selector( StageSelect::stageSelectCallback ) );
		item->setTag( i );

		mButtons[ i ] = CCMenu::create( item, NULL );

		float x = mButtonListLeft + i * mButtonIntervalX;
		float y = mButtonListUp + ( i % 2 ) * mButtonIntervalY;
		ScreenConverter::toLeftUp( &y );

		mButtons[ i ]->setPosition( ccp( x, y ) );

		addChild( mButtons[ i ] );

		//クリアチェック
		mCheckSprite[ i ] = CCSprite::create( "image/clear_check.png" );
		mCheckSprite[ i ]->setPosition( ccp(x,y) );
		addChild(mCheckSprite[ i ]);
		CCString* keyStr = CCString::createWithFormat( "stageCleared%d", i ) ;
		if(!mUserDefault->getBoolForKey(keyStr->getCString(),false)){
			mCheckSprite[ i ]->setVisible( false );	
		}

		int n = i + 1;
		CCRect rect;
		rect.setRect( ( n % 10 ) * 32, 0, 32, 32 );
		mNumRightSprites[ i ] = CCSprite::createWithTexture( numberTex, rect );

		rect.setRect( ( n / 10 ) * 32, 0, 32, 32 );
		mNumLeftSprites[ i ] = CCSprite::createWithTexture( numberTex, rect );

		mNumRightSprites[ i ]->setPosition( ccp( x + 16, y ) );
		mNumLeftSprites[ i ]->setPosition( ccp( x - 16, y ) );

		addChild( mNumRightSprites[ i ] );
		addChild( mNumLeftSprites[ i ] );

		
	}

	mPlayerA = CCSprite::create( "image/ship_stage.png" );
	mPlayerB = CCSprite::create( "image/ship_stage.png" );

	mPlayerA->setPosition( ccp( -100.0f, 90.0f ) );
	mPlayerA->setRotation( 90 );
	mPlayerB->setPosition( ccp( winSize.width + 100.0f, winSize.height - 90.0f ) );
	mPlayerB->setRotation( -90 );

	addChild( mPlayerA, 1 );
	addChild( mPlayerB, 1 );

	for ( int i = 0; i < 5; i++ ){
		mRipplesA[ i ] = new Ripple( -30 * i - 1, true );
		mRipplesA[ i ]->setParent( this, 0 );
		mRipplesB[ i ] = new Ripple( -30 * i - 1, true );
		mRipplesB[ i ]->setParent( this, 0 );
	}
	
	setTouchMode( kCCTouchesOneByOne );
	setTouchEnabled( true );
	mIsTouch = false;

	mOnSequence = false;
	mTimeCount = 0;

    return true;
}