Переходи на C#(после vb.net на него попроще будет) и потом xna
Dimir
Спасибо за совет, подумаю.
п.с. В чем сила СиШарпа? XNA хороший граф. двиг?
п.с. Вб.нет не знаю, знаю vb6
А в VB разве нет метода для формы типо - OnPaint как в C#?
XNA - это не движок, это что-то среднее между API и готовым движком. То-есть сам по себе он работает как чисты API, но в нем уже есть куча готовых, удобных классов, налажена загрузка контента, игровой цикл, работа с спрайтами и т.д.
А сила C# в том что он предельно удобный, но функционал у него от этого абсолютно не страдает(Чем-то похож на VB.NET(тоесть это VB.NET чем-то похож на C#), но синтаксис у него достаточно C++ный ).
SadPanda
Хм.. можно поподробнее о C#? Хочу язык, простой, т.е. не навороченный кучей не нужных вещей (например как vb 2010). Как обстоят дела с массивом элементов в СиШарпе? Их можно создавать во время проектирования? (спрашиваю, т.к. в вб.нет нельзя, можно только через код, а это зачастую не дуобно).
FireDay,
посмотри в сторону языка программирования actionscript 3.0, на нем пишут под флеш. Компилируется в .swf файл который содержит в себе ресуры (графика, звук, шрифты, ...etc, а так же непосредственно сам код, который выполняется виртуальной машиной флеш плеера). Для разработки приложений под флеш надо:
1. компилятор (mxmlc, входит в опен сорц flex sdk) (надо будет java runtime для запуска)
2. текстовый редактор или IDE (notepad++, платный Flash Builder 4.5, опен сорц FlashDevelop, ...etc)
3. сам флеш плеер (либо плагин для браузера, либо стенд алон (projector) для винды), обязательно debug версия
4. желательно, но не обязательно, платная Flash IDE CS 3+ для создания графики. (код в ней писать можно, но не нужно)
5. ...
6. PROFIT
для изометрии уже есть готовый двиг: as3 iso lib
coding conventions
adobe developers network
actionscript 3.0 reference
если новичок в программинге, то книга Колина Мука подойдет.
FireDay
> SadPanda
> Хм.. можно поподробнее о C#? Хочу язык, простой, т.е. не навороченный кучей не
> нужных вещей (например как vb 2010).
Понятие сложный это очень размыто. Реально сложный это брэйн фак или ассемблер(и то не факт), хотя в них как раз ничего не навороченно, тоесть совсем. А что C++,что шапр, что VB - все одно(они все Cиподобные). Просто в вб,насколько я помню, можно 100 лет писать не создав ни одной ф-ции. В шарпе и ++се конечно тоже можно,но там с этим сложнее.
>Как обстоят дела с массивом элементов в
> СиШарпе? Их можно создавать во время проектирования? (спрашиваю, т.к. в вб.нет
> нельзя, можно только через код, а это зачастую не дуобно).
И что значит создавать массивы не кодом?
А как еще?
Я могу себе представить только кнопкой, да и то все к коду сведется.
FireDay
> Хочу язык, простой, т.е. не навороченный кучей не нужных вещей
Возможно тебе понравиться Python. И под него куча разных библиотек
Ps-spectre
Спасибо большое за такой ответ.
Посмотрел ссылки, почитал... столько всего... Это все обязательно?
У меня сейчас такая проблема:
Я хотел начать делать карту (т.е создание карты) и возможность размещения на ней обьектов.
Но возникла одна проблема:
Приходится каждый раз производить много действий с прорисовкой, то есть:
Я рисую карту в отдельный спрайт - фоновый спрайт (и больше этот спрайт не изменяю)
Потом я меняю кадр во всех анимацих. Затем я вывожу сперва фоновый спрайт, потом анимации от дальних к ближним, и прорисовываю это все в общий спрайт, только после чего вывожу на монитор.
Получается очень гиморно.... С трудом представляю как делать подобным образом анимации ударов/выстрелов/магии для персонажей...
Можно ли как-то сделать так:
Один раз нарисовал карту и все. А все остальные обьекты (деревья, персонажи и т.п.) выводятся во 2ой слой и очищаю я 2ой слой, не трогая карту. То есть карту перерисовывать мне не надо, и Анимацаю для персонажей руками двигать мне не надо, а тупо поставл персонажа и все, анимация его сама работает без перерыва. Есть такой вариант???
Кстати, у меня еще вот такой вопрос:
Предположим у меня есть анимация удара мечом: http://s017.radikal.ru/i402/1111/8f/bd8c4991f0a3.gif
Я хочу заменить мач на другой, при этом сохранив его движение (т.е. не делать кучу анимаций для каждого меча, а одну общую, после чего подставлять в нее нужный обьект), как это возможно сделать и в какой среде?
Aslan
> Обратится к содержимому битмапа как к массиву байт, на C, Delphi это быстро, на
> VB все равно время съест сам цикл (интерпретатор же)
Боже... он уже 15 лет, как не интерпретатор. Скорость та же, что у Дельфи.
FireDay
> можно поподробнее о C#? Хочу язык, простой, т.е. не навороченный кучей не
> нужных вещей (например как vb 2010).
C# сложнее, чем vb 2010 хотя бы тем, что придётся постоянно приводить типы. А так языки очень близки, если тебе vb 2010 кажется сложным, то C# проще не покажется.
FireDay
> Затем я вывожу сперва фоновый спрайт, потом анимации от дальних к ближним, и
> прорисовываю это все в общий спрайт
А чем отличается "вывожу" от "прорисовываю это все в общий спрайт"? Это одно действие, его не нужно делать дважды.
FireDay
> Я хочу заменить мач на другой, при этом сохранив его движение (т.е. не делать
> кучу анимаций для каждого меча, а одну общую, после чего подставлять в нее
> нужный обьект), как это возможно сделать и в какой среде?
Внимательно изучи пример с анимацией, там это уже сделано. Только вынеси фазу анимации (Phase) из класса в основную форму, и можно будет выводить сколько угодно экземпляров анимации одновременно с разными фазами.
Если тебе даже vb6+SR2D кажется сложным, то проще будет разве что использовать не ЯП+двиг, а конструктор.
Mikle
> А чем отличается "вывожу" от "прорисовываю это все в общий спрайт"? Это одно
> действие, его не нужно делать дважды.
Не правильно выразился. не вывожу, а прорисовываю в общий спрайт, после чего вывожу общий спрайт.
Mikle
> Внимательно изучи пример с анимацией, там это уже сделано. Только вынеси фазу
> анимации (Phase) из класса в основную форму, и можно будет выводить сколько
> угодно экземпляров анимации одновременно с разными фазами.
> Если тебе даже vb6+SR2D кажется сложным, то проще будет разве что использовать
> не ЯП+двиг, а конструктор.
Мне это кажется сложным, так как много чего не понятно, прихоится самому разбираться, лазить в коде, смотреть что как рабтает и т.д., а это трудно (мб для кого-то и легко, но не для меня), долго и очень раздражает (так как догоняю с большим трудом и далеко не все).
Пример с анимацией я изучаю и пытаюсь понять, как это работает, но все же остались неясными многие аспекты.
Про меч я иммел в виду то, что я хочу сохранить движение анимации (не движении в программном плане, а движение обеькта в самой анимации), а рисунок заменить.
FireDay
> Про меч я иммел в виду то, что я хочу сохранить движение анимации (не движении
> в программном плане, а движение обеькта в самой анимации), а рисунок заменить.
С трудом понимаю смысл написанного...
Не существует какого-то "волшебного" движения, любое движение задаётся программно, если ты будешь использовать анимированный GIF, это не значит, что он сам по себе будет двигаться, это придётся делать тебе, либо использовать движок, в котором просто всё это от тебя спрятано.
FireDay
> Я рисую карту в отдельный спрайт - фоновый спрайт (и больше этот спрайт не изменяю)
Скорее битмап, ведь позади карты ничего нет? Карта сама большая? Лучше собирать из частей
> Потом я меняю кадр во всех анимацих
счетчик+1
> потом анимации от дальних к ближним
т.е. клетки сверху вниз?
> Получается очень гиморно....
По описанию так не скажешь. Может у тебя много копи-пасты кода?
> С трудом представляю как делать подобным образом анимации ударов/выстрелов/магии для персонажей...
Анимация же уже сделана? В чем проблема, менять ее в зависимости от условий, в цикле обработки? Типа нажал кнопку - переключиться на анимацию удара итд
> Один раз нарисовал карту и все. А все остальные обьекты (деревья, персонажи и т.п.) выводятся во 2ой слой и очищаю я 2ой слой, не трогая карту. То есть
> карту перерисовывать мне не надо, и Анимацаю для персонажей руками двигать мне не надо, а тупо поставл персонажа и все, анимация его сама работает
> без перерыва. Есть такой вариант???
Персонажи представленны объектами, у тебя надеюсь так?
Такой общий цикл
Цикл
Обновить объекты; // тут расчитывается логика, кто кому дал плюху, какой ущерб нанес итд
Рисовать объекты
> Предположим у меня есть анимация удара мечом
Ты уже спрашивал :) Тебе надо извлечь из нее векторную информацию, т.е. положение и угол поповорота меча для какждого кадра и ее применять к рисунку, не знаю как еще подробнее писать. Получить массив x,y,alfa, в цикле подставлять их, рисовать в точке (x,y) спрайт меча, повернутый на угол alfa. Как рисовать повернутый рисунок - смотря на чем пишешь, какие у тебя библиотеки для вывода, можно OpenGL, DX или какой-нить 2D движок
Mikle
>> VB все равно время съест сам цикл (интерпретатор же)
> Боже... он уже 15 лет, как не интерпретатор. Скорость та же, что у Дельфи
15 лет назад что было, TurboBasic, VB? Он вроде в p-code компилирует и скорость не ах
vb6 уже 13 лет, а до него был vb5, тоже с компилятором в нативный код, в vb5-6 можно ПРИ ЖЕЛАНИИ скомпилить в P-Code.
Mikle
> С трудом понимаю смысл написанного...
> Не существует какого-то "волшебного" движения, любое движение задаётся
> программно, если ты будешь использовать анимированный GIF, это не значит, что
> он сам по себе будет двигаться, это придётся делать тебе, либо использовать
> движок, в котором просто всё это от тебя спрятано.
Имелл в виду под "программно" - в вб. Спрашиваю, т.к. видел, что флеш анимации построенны на подобном, там можно задать движение бокса, в который вставляется любой обьект.
Aslan
> Скорее битмап, ведь позади карты ничего нет? Карта сама большая? Лучше собирать
> из частей
Я и собираю ее из частей, один раз.
Aslan
> Персонажи представленны объектами, у тебя надеюсь так?
Будут как обьекты - набор переменных, спрайт.
Мб по другому сделаю.
Aslan
> Цикл
> Обновить объекты; // тут расчитывается логика, кто кому дал плюху, какой
> ущерб нанес итд
> Рисовать объекты
Я знаю как все это реализовать. Сейчас я пытаюсь облегчить (упростить) себе дальнейшую работу. Так сказать "проложить путь", чтобы не встречать подводные камни во время разработки.
п.с. Ушел спать. Всем спасибо за ответы.
FireDay
> Я и собираю ее из частей, один раз
по мне так плохой вариант, если только карта маленькая, не больше экрана
> Будут как обьекты - набор переменных, спрайт
> Мб по другому сделаю
Примерно так надо:
массив спрайтов
массив анимаций, анимация содержит нач и конеч номера спрайта
массив объектов
Базовый тип объекта содержит номер анимации, ее текущий кадр (который в цикле мен-ся от нач к кон и обратно),
ну конечно координаты и др поля
От него наслед уже конкретные типы игровых объектов - мечник, маг итд
Тема в архиве.