2014-01-26 6 views
0

Я работаю над своей первой игрой на C#. В настоящее время я использую winforms для пользовательского интерфейса, но я хочу изменить его на Xaml для Windows 8.1, как только у меня получится все изломы дизайна игры.Способы создания объекта вокруг плавающего вокруг контейнера

Текущая проблема, которую я ищу, - это то, как лучше всего добраться до 12 объектов, которые могут перемещаться внутри контейнера, который может иметь переменный размер. Объекты - это все кнопки в настоящее время, поэтому здесь не участвует ни один 3d. Я намерен для объектов в основном просто перемещаться по плавному рисунку, начиная с случайного направления. На данный момент меня не интересует столкновение, за исключением сторон контейнера, хотя я хотел бы иметь дело с этим больше в будущем.

Я не думаю, что все будет так сложно написать что-то, чтобы справиться с движением, которое я бы хотел. Но я бы подумал, что игры на основе спрайтов были так долго, что, возможно, есть некоторые библиотеки, возможно, даже в .NET Framework, которые могли бы сделать это проще. В будущем я также хотел бы иметь конкретные пути движения.

Есть ли что-нибудь подобное или мне лучше просто придумать свои собственные методы?

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

Если вы уже знаете, что в будущем вы перейдете на XAML, зачем беспокоиться о бесполезных winforms? он ничего не поддерживает и заставит вас куча бесполезных HACKS, которые бесполезны в XAML-технологиях. Вместо этого используйте WPF и забудьте winforms навсегда. Таким образом, вы сможете в конечном итоге повторно использовать LOT XAML и большую часть своей логики прикладного интерфейса (внутри ViewModels) в других технологиях. –

+0

Я приветствую комментарии о winforms. Хотя я действительно воспитывал winforms, вопрос действительно не в этом. Все, что я упомянул о winforms и Xaml, в основном касается фоновой информации. Мой вопрос в том, что может быть лучшим способом для меня, чтобы объекты перемещались внутри контейнера. – Jazzeroki

ответ

0

Если вы хотите использовать Windows Forms в качестве интерфейса пользовательского интерфейса, вам нужно будет реализовать большинство этих методов самостоятельно.

Вы можете создать класс, который обертывает элементы управления Windows Forms и обеспечивает скорость и направление их.

Несколько лет назад я создал тест, похожий на Breakout, используя WindowsForms и некоторый код в качестве примера:

class BallClass 
    { 
     public int XSpeed = 5; 
     public int YSpeed = 5; 
     public RadioButton Control; 
     //Updated Tick expects as width and height the values of the container. 
     public void UpdateTick(int width, int height) 
     { 
      Point p = new Point(); 
      p.X = Control.Location.X + this.XSpeed; 
      p.Y = Control.Location.Y + this.YSpeed; 
      if (p.X > (width - Control.Width)) 
      { 
       p.X = (width - Control.Width); 
       XSpeed = -XSpeed; 
      } 
      else if (p.X < 0) 
      { 
       p.X = 0; 
       XSpeed = -XSpeed; 
      } 

      if (p.Y > (height - Control.Height)) 
      { 
       p.Y = (height - Control.Height); 
       YSpeed = -YSpeed; 
      } 
      else if (p.Y < 0) 
      { 
       p.Y = 0; 
       YSpeed = -YSpeed; 
      } 
      Control.Location = p; 
     } 
    } 

Тогда метод UpdateTick был вызван внутри таймера с разрешением 10мс:

Ball.UpdateTick(this.Width, this.Height); 

Вы также можете обнаруживать пересечения, создавая прямоугольники, формируя координаты и размеры элементов управления пользователя:

Итак, можно создать игру с использованием оконных форм, но производительность довольно плохая, как только вы начнете использовать много объектов на экране и перемещаете их. Я не думаю, что есть определенные игровые среды, но для тестирования вы можете написать базовый код и попробовать.

+0

Спасибо, что это очень информативно. Конечная игра, которую я хочу сделать, не будет написана в winforms. Я просто использую его сейчас, так как это интерфейс пользовательского интерфейса, который я знаю лучше всего. Мои текущие мысли - сделать игру, которую я хочу выпустить на Windows 8, будут в WPF Xaml. Не так много объектов. Если для этого лучше подходит интерфейс пользовательского интерфейса, пожалуйста, дайте мне знать. Я не хочу слишком сильно отклоняться от своего первоначального вопроса, хотя из того, какие библиотеки или рамки были бы лучше для меня. – Jazzeroki

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