Exemple #1
0
void WordPuzzleLayer::arrangeComponents(const char* word, CCArray* boxArray, CCArray* alphabetArray)
{
	float widthOfBlock = this->getBoxImage()->getContentSize().width;

	//modified by YoungJae Kwon
#if (defined PD_IPHONE)
	float paddingOfCharacter = (585.00/2.0f - 56.00/2.0f) / 6.0f - widthOfBlock;
#elif (defined ANDROID_PHONE)
	float paddingOfCharacter = 111 - 48 - widthOfBlock;
#else
	float paddingOfCharacter = (105) - widthOfBlock;
#endif
	
	int numberOfCharacter = strlen(word);
	float firstX = this->getContentSize().width/2 - (paddingOfCharacter + widthOfBlock) / 2 * (numberOfCharacter - 1);
	

	
	for (int i=0; i<boxArray->count(); i++) {
		CCSprite* blockSprite = (CCSprite*) boxArray->objectAtIndex(i);
		blockSprite->setPosition(ccp(firstX + (widthOfBlock + paddingOfCharacter) * i, blockY));
	}
	
	for (int i=0; i<alphabetArray->count(); i++) {
		LCWordPuzzleAlphabet* alphabetSprite = (LCWordPuzzleAlphabet*) alphabetArray->objectAtIndex(i);
		alphabetSprite->setPosition(ccp(firstX + (widthOfBlock + paddingOfCharacter) * i, alphaY+(rand() % maxShift)) );
		alphabetSprite->setOriginalPosition(alphabetSprite->getPosition());
	}
	
	// suffle alphabets
	this->shuffleSprites(alphabetArray);
}
Exemple #2
0
void LCWordPuzzleGame::shuffleSprites(CCArray* alphabetSpriteArray)
{
	CCArray *tempArray = CCArray::arrayWithArray(alphabetSpriteArray);
	CCPoint *tempPosition = (CCPoint *)malloc(sizeof(CCPoint) * alphabetSpriteArray->count());
	
	for (int i=0; i<alphabetSpriteArray->count(); i++) {
		LCWordPuzzleAlphabet* alphabetSprite = (LCWordPuzzleAlphabet*)tempArray->randomObject();
		tempArray->removeObject(alphabetSprite);
		
		tempPosition[i] = alphabetSprite->getPosition();
	}
	
	for (int i=0; i<alphabetSpriteArray->count(); i++) {
		LCWordPuzzleAlphabet* alphabetSprite = (LCWordPuzzleAlphabet*)m_pCharacterSprites->objectAtIndex(i);
		alphabetSprite->setPosition(tempPosition[i]);
		alphabetSprite->setOriginalPosition(tempPosition[i]);
	}
	
	free(tempPosition);
}