2013-08-13 6 views
0

Как сделать камеру RTS так, чтобы, когда мышь находится на краю окна, она будет перемещаться либо влево/вправо, либо вверх/вниз. Я пытался создать невидимый бокс в боковой части экрана, чтобы, когда мышь находится в коробке, он будет перемещать камеру, но она все еще не работает. Пожалуйста помоги!XNA 4.0 RTS-камера

+0

Укажите код –

+0

вы можете сделать с помощью позиции курсора мыши. mouseX от 0 до 20 (левый край экрана) –

+0

может дать мне пример или учебник? – user2640299

ответ

0

Основываясь на том, что сказал @Davor Mlinaric, используя координаты мыши x и y (которые могут быть получены из Mouse.GetState()) и проверяют, входят ли эти координаты в верхнюю, нижнюю и боковые стороны экрана , Было бы хорошим началом, чтобы установить, где эти коробки будут что-то вдоль линий:

GraphicsDevice.Viewport.Width/Height -/+ offset 

Где смещение сумма расстояния от верхней, нижней или боковой. Затем проверьте, где находится позиция мыши, с булевым.

boolean inTheZone = false; 

//Bottom Box 
if(Mouse.GetState().Y > GraphicsDevice.Viewport.Height - offset) 
{ 
    //Move camera in the y axis downwards (+). 
    inTheZone = true; 
} 
else 
{ 
    inTheZone = false; 
} 

а затем то же самое для 4 оставшихся сторон. Уведомление ив также используется Y здесь, в зависимости от того, как настроить камеру это может измениться до Z.

Я надеюсь, что это помогает