Практично ли переносить код с Flash на C #? - PullRequest
2 голосов
/ 07 января 2011

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

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

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

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

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

Ответы [ 3 ]

4 голосов
/ 07 января 2011

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

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

0 голосов
/ 07 января 2011

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

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

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

  • Визуализация линий из начальных / конечных координат

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

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

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

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

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

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

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

0 голосов
/ 07 января 2011

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

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

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

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

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

Для начала ознакомьтесь со следующими ссылками:

...