Модераторы: Rickert

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 2D - игрушка на .NET, помогите с идеей 
:(
    Опции темы
Exception
  Дата 24.3.2005, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Тут лежит описание игры (только идея)
Помогите плиз smile
Кстати:
программисты .NET, объединяйтесь! Писать-то можно на любом языке (хоть что-то MS'овцы правильно сделали smile )
PM   Вверх
Exception
Дата 29.3.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Чего, ни у кого нет идей smile
PM   Вверх
chipset
Дата 30.3.2005, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Я раньше хотел сделать РПГ в стиле Фоллаута smile



--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
mr.DUDA
Дата 30.3.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



Есть одна идея: не использовать Windows.Forms как основу (вроде как автор собирается делать игру на основе датагрида smile).


--------------------
user posted image
PM MAIL WWW   Вверх
chipset
Дата 30.3.2005, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(mr @ 30.3.2005, 03:01)
вроде как автор собирается делать игру на основе датагрида smile

smile

Run-time error, используй DirectDraw или OpenGL, но только не Windows Forms...!!!

Это сообщение отредактировал(а) chipset - 30.3.2005, 14:07


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
arilou
Дата 30.3.2005, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Run-time error
3D движок на C# - посмотри для начала сюда. Может, тебе это поможет...


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
chipset
Дата 30.3.2005, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Насколько я знаю, лучший движок существующий под шарп сейчас, это - Irrlicht.
Здесь тоже пополняется коллекция двиглов smile
Хотя я не уверен что тебе не хватит обычного managed DirectX


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
arilou
Дата 31.3.2005, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Цитата(chipset @ 30.3.2005, 20:27)
Насколько я знаю, лучший движок существующий под шарп сейчас, это - Irrlicht.

Ты уверен?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
chipset
Дата 31.3.2005, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(arilou @ 31.3.2005, 00:07)
Ты уверен?

Нет.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Exception
Дата 31.3.2005, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Я же говорю:
Цитата
Только 2D, с DirectX пока не умею работать

С OpenGL тоже smile
Я лично хочу заниматься составлением классов и прочей хрени, а уж с реализацией посмотрим smile
PM   Вверх
mr.DUDA
Дата 3.4.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



Цитата(Run @ 31.3.2005, 11:36)
Я лично хочу заниматься составлением классов и прочей хрени, а уж с реализацией посмотрим

То есть, ты будешь заниматься созданием модели, а её отображение "прикрутишь" после? Тогда пока что можно и в грид или даже в консоль всё выводить, согласен. Главное сейчас - это грамотно продумать архитектуру игровой модели: чтобы она была как можно более гармоничной, расширяемой и простой. Позже к классу "GameModel" можно будет прикрутить классы "InputSystem", "Engine", и т.п.

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

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

Начинать писать игру прямо в коде, не представляя всей картины в целом - плохая привычка, т.к. надежда на то, что "сейчас я напишу класс А, а остальные буду прикручивать к нему один за другим" обычно приводит к тому, что рано или поздно вскроются непредумотренные ранее трудности с добавлением в игру новых возможностей и к тому подобным проблемам проектирования.


--------------------
user posted image
PM MAIL WWW   Вверх
chipset
Дата 3.4.2005, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(mr @ 3.4.2005, 04:03)

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

Я обычно сначала начинаю с требований, и только потом медленно опускаясь по лестнице абстракции разделяю все на модули, неймспейсы, классы, функции, строчки кода...
Т.е. к примеру так, есть приложение Аркада, вопрос: что она будет делать?
1) Отражать шарик от двух бит руководствуясь текущим положением биты.
2) Шарик будет отражаться от нижней и верхней стен.
3) Если шарик проникнет в правую/левую стену, левый/правый игрок выиграл.
4) Игра будет иметь два контрола: Начать новую игру и Выйти.
Теперь пройдемся по четырем требованиям:
Ясно что будет обьект "Шар". Ясно что будет обьект "Бита".
Как шарик может держать своё направление? Правильно, с помощью вектора: класс "Вектор". Как шарик будет отражаться от стен и бит? Вероятно с функции отражения, которая будет модифицировать вектор при столкновении. Ок, но как мы отловим столкновение? Вариант: Менеджер столкновений.
Мы забыли про 5-ый пункт - управление, добавляем:
5) Биты должны управляться следующими кнопками: левая: "X","S", правая: "ВНИЗ", "ВВЕРХ".
Введём класс Game, который будет апдейтить игру, отлавливая ввод, двигать биты,
проверять коллизии, двигать шарик и проверять пункт #3.
#4 потребует класс UI, которое будет включать в себя само окно вывода, и две кнопки.
Можно спрятать код рисования биты/шарика в соответствующие классы, а можно создать другой класс отвечающий за прорисовку всей этой фигни.
..
Можно конечно заюзать UML тулзы, но карандаш+бумага тоже рулез форева smile


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
arilou
Дата 4.4.2005, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Цитата(chipset @ 3.4.2005, 22:35)
Т.е. к примеру так, есть приложение Аркада, вопрос: что она будет делать?

Ты используешь подход, когда сначала ты все описываешь в архитектурной модели, а потом реализовываешь?



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Exception
Дата 4.4.2005, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Можно сделать интерфейс IGameGrid. В таком случае, каждый объект, который ты хочешь использовать как игровое поле, обязан реализовывать данный интерфейс. То есть если ты собрался использовать как поле флексгрид, ты должен создать свой класс, наследующий от грида, но реализующий данный интерфейс. Как вы думаете, идея имет право на жизнь?
PM   Вверх
chipset
Дата 4.4.2005, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(arilou @ 4.4.2005, 00:53)
Ты используешь подход, когда сначала ты все описываешь в архитектурной модели, а потом реализовываешь?

Да. Но требования, находятся на чуть более высоком уровне абстракции smile.
Добавлено @ 15:01
Цитата(Run @ 4.4.2005, 04:54)
Как вы думаете, идея имет право на жизнь?


Да. Таким образом, у тебя графический движок: FlexGrid, OpenGL, DirectX, et al, будет отделен от мини-игрового движка, который и будет реализовывать логику игру, а уже как оно там выводится, ему deep purple smile

Это сообщение отредактировал(а) chipset - 4.4.2005, 15:01


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
arilou
Дата 4.4.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Довольно сложно сразу все задизайнить, а потом сесть и кодировать. Тут на помощь приходит ХР в общем, и одна из его фич в частности: итерационный подход с небольшими уточнениями модели на каждой итерации.
Таким образом можно паралелльно описывать архитектуру, и писать код. Если интересно, могу написать поподробнее.

Добавлено @ 15:09
2 модератор:
Вообще, предлагаю перенести этот топик в Форум по геймдизайну


Это сообщение отредактировал(а) arilou - 4.4.2005, 15:14


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Exception
Дата 5.4.2005, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Цитата(arilou @ 4.4.2005, 16:04)
ХР в общем, и одна из его фич в частности: итерационный подход с небольшими уточнениями модели на каждой итерации

о чем это ты?

chipset, насчет приложения, которое ты описал, все и так ясно, но тут-то побольше будет, чем вектора да биты с мячиком smile Насчет UML - к сожалению, совершенно с ним не знаком - ни разу не видел.
Цитата(chipset @ 3.4.2005, 23:35)
карандаш+бумага тоже рулез форева

абсолютная правда smile
PM   Вверх
Exception
  Дата 5.4.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Вот первая версия кода:
Код

Public MustInherit Class BaseClass
    Public Structure LocationStruct 'Местоположение воина (по сетке)
        Dim Row As Short
        Dim Column As Short
    End Structure
    Public Interface IGUI
        'Пока не знаю что сюда вписать
    End Interface
    Protected MustOverride Sub Die()
    Private m_Health As Single
    Public Property Health() As Single
        Get
            Return m_Health
        End Get
        Set(ByVal Value As Single)
            If Value <= 0 Then Die()
            m_Health = Value
        End Set
    End Property
    Public MustOverride ReadOnly Property Accuracy() As Short   'Меткость
    Public MustOverride ReadOnly Property Protection() As Short 'Защита
    Public MustOverride ReadOnly Property MaxHealth() As Short  'Первоначальное здоровье
    Public MustOverride ReadOnly Property Distance() As Short   'Дальнобойность
    Public MustOverride ReadOnly Property Power() As Short      'Мощь
    Public MustOverride ReadOnly Property Picture() As System.Drawing.Image 'Картинка
    Public MustOverride Property CurrentGUI() As IGUI           'Текущий объект GUI
    Public MustOverride Property Location() As LocationStruct   'Местоположение
    Public Sub New(ByVal Gui As IGUI)
        Me.Health = Me.MaxHealth
        Me.CurrentGUI = Gui
    End Sub
    Public Sub Attack(ByVal Target As BaseClass)
        Dim pwr As Single, diff As LocationStruct, dist As Short, ProtectAndAccuracyDifference As Short
        pwr = Me.Power
        diff.Column = Math.Abs(Me.Location.Column - Target.Location.Column)
        diff.Row = Math.Abs(Me.Location.Row - Target.Location.Row)
        IIf(diff.Row > diff.Column, dist = diff.Row, dist = diff.Column)
        Select Case dist
            Case Is <= Me.Distance
                pwr *= 2
            Case Is > CShort(Me.Distance + 2) 'Иначе компилятор будет ругаться
                pwr /= 2
        End Select
        ProtectAndAccuracyDifference = Me.Accuracy - Target.Protection
        pwr = pwr * (10 + ProtectAndAccuracyDifference) / 10
        Target.Health -= pwr
    End Sub
End Class

Добавлено @ 14:06
Прогнал через Reflector, правда криво вышло, но:
Код

public abstract class BaseClass
{
      // Methods
      public BaseClass(BaseClass.IGUI Gui)
{
      this.Health = this.MaxHealth;
      this.CurrentGUI = Gui;
}
 

public void Attack(BaseClass Target)
{
      BaseClass.LocationStruct struct1;
      short num1;
      float single1 = this.Power;
      struct1.Column = Math.Abs((short) (this.Location.Column - Target.Location.Column));
      struct1.Row = Math.Abs((short) (this.Location.Row - Target.Location.Row));
      Interaction.IIf(struct1.Row > struct1.Column, num1 = struct1.Row, num1 = struct1.Column);
      short num3 = num1;
      if (num3 <= this.Distance)
      {
            single1 *= 2f;
      }
      else if (num3 > ((short) (this.Distance + 2)))
      {
            single1 /= 2f;
      }
      short num2 = (short) (this.Accuracy - Target.Protection);
      single1 = (single1 * (10 + num2)) / 10f;
      BaseClass class1 = Target;
      class1.Health -= single1;
}
      protected abstract void Die();

      // Properties
      public abstract short Accuracy { get; }
      public abstract IGUI CurrentGUI { get; set; }
      public abstract short Distance { get; }
      public float Health
{
      get
      {
            return this.m_Health;
      }
      set
      {
            if (value <= 0f)
            {
                  this.Die();
            }
            this.m_Health = value;
      }
}
      public abstract LocationStruct Location { get; set; }
      public abstract short MaxHealth { get; }
      public abstract Image Picture { get; }
      public abstract short Power { get; }
      public abstract short Protection { get; }

      // Fields
      private float m_Health;

      // Nested Types
      public interface IGUI
      {
//Не знаю, что написать
      }

      [StructLayout(LayoutKind.Sequential)]
      public struct LocationStruct
      {
            public short Row;
            public short Column;
      }
}


Это сообщение отредактировал(а) Run-time error - 5.4.2005, 14:10
PM   Вверх
chipset
Дата 5.4.2005, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Run-time error, ты бы это, не концентрируйся на деталях, просто продумай какие у тебя классы и как они между собой взаимодействуют. Может это и не сильно по XP'овски, но во всяком случае я так делаю.. Ж)


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
arilou
Дата 5.4.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Цитата(Run @ 5.4.2005, 10:47)
о чем это ты?

XP - extreme programming, экстремальное программирование, методология разработки программных продуктов.
Вот тут приводится пример, как оно работает. Собсна, весь сайт XP и посвящен.



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
chipset
Дата 5.4.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(arilou @ 5.4.2005, 04:31)
Вот тут приводится пример, как оно работает. Собсна, весь сайт XP и посвящен.

Здесь ишшо: http://xprogramming.com.ua


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Exception
Дата 10.4.2005, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



В общем так:
1. Базовый класс для всех воинов - BaseClass выглядит где-то так:
Код

Public Structure LocationStruct 'Местоположение воина (по сетке)
    Dim Row As Short
    Dim Column As Short
End Structure
Public Interface IGUI
    Sub ShowUnit(ByVal Unit As BaseClass)
    Sub MoveUnit(ByVal Unit As BaseClass, ByVal LocTo As LocationStruct)
    Sub DestroyUnit(ByVal Unit As BaseClass)
End Interface
Public MustInherit Class BaseClass
    Protected MustOverride Sub Die()
    Public m_Health As Single, m_Location As LocationStruct, m_GUI As IGUI
    Public Property Health() As Single
        Get
            Return m_Health
        End Get
        Set(ByVal Value As Single)
            If Value <= 0 Then Die()
            m_Health = Value
        End Set
    End Property

    Public MustOverride ReadOnly Property Accuracy() As Short   'Меткость
    Public MustOverride ReadOnly Property Protection() As Short 'Защита
    Public MustOverride ReadOnly Property MaxHealth() As Short  'Первоначальное здоровье
    Public MustOverride ReadOnly Property Distance() As Short   'Дальнобойность
    Public MustOverride ReadOnly Property Power() As Short      'Мощь
    Public MustOverride ReadOnly Property Picture() As System.Drawing.Image 'Картинка
    Public ReadOnly Property CurrentGUI() As IGUI 'Текущий объект GUI
        Get
            Return m_GUI
        End Get
    End Property
    Public Property Location() As LocationStruct  'Местоположение
        Get
            Return m_Location
        End Get
        Set(ByVal Value As LocationStruct)
            MyClass.m_Location = Value
            MyClass.m_GUI.MoveUnit(Me, Value)
        End Set
    End Property
    Public Sub New(ByVal Gui As IGUI, ByVal StartRow As Byte, ByVal StartCol As Byte)
        MyClass.Health = Me.MaxHealth
        MyClass.m_GUI = Gui
        Dim loc As LocationStruct
        loc.Row = StartRow
        loc.Column = StartCol
        MyClass.Location = loc
    End Sub
    Public Sub Attack(ByVal Target As BaseClass)
        Dim pwr As Single, diff As LocationStruct, dist As Short, ProtectAndAccuracyDifference As Short
        pwr = Me.Power
        diff.Column = Math.Abs(Me.Location.Column - Target.Location.Column)
        diff.Row = Math.Abs(Me.Location.Row - Target.Location.Row)
        IIf(diff.Row > diff.Column, dist = diff.Row, dist = diff.Column)
        Select Case dist
            Case Is <= Me.Distance
                pwr *= 2
            Case Is > CShort(Me.Distance + 2) 'Иначе компилятор будет ругаться
                pwr /= 2
        End Select
        ProtectAndAccuracyDifference = Me.Accuracy - Target.Protection
        pwr = pwr * (10 + ProtectAndAccuracyDifference) / 10
        Target.Health -= pwr
    End Sub
End Class

2. Класс, реализующий GUI для MSFlexGrid
Код

Public Class Gui
    Implements BaseClass.IGUI
    Private FORM As New GameForm

    Public Sub DestroyUnit(ByVal Unit As BaseClass.BaseClass) Implements BaseClass.IGUI.DestroyUnit
        FORM.Table.Col = Unit.Location.Column
        FORM.Table.Row = Unit.Location.Row
        FORM.Table.CellPicture = Nothing
    End Sub

    Public Sub MoveUnit(ByVal Unit As BaseClass.BaseClass, ByVal LocTo As BaseClass.LocationStruct) Implements BaseClass.IGUI.MoveUnit
        DestroyUnit(Unit)
        Unit.m_Location = LocTo
        ShowUnit(Unit)
    End Sub

    Public Sub ShowUnit(ByVal Unit As BaseClass.BaseClass) Implements BaseClass.IGUI.ShowUnit
        FORM.Table.Col = Unit.Location.Column
        FORM.Table.Row = Unit.Location.Row
        FORM.Table.CellPicture = Unit.Picture
        FORM.ShowDialog()
    End Sub
End Class

Класс GameForm объявлен в одном проекте с GUI - собственно и есть форма с гридом:
Код

Option Strict On
Public Class GameForm
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()
    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Public WithEvents Table As AxMSFlexGridLib.AxMSFlexGrid
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(GameForm))
        Me.Table = New AxMSFlexGridLib.AxMSFlexGrid
        CType(Me.Table, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'Table
        '
        Me.Table.Dock = System.Windows.Forms.DockStyle.Fill
        Me.Table.Location = New System.Drawing.Point(0, 0)
        Me.Table.Name = "Table"
        Me.Table.OcxState = CType(resources.GetObject("Table.OcxState"), System.Windows.Forms.AxHost.State)
        Me.Table.Size = New System.Drawing.Size(646, 340)
        Me.Table.TabIndex = 2
        '
        'GameForm
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(646, 340)
        Me.Controls.Add(Me.Table)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D
        Me.MaximizeBox = False
        Me.Name = "GameForm"
        Me.Text = "Game"
        CType(Me.Table, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region
End Class

3. Загрузкой классов и управлением игрой занимается exeшник GameEngine. Его я еще не продумал. Вопрос: как с помощью рефлексии динамически загружать нужные классы(вроде Assembly.LoadFrom) и вызывать их методы?
Добавлено @ 11:51
Цитата(chipset @ 5.4.2005, 15:19)
ты бы это, не концентрируйся на деталях

ну не могу я сидеть и прописывать все классы! Рука так и тянется к клаве smile
PM   Вверх
chipset
Дата 11.4.2005, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Хм.. Почитал и ужаснулся, так уж отучился бейсиковскому синтаксу.. smile

Цитата(Run @ 10.4.2005, 01:43)
ну не могу я сидеть и прописывать все классы! Рука так и тянется к клаве smile

А с помощью чего ты прописываешь? smile
Кстати я бы сначала все-таки разделил бы это дело на три неймспейса, нарисовал бы основные классы, обработчики всякие, а потом уже к геймовой логике переходил ;)


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Exception
Дата 11.4.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Цитата(chipset @ 11.4.2005, 04:59)
А с помощью чего ты прописываешь?

карандаш+бумага smile

Цитата(chipset @ 11.4.2005, 04:59)
так уж отучился бейсиковскому синтаксу

а Reflector зачем дан?
кстати: насчет UML: ему возможно научиться за неделю? Если да, я готов идти и покупать книжки. Кстати: у меня есть какая-то Visual UML 2.6 и там есть UML 1.3 Specification в формате pdf на английском. Признаться, я мало что понял smile
Цитата(chipset @ 11.4.2005, 04:59)
разделил бы это дело на три неймспейса

VS автоматом создает нэймспейсы с именем проекта. А я все в разных проектах держу.
Повторю вопрос:
как с помощью рефлексии динамически загружать нужные классы(вроде Assembly.LoadFrom) и вызывать их методы?
PM   Вверх
chipset
Дата 12.4.2005, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(Run @ 11.4.2005, 06:57)
карандаш+бумага smile

Правильно. Наш метод smile

Цитата(Run @ 11.4.2005, 06:57)
кстати: насчет UML: ему возможно научиться за неделю?

Я вообще начал проектировать на Visio сразу, руководствуясь логикой и хелпом..

Цитата(Run @ 11.4.2005, 06:57)
как с помощью рефлексии динамически загружать нужные классы(вроде Assembly.LoadFrom) и вызывать их методы?

Ет в отдельную тему и в .NET smile


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Exception
Дата 12.4.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Цитата(chipset @ 12.4.2005, 01:20)
на Visio

У меня его нету.
PM   Вверх
chipset
Дата 12.4.2005, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(Run @ 12.4.2005, 04:38)
У меня его нету.

Не страшно. Я знаю серьёзную фирму, в которой проектируют на бумажке.. ;)
Очень эффективно.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Exception
  Дата 19.4.2005, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Тестовая версия. Пока ничего не делает, т.к. правила я еще не придумал. У Test и Test2 измените директории вывода туда же, куда и указывает константа DirectoryWhereWePutAssemblies. Требует библиотек Interop.MSFlexGrid и AxInterop.AxMSFlexGridLib. Их сгенерьте, создав новый проект WinApp и дав ссылку на FlexGrid, а потом переместите в папку GUIClass\bin.

Блин... файл не грузится, пишет Вы не можете загружать такой тип файлов.
Кто-нить знает сервак, куда это можно скинуть???

Это сообщение отредактировал(а) Run-time error - 19.4.2005, 12:08
PM   Вверх
chipset
Дата 20.4.2005, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Цитата(Run @ 19.4.2005, 01:40)
Блин... файл не грузится, пишет Вы не можете загружать такой тип файлов.
Кто-нить знает сервак, куда это можно скинуть???

newmail.ru
nextstep.ru
Мне скинь - я выложу ;)
chipset.cpp[ОНО!]gmail[точка]com


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Exception
Дата 20.4.2005, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



chipset,
Цитата(chipset @ 20.4.2005, 01:29)
chipset.cpp[ОНО!]gmail[точка]com

боишься спамботов?
" [оно] " smile smile smile
Файлы отправил smile
PM   Вверх
Exception
Дата 21.4.2005, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Смотрите следующие сообщения.


Это сообщение отредактировал(а) Run-time error - 23.4.2005, 13:00
PM   Вверх
Exception
Дата 22.4.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Ну кто-нить скачивал?
PM   Вверх
Exception
Дата 23.4.2005, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Забацал маленькую страничку в народе - на ньюмэйл ходить не надо.
Ход продвижения буду протоколировать (хе-хе... забавное слово smile ) там же.
PM   Вверх
Exception
Дата 24.4.2005, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



chipset
arilou
Вы где?
PM   Вверх
chipset
Дата 24.4.2005, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 2
Всего: 165



Тут мы smile
Ты бы захостил где нибудь не-на-народе, а то тормоза smile


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Exception
Дата 25.4.2005, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Цитата(chipset @ 24.4.2005, 17:53)
где нибудь не-на-народе

Просто это было первое, что мне в голову пришло smile у меня ж на ёндексе ёщик. Ящик точнее smile .
Чего-то я немного застопорился smile не знаю, что дальше приделать smile
У кого-нить есть идеи? Только пожалуста без "да у тебя он тормозит!!!" или "почему юниты не двигаются?!" smile
Предложения насчет архитектуры принимаются (убрать такой-то метод, добавить такое-то свойство... smile )
PM   Вверх
Exception
Дата 27.4.2005, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Сегодня и завтра наверное сяду в каморку, закроюсь от внешнего мира и все переворошу. Переделать много чего надо.
-------------------------------------------------
03.05.05
Наверное уже скоро буду учиться 3D - остальные части игры почти готовы.

Это сообщение отредактировал(а) Run-time error - 3.5.2005, 13:36
PM   Вверх
arilou
Дата 12.5.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Цитата(Run @ 27.4.2005, 10:05)
остальные части игры почти готовы.

smile я тебе завидую.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Гость_Run-time Error
Дата 13.5.2005, 15:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(arilou @ 12.5.2005, 14:01)
я тебе завидую.

smile
  Вверх
Гость_Run-time Error
Дата 15.5.2005, 12:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот это как его... обновлений пока нет... зато я немного гуй допридумал... короче на сайте все написано smile
а вы бы предложения+пожелания кидали бы? А то как-то для себя делать скучновато smile
  Вверх
arilou
Дата 16.5.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Цитата
а вы бы предложения+пожелания кидали бы?

Прости, друг, времени хватает только отвечать на вопросы. А вообще, знаешь, сколько проектов заглохло по причине отсутствия целевой аудитории и потери интереса? Я бы рекомендовал тебе найти пару-тройку единомышленников, определиться, чего вас всем хочется сделать, если хотите комм.проект, то посмотреть, будет ли это пользоваться спросом, и двигаться не смотря ни на что smile

Вам будет нужен гейм-дизайнер - человек, который будет держать в голове общую картину, и играть в ненаписанную игру. Это нечто вроде Project Manager'а в геймдеве.

Для доп.информации почитай тут:
Спецификация игры типа Elite, by mr.DUDA

Всегда полезно читать postmortem'ы, особенно негативные. Где-то на The Daily Telefrag есть очень поучительный постмортем о компании Ion Storm и работе в ней Джона Ромеро.

Игры - это самые сложные программные продукты. Поэтому, ИМХО, приходить в мир гейм-девелопмента надо, имея за плечами хорошую базу разработки других видов программ.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Guest
Дата 19.5.2005, 16:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(arilou @ 16.5.2005, 12:11)
Спецификация игры типа Elite, by mr.DUDA

Прочел только первую страницу, но смысл вроде понял.
Цитата(arilou @ 16.5.2005, 12:11)
А вообще, знаешь, сколько проектов заглохло по причине .......... и потери интереса?

у меня интерес не исчезнет - это точно, а вот
Цитата(arilou @ 16.5.2005, 12:11)
найти пару-тройку единомышленников

где? на винграде? искал...
мне всегда (почему-то smile ) проще все сделать самому. хотя
Цитата(arilou @ 16.5.2005, 12:11)
приходить в мир гейм-девелопмента надо, имея за плечами хорошую базу разработки других видов программ

опыт... опыт... кажись, такого у меня особо нету smile
То есть в программинге я года 2, классы стал писать 3 месяца назад, так что не знаю... но я думаю, что написать нечто интересное шансы есть smile

Цитата(arilou @ 16.5.2005, 12:11)
Вам будет нужен гейм-дизайнер - человек, который будет держать в голове общую картину, и играть в ненаписанную игру

может я крайне ленивый, но где я его найду?
я предпочитаю общаться не по инету, а друзей-программистов у меня нет smile (глянь на мой год рожд)
короче вот так.
Летом работать не смогу, так что буду (разве что) на бумажках зависимости да юэмэл чертить... smile
  Вверх
arilou
Дата 19.5.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Цитата(Guest @ 19.5.2005, 16:13)
опыт... опыт... кажись, такого у меня особо нету
То есть в программинге я года 2, классы стал писать 3 месяца назад, так что не знаю... но я думаю, что написать нечто интересное шансы есть 

Опыт - дело наживное. Если ты начал программить в 11 лет (я тоже, кстати smile), то у тебя большое будущее. Может это будет мое личное имхо, но я считаю, что тебе стоит просто развиваться дальше, программить, программить, и еще раз программить, а опыт придёт со временем.
Просто игрушки, вопреки распространенному мнению, - это сложные программы, сразу заколбасить навороченную штучку smile не получится. Когда я в школе учился, у меня други тетрисами, шашками и крестиками-ноликами баловались. Правда, что с ними сейчас и где они, я не знаю.

Я думаю, идею ты понял.
Цитата(Guest @ 19.5.2005, 16:13)
буду (разве что) на бумажках зависимости да юэмэл чертить...

Охх, сколько я бумаги в деревне извел...
Добавлено @ 16:35
Цитата(Guest @ 19.5.2005, 16:13)
может я крайне ленивый, но где я его найду?

Когда ты его увидишь, ты поймешь, что это он smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Exception
Дата 20.5.2005, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Цитата(arilou @ 19.5.2005, 17:34)
а опыт придёт со временем

ну это понятно smile
Цитата(arilou @ 19.5.2005, 17:34)
навороченную штучку

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

Цитата(arilou @ 19.5.2005, 17:34)
шашками

я кстати ради интереса хотел недавно попробовать, только руки пока не дошли smile
Ну времени у меня навалом... буду двигаться вперед (хорошо звучит, а smile )

Это сообщение отредактировал(а) Run-time error - 20.5.2005, 12:09
PM   Вверх
Exception
Дата 16.8.2005, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



я вновь тут=)
давно не виделись.. для игры нашёл сюжет- по книгам Ника Перумова, серия "хранитель мечей", про Кэра Лаэду. Жанр - чистая РПГ. на форуме никто помочь не хочет/не может.. жаль. переделки и игры и сайта начинаются в сентябре. зы возможно сайт переедет на LATO.h1.ru но не сейчас. название гамы - legend about the Ordered, легенда об Упорядоченном.
правда сейчас ищу движок псевдо-3д, с 3д не знаком. да ведь это ж рпг, [вырезано цензурой] 3д?
PM   Вверх
mr.DUDA
Дата 18.8.2005, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



Ну, скажем, уже почти никто не выпускает 2D-шные РПГ, даже изометрию делают на основе 3д.


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 28.8.2005, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



не факт что 2д. просто не на дх и не на огл.
Цитата
никто

да прям. согласен, электроник артс не делает smile
а так даж тут одна обсуждалась, путь меча.
Добавлено @ 19:27
не факт что 2д. просто не на дх и не на огл.
Цитата
никто

да прям. согласен, электроник артс не делает :)
а так даж тут одна обсуждалась, путь меча.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.1741 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.