コード例 #1
0
void CTangImageData::SetSelected(const TInt& aIndex)
	{
	iElements[iSelectedIndex]->SetSelected(EFalse);
	iElements[aIndex]->SetSelected(ETrue);						
	iSelectedIndex = aIndex;	
	
	ChangeLayer();
	}
コード例 #2
0
/* 
======================================									
Input for "editing" mode
====================================== 
*/
void Listener::ListenEditing()
{
	// -------------------- Text ------------- 

	strcat (mText, mLayerName);
	mResources->GetFontEntity	()->setText (mText);

	// -------------------- Brush position ------------- 

	// Here we calculate the position of the brush. We first translate it to the origin (the screen center)
	// then we scale it using the zooming factor. Finally we translate it back to the camera position
	// You should use the zoom and coordiante for the specific layer you are editing // (Fixed by Metadon)

	// old version of the brush version supplied by Metadon
	//switch (mLayer)
	//{
	//	case 0:
	//		mPosBrushX = ( ( mMouseX - (mScreenWidth  / 2) ) * ( 1 / (mCameraB->GetZoom()) ) )  + mCameraB->getPosX();
	//		mPosBrushY = ( ( mMouseY - (mScreenHeight / 2) ) * ( 1 / (mCameraB->GetZoom()) ) )  + mCameraB->getPosY();	
	//		break;
	//	case 1:	
	//		mPosBrushX = ( ( mMouseX - (mScreenWidth  / 2) ) * ( 1 / (mCameraN->GetZoom()) ) )  + mCameraN->getPosX();
	//		mPosBrushY = ( ( mMouseY - (mScreenHeight / 2) ) * ( 1 / (mCameraN->GetZoom()) ) )  + mCameraN->getPosY();
	//		break;
	//	case 2:		
	//		mPosBrushX = ( ( mMouseX - (mScreenWidth  / 2) ) * ( 1 / (mCameraM->GetZoom()) ) )  + mCameraM->getPosX();
	//		mPosBrushY = ( ( mMouseY - (mScreenHeight / 2) ) * ( 1 / (mCameraM->GetZoom()) ) )  + mCameraM->getPosY();
	//		break;
	//	default:	
	//		mPosBrushX = ( ( mMouseX - (mScreenWidth  / 2) ) * ( 1 / mCameraZoomLayers ) )  + mCameraLayersX;
	//		mPosBrushY = ( ( mMouseY - (mScreenHeight / 2) ) * ( 1 / mCameraZoomLayers ) )  + mCameraLayersY;
	//		break;
	//}


	// new version supplied of the brush position supplied by Ratata : read more http://indielib.com/forum/viewtopic.php?f=13&p=2472&sid=691d012b25a214b8a09c4fa8dbf22727#p2472
	switch (mLayer)
	{
		case 0:   
			mPosBrushX = ((mMouseX / 32) * 32)-(mScreenWidth/2) +  mCameraLayersX;
			mPosBrushY = ((mMouseY / 32) * 32)-(mScreenHeight/2) + mCameraLayersY;
			break;
      		case 1:   
			mPosBrushX = ((mMouseX / 32) * 32)-(mScreenWidth/2) +  mCameraLayersX;
			mPosBrushY = ((mMouseY / 32) * 32)-(mScreenHeight/2) + mCameraLayersY;
			break;
		case 2:     
			mPosBrushX = ((mMouseX / 32) * 32)-(mScreenWidth/2) +  mCameraLayersX;
			mPosBrushY = ((mMouseY / 32) * 32)-(mScreenHeight/2) + mCameraLayersY;
			break;
		default:   
			mPosBrushX = ((mMouseX / 32) * 32)-(mScreenWidth/2) +  mCameraLayersX;
			mPosBrushY = ((mMouseY / 32) * 32)-(mScreenHeight/2) + mCameraLayersY;
			break;
	}


	// Sets mouse position and scale in the brush position
	mResources->GetMouseEntity()->setPosition	(mPosBrushX, mPosBrushY, 1);
	mResources->GetMouseEntity()->setScale		(1 / mCameraZoomLayers, 1 / mCameraZoomLayers);


	// -------------------- Check collisions between the mouse an the backdrop images of the current layer --------------------

	// We are currently making a backdrop transformation
	if (mIsTranslatingBackDrop || mIsRotatingBackDrop || mIsScalingBackDrop || mIsTintingBackDrop)
	{
		ListenHoverBackDrop ();
	}
	// Only check collisions if we are not already making a transformation over a backdrop
	else
	{
		// Check a collision between the mouse a node
		Node *mNewBackDropNodeOver = CheckMouseCollisions (mLayer);

		// The cursor is over a backdrop image 
		if (mNewBackDropNodeOver)
		{ 
			// New backdrop
			if (mNewBackDropNodeOver != mBackDropNodeOver)
			{
				if (mBackDropNodeOver)
					mBackDropNodeOver->GetEntity()->showGridAreas (false);
				mBackDropNodeOver = mNewBackDropNodeOver;
			}

			// Show red rectangle
			mBackDropNodeOver->GetEntity()->showGridAreas (true);

			// Hide backdrop brush 
			mBackDropBrushes [mCurrentBackDropBrush].mEntity.setShow (false);

			// Listen for possible changes that the selected backdrop can suffer
			ListenHoverBackDrop ();
		}
		// The cursor is not over any backdrop (brush mode por droping images)
		else
		{
			if (mBackDropNodeOver)
				mBackDropNodeOver->GetEntity()->showGridAreas (false);

			// Show backdrop brush 
			mBackDropBrushes [mCurrentBackDropBrush].mEntity.setShow (true);

			// Listen for switching between backdrop images on the brush, drop them in the map, etc
			ListenBackDropBrush ();
		}
	}

	// -------------------- Switch between layers --------------------

	// Parallax layer (b, n, m)
	if (mI->_input->onKeyPress (IND_B)) ChangeLayer (0, "Layer B (1st Parallax Layer)");
	if (mI->_input->onKeyPress (IND_N) && !mI->_input->isKeyPressed (IND_LCTRL)) ChangeLayer (1, "Layer N (2nd Parallax Layer)");
	if (mI->_input->onKeyPress (IND_M)) ChangeLayer (2, "Layer M (3rd Parallax Layer)");

	// Layers 1-9
	if (mI->_input->onKeyPress (IND_1)) ChangeLayer (3, "Layer 1 (Tiled surfaces)");
	if (mI->_input->onKeyPress (IND_2)) ChangeLayer (4, "Layer 2");
	if (mI->_input->onKeyPress (IND_3)) ChangeLayer (5, "Layer 3");
	if (mI->_input->onKeyPress (IND_4)) ChangeLayer (6, "Layer 4");
	if (mI->_input->onKeyPress (IND_5)) ChangeLayer (7, "Layer 5");
	if (mI->_input->onKeyPress (IND_6)) ChangeLayer (8, "Layer 6");
	if (mI->_input->onKeyPress (IND_7)) ChangeLayer (9, "Layer 7");
	if (mI->_input->onKeyPress (IND_8)) ChangeLayer (10, "Layer 8");
	if (mI->_input->onKeyPress (IND_9)) ChangeLayer (11, "Layer 9");

	// Dark layer (j)
	if (mI->_input->onKeyPress (IND_J)) ChangeLayer (12, "Layer J (Dark Layer)");
}