2011-01-07 4 views
2

Моя цель - лучше понять характеристики C# и стать более удобными, создавая простые приложения. Я достаточно компетентен с Flash (Actionscript 3) и нашел старую игру Tic-Tac-Toe, которую я написал. Я начал задаваться вопросом о переносе этого кода в приложение C#. Не зная о C#, мне интересно, насколько сложной будет миграция.Насколько практичен код порта от Flash до C#?

С одной стороны, логика основной игры синтаксически подобна, и поэтому ее легко переносить.

Однако, что касается графики, я даже не знаю с чего начать. До сих пор я только показал себя на Windows Forms и консольные приложения на C#.

Я интересно, если эти Flash-концепции имеют схожие аналоги в C#, или если процедуры и синтаксис радикально отличается:

  • Размещение графических элементов на этапе
  • Rendering линии от начала/конечных координат
  • Приемники событий на видеоклипы
  • подкачки изображения внутри графического элемента (или, в моем флэше-версии, nextFrame() в мувиклипе)
+0

Было бы уместнее сказать «ActionScript to C#» и/или «Flash to Silverlight». ActionScript и C# - это языки. Flex/Flash и Silverlight - это среда представления. –

ответ

4

Возможно, вы захотите попробовать создать свою маленькую игру, используя Silverlight. Приложения Silverlight, закодированные с использованием C# и Xaml, довольно похожи по форме с флеш-приложениями, и вы должны найти все, что вам нужно, без проблем.

Поэтому я предлагаю вам скачать Silverlight SDK (бесплатно) и попробовать.

+1

+1 Silverlight будет хорошим segway в C# для разработчика Flash. –

+0

Мне интересно создавать автономные исполняемые приложения с помощью WPF. Является ли Silverlight хорошим шагом в этом направлении? – Jake

+0

Да, это так. На самом деле Silverlight очень похож на WPF, только легче (меньше членов в каждом классе, только самые полезные). Вы даже можете сделать из приложений браузера Silverlight. – Falanwe

0

Во-первых, Flash - это WPF (достаточно близко), поскольку ActionScript - это C#.

Модель WPF/Silverlight намного больше похожа на Flex, чем на Flash. Все добавляется к дереву пользовательского интерфейса как к объекту, даже к линиям.

Аналогичным образом добавление обработчиков событий к элементам управления (например, нажатие кнопки) может выполняться в «коде позади» (код, который живет с представлением), но рекомендуется использовать шаблон MVVM. Если вы новичок в концепциях разделения проблем и модульного тестирования, не стесняйтесь начинать с более простого метода «code behind».

Хотя WPF и Silverlight очень похожи, я бы рекомендовал начать с Silverlight в качестве SDK, и доступные образцы богаче. Вы можете легко перейти на WPF позже (хотя перенос приложения из Silverlight в WPF не выполняется автоматически).

Обмен изображениями, как вы упомянули, будет выполняться через «Визуальные состояния» в Silverlight (или, возможно, сменять ссылку на изображение, которая более «хакерская»).

Взгляните на следующие ссылки для начала работы:

0

Если вы ищете специально, чтобы сделать игры и например, вы можете заглянуть в бесплатную инфраструктуру XNA.Тем не менее, будут различия, поскольку Flash дает вам гораздо больше возможностей «заранее настроить» вещи и изменить их.

  • Размещение графических элементов на сцене

    Если вы идете маршрут XNA, вы будете рисовать спрайты с помощью SpriteBatch, вы говорите им, где и как рисовать, и где они будут идти

  • Rendering линия от начала/конца координат

    В победе формами dows вы можете сделать это с помощью простого вызова System.Drawing, однако, если вы хотите сделать это в XNA, вам придется либо сделать квадрат в 1 пиксель, либо растянуть/повернуть его к тому, что вы хотите, или использовать 3D-примитивы (хотя это ограничит вас 1 пиксель линии а)

  • слушателей событий на видеоклипах

    Посмотрите в делегат, но есть на самом деле не эквивалент видеоклипов к моему знанию

  • Перемещение изображения внутри графического элемента t (или в моей версии Flash nextFrame() в мувиклипе)

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

В целом, это не так уж плохо, но если это не звучит привлекательным чек Silverlight. Это в основном флэш-память C#, так что переход может быть проще.

Удачи и надеюсь, что это поможет.