ФлеймФорумИгры

Создание оружия

#0
18:18, 15 окт 2005

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

#1
19:47, 15 окт 2005

Vavilon

ну можно например сделать юнион структур в другой структуре с хидером.
а вообще сперва лучше продумай свою систему оружия до конца и скорее всего сам поймешь дата-модель для неё.

#2
21:58, 15 окт 2005

Vavilon
Можно попытаться сделать оружие на основе стратегий:
например (для огнестрельного оружия):
(это только идея, не более того)

class	IWeapon {	// базовый тип
	// ...
	};

template <
	class	damage,			// тип повреждения (точечное, направленное, ударной волной, распределенное)
	class	hitmethod,		// способ достижения цели
	class	spread,			// распределения различных параметров
	class	shell			// тип боезапаса
	class	reload			// способ перезарядки
	>
class	Weapon: public IWeapon {
	// ...
};
#3
22:28, 26 окт 2005

up
P.S. интересная же тема...

#4
23:32, 9 янв 2006

Я думаю, что сначала оформить оружие в отдельный класс (и так для всех подобных вещей в инвентаре). Класс содержит указатели на функции - перезарядка, нанесение урона врагу и т.д. Или даже дин. массив указателей, т.е. функция нанесения урона холодом, далее оглушающий урон, ... При ударе по врагу они все вызываются. И хана попавшему под удар! =)

#5
13:38, 13 фев 2006

В проекте http://tactics.indians.ru/ я использовал для оружия не один, а несколько классов:

калибр
  + имя
  + полное имя
  + массив возможных объемов магазина

объект
  + имя
  + размер спрайта
  + указатель на калибр
  + емкость магазина
  + осталось в магазине

объектом может быть и магазинное оружие, и магазин, и штык-нож, например, где параметры калибр и магазин не используются.
при применении объекта программа может запросить дополнительные параметры из класса

оружие
  + имя
  + эффективная дальность
  + звук выстрела
  + коэфф. поражения (в дальнейшем, когда будет введено разделение по типам БП, выведу в их параметры)
  + точность
  + премя прицельного выстрела (навскидку и очередью - производные)
  + рабочий цикл ствола (время наработки на отказ)
  + громоздкость (влияет на скорость передвижения с этим стволом, увеличивается от длины магазина
  + тип оружия
  + возможные режимы огня
  + основной калибр
  + калибр подствольника
  + базовая стоимость
  + вес в граммах
  + размер спрайта
  + насколько редкое оружие
  + полное название
  + страна происхождения (определяет, у продавцов в каких странах чаще встречается)

ФлеймФорумИгры

Тема в архиве.