Воскресенье, 22 Декабря 2024, 20:40

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
[2D] - AzEngine
AGENTX001Дата: Суббота, 21 Января 2012, 12:31 | Сообщение # 41
почётный гцупер
Сейчас нет на сайте
Quote (AirWolF_RG)
Я так понял он говорит про создание экземпляров класса. Тобишь допустим ты описываешь игровой объект "пуля", а потом во время игры создаешь сколько тебе надо экземпляров такого класса.

Именно!)
Quote (AirWolF_RG)
Такие классы надо создавать уже в своем собственном коде, а не в движке.

Вот именно. Во всех двигах приходится пилить самому dry
FadeBakerДата: Суббота, 21 Января 2012, 13:21 | Сообщение # 42
JavaSE Game Developer
Сейчас нет на сайте
Первый движок с понятными и удобными для меня функциями! Буду ждать! Удачи тебе в разработке!

Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
AikidosДата: Суббота, 21 Января 2012, 14:18 | Сообщение # 43
постоянный участник
Сейчас нет на сайте
Quote (Fade)
Первый движок с понятными и удобными для меня функциями! Буду ждать! Удачи тебе в разработке!

Спасибо. Стараюсь. Первым делом пишу так, чтобы было удобно работать.

Про экземпляры я всё равно не понял. Вы имеете ввиду что-то типа клонирования объектов, но сразу кучей? По 5 по 6 одним методом?
В моём понимании экземпляр - это объект класса. Тут, если класс - объект, то я не могу понять как вы хотите строить из них экземпляры, если не путём клонирования smile

Приведите плиз пример кода, как вы это представляете.


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
AirWolF_RGДата: Суббота, 21 Января 2012, 14:45 | Сообщение # 44
почетный гость
Сейчас нет на сайте
Aikidos, я не знаком с работой с классами в С++ (это пока), но попытаюсь написать на BMax"е.

Code

' Основной код
Local Bullet:TBullet[5]
For Local i:Int = 0 to 4
   Bullet[i] = New TBullet.Create()
Next

While 1
   Cls
     For Local i:Int = 0 to 4
       Bullet[i].Update()
       Bullet[i].Draw()
     Next
   Flip
Wend
' Конец основного кода

' Описание класса TBullet
Type TBullet
   Field x:Int
   Field y:Int
   Field Image:TImage

   Function Create:TBullet()
     Local Bullet:TBullet = New TBullet
       Bullet.x = Rand(1,800)
       Bullet.y = Rand(1,600)
       Bullet.Image = LoadImage ("bullet.png")
     Return Bullet
   End Function

   Method Update()
     ' Здесь какое нибудь обновление
   End Method

   Method Draw()
     ' Здесь отрисовка
   End Method
End Type

Как видишь, здесь можно делать массив объектов с одним именем, а у тебя, как я понял, в контейнере объектов каждому объекту присваивается свое уникальное имя. И если на сцене пуль, скажем этак, 20, то обновлять каждую по уникальному идентификатору становится проблематичным.



Java(4),C(3),C++(4),PHP(3),BlitzMAX(5),Delphi(4),VB(4)
Оценка знаний - от 1 до 5
AGENTX001Дата: Суббота, 21 Января 2012, 17:21 | Сообщение # 45
почётный гцупер
Сейчас нет на сайте
Aikidos, ГМ скачай, там посмотри...
AikidosДата: Суббота, 21 Января 2012, 19:05 | Сообщение # 46
постоянный участник
Сейчас нет на сайте
Quote (AirWolF_RG)
обновлять каждую по уникальному идентификатору становится проблематичным.

Так поэтому для каждого объекта можно подключать скрипт (при копировании объекта, скрипт тоже копируется).

Quote (AGENTX001)
Aikidos, ГМ скачай, там посмотри...

Понятно.


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
AGENTX001Дата: Суббота, 21 Января 2012, 19:16 | Сообщение # 47
почётный гцупер
Сейчас нет на сайте
Quote (Aikidos)
Понятно.

Ты считаешь, что самый популярный геймдев продукт ниже твоего достоинства?
AikidosДата: Суббота, 21 Января 2012, 19:27 | Сообщение # 48
постоянный участник
Сейчас нет на сайте
Quote (AGENTX001)
Ты считаешь, что самый популярный геймдев продукт ниже твоего достоинства?

Моё то достоинство выше GM'a. Я гарантирую это. Если конечно ты имел ввиду движок, то нет, GM выше. Только что с этого?


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
AirWolF_RGДата: Суббота, 21 Января 2012, 19:28 | Сообщение # 49
почетный гость
Сейчас нет на сайте
Aikidos, а как в таком случае производить прямой доступ к многочисленным копиям из основного кода?


Java(4),C(3),C++(4),PHP(3),BlitzMAX(5),Delphi(4),VB(4)
Оценка знаний - от 1 до 5
AikidosДата: Суббота, 21 Января 2012, 19:36 | Сообщение # 50
постоянный участник
Сейчас нет на сайте
Quote (AirWolF_RG)
Aikidos, а как в таком случае производить прямой доступ к многочисленным копиям из основного кода?

Я, конечно, понимаю всё это. Только у меня нет идей как, лучше и удобнее всего, реализовать это.

Добавлено (21.01.2012, 19:36)
---------------------------------------------
Ппц, не так понял AGENTX001. Да нет. Мне просто не хочется разбираться в GM. Я двиг для себя пишу прежде всего. Зачем мне копировать GM?


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
AirWolF_RGДата: Суббота, 21 Января 2012, 22:03 | Сообщение # 51
почетный гость
Сейчас нет на сайте
Aikidos, может лучше отказаться от контейнера объектов? Может лучше создавать объекты отдельно? В таком случае их можно будет объединять в массив, вектор, лист и т.д., а также можно будет иметь прямой доступ к каждому одноименному объекту отельно.


Java(4),C(3),C++(4),PHP(3),BlitzMAX(5),Delphi(4),VB(4)
Оценка знаний - от 1 до 5
AikidosДата: Суббота, 21 Января 2012, 22:15 | Сообщение # 52
постоянный участник
Сейчас нет на сайте
Quote (AirWolF_RG)
Aikidos, может лучше отказаться от контейнера объектов?

Менеджер объектов занимается обработкой объектов, следит за тем, чтобы не было утечки памяти и т.п.

Quote (AirWolF_RG)
Может лучше создавать объекты отдельно? В таком случае их можно будет объединять в массив, вектор, лист и т.д.

Сейчас тоже можно создать массив ссылок на объекты.

Quote (AirWolF_RG)
также можно будет иметь прямой доступ к каждому одноименному объекту отельно.

Code
GameObject @pMyObject = ObjectManager.Get("MyObject");
........ операции с объектом........


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
AirWolF_RGДата: Суббота, 21 Января 2012, 22:20 | Сообщение # 53
почетный гость
Сейчас нет на сайте
Aikidos, опять же все упирается в уникальный идентификатор. Пуль 100, а идентификатор пули - 1. Ну или других каких нибудь одинаковых объектов. Вот у тебя объект когда клонируется, как к нему доступ совершать?


Java(4),C(3),C++(4),PHP(3),BlitzMAX(5),Delphi(4),VB(4)
Оценка знаний - от 1 до 5
AikidosДата: Суббота, 21 Января 2012, 22:26 | Сообщение # 54
постоянный участник
Сейчас нет на сайте
Quote (AirWolF_RG)
Вот у тебя объект когда клонируется, как к нему доступ совершать?

Code
GameObject @clone = ObjectManager.Clone("MyObject", "MyObjectC");


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
AirWolF_RGДата: Суббота, 21 Января 2012, 22:39 | Сообщение # 55
почетный гость
Сейчас нет на сайте
Aikidos, вот видишь, ты копируешь и задаешь ему другой персональный идентификатор. А каждый перебирать...


Java(4),C(3),C++(4),PHP(3),BlitzMAX(5),Delphi(4),VB(4)
Оценка знаний - от 1 до 5
AikidosДата: Суббота, 21 Января 2012, 22:42 | Сообщение # 56
постоянный участник
Сейчас нет на сайте
Quote (AirWolF_RG)
Aikidos, вот видишь, ты копируешь и задаешь ему другой персональный идентификатор. А каждый перебирать...

Есть другие предложения реализации?


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
AirWolF_RGДата: Воскресенье, 22 Января 2012, 11:56 | Сообщение # 57
почетный гость
Сейчас нет на сайте
Aikidos, может лучше заменить char[] идентификатор на int идентификатор? Тогда можно будет проще определятся. Например, можно уже будет в голове держать, что с 1000 и до 1100 - это объекты пуль, ну и т.д. Их тогда и в циклах обрабатывать легче и быстрее, ну и доступ проще получать, особенно в цикле for


Java(4),C(3),C++(4),PHP(3),BlitzMAX(5),Delphi(4),VB(4)
Оценка знаний - от 1 до 5
AikidosДата: Воскресенье, 22 Января 2012, 13:56 | Сообщение # 58
постоянный участник
Сейчас нет на сайте
Quote (AirWolF_RG)
Aikidos, может лучше заменить char[] идентификатор на int идентификатор? Тогда можно будет проще определятся. Например, можно уже будет в голове держать, что с 1000 и до 1100 - это объекты пуль, ну и т.д. Их тогда и в циклах обрабатывать легче и быстрее, ну и доступ проще получать, особенно в цикле for

Вот именно, что в голове держать числа. Мне кажется намного легче держать в голове имена. Доступ тоже легко получить через for

Code
for (int i = 1; i <= 1000; i ++)
{
  GameObject @object = ObjectManager.Get("Bullet " + Convert.IntToStr(i));
  ........ операции над объектом.........
}


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
AirWolF_RGДата: Воскресенье, 22 Января 2012, 15:26 | Сообщение # 59
почетный гость
Сейчас нет на сайте
Aikidos, согласен, но есть же и #define :). А вообще, ты уже сам ответил на тот вопрос, который так тревожил AGENTX001. В цикле можно как создавать неограниченное кол-во объектов, так и иметь доступ к ним smile Я всего лишь поддержал вопрос smile


Java(4),C(3),C++(4),PHP(3),BlitzMAX(5),Delphi(4),VB(4)
Оценка знаний - от 1 до 5
05142Дата: Воскресенье, 22 Января 2012, 15:42 | Сообщение # 60
постоянный участник
Сейчас нет на сайте
Зачем вообще все эти текстовые названия? Недостаток архитектуры движка?

mecinvader
  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг