2016-02-04 2 views
0

Привет народа от StackOverflow !,Создания небольшой миниигры C# и пользовательские рамок

я делаю небольшую мини-игру с пользовательской базой, которая работает с C# и это как-то на основе XNA (в случае, если вы можете мне помочь, пишите это xna-way).

В принципе, у меня есть несколько кругов, скажем, 6, мне нужно «отметить» первый, после этого, после щелчка на прозрачном, мне нужно создать еще один, но, щелкнув последний, помеченный, он пойдет назад и удалите один (изображение легче понять).

Я загружу небольшое изображение, чтобы проиллюстрировать (трудно объяснить, я не являюсь носителем английского языка).

я считаю, что я должен использовать массив и отметьте его в зависимости от того, но я до сих пор kindda потерял :(

Извините, если это слишком много, чтобы спросить, я пытался весь день! п.с. : это один ряд Image: http://imgur.com/B2zdf5q

Update:. это то, что «ив получил до сих пор, и теперь он работает !!

private void CircleController() 
{ 
    Debug.Log("Marked circles:" + markedCircles); 
    Debug.Log("Sum Circles: " + sumCircle); 

    List<CGameObject> mArray = CCircleManager.inst().getGameObjectList(); 

    for (int i = 0; i < mArray.Count; i++) 
    { 
     CCircle aCircle = mArray[i] as CCircle; 

     if (aCircle.getOrder() < sumCircle) 
     { 
      aCircle.setMarked(true); 

     } 
     else 
     { 
      aCircle.setMarked(false); 

     } 


    } 


    for (int i = 0; i < mArray.Count; i++) 
    { 

     CCircle aCircle = mArray[i] as CCircle; 
     CCircle initCircle = mArray[0] as CCircle; 

     if (aCircle.getOrder() == sumCircle) 
     { 
      aCircle.setPostSelected(true); 
     } 

     if (aCircle.getOrder() != sumCircle) 
     { 
      aCircle.setPostSelected(false); 
     } 
     if (aCircle.collides(mPointer) && CMouse.firstPress() && !aCircle.isMarked()) 
     { 
      markedCircles++; 
      sumCircle++; 

     } 
     if (aCircle.collides(mPointer) && CMouse.firstPress() && aCircle.isMarked()) 
     { 
      markedCircles--; 
      sumCircle--; 

     } 

    } 
} 
+2

Вы должны отредактировать и показать минимальным образом * то, что вы пытались. В противном случае вы будете заброшены в забвение. – Will

+0

Я не сделал резервную копию класса, но я хочу настроить и попытаться сделать это. – necrolords66

ответ

0

это может сделать, чтобы просто целое число circlesMarked Сохранение количества кругов в поле зрения. Если circlesMarked == 0, тогда отобразите свою первую строку (в связанном изображении), если circlesMarked == 1 затем отобразите один отмеченный круг с одним прозрачным кругом справа и так далее. Это можно сделать с помощью цикла for.

Сохраните местонахождение последнего (самого правого) отмеченного круга (если применимо) и расположения прозрачного круга, чтобы вы знали, где обращаться с кликами. Затем просто добавьте или вычтите 1 от circlesMarked в зависимости от того, где они нажимают. Метод Render XNA должен соответствующим образом обновлять представление, и у вас есть переменная, содержащая количество отмеченных в настоящий момент кругов.

+0

Я попробую, это единственная строка на самом деле – necrolords66

+0

Является ли прозрачный круг новым спрайтом или другим кругом? – necrolords66

+0

Либо должно быть хорошо. Я думаю, что XNA позволяет вам установить непрозрачность, поэтому вы, вероятно, могли бы использовать существующий спрайт, если хотите. –

Смежные вопросы