Эквивалентный из CGPoint с целыми числами?

Удачи,

Мне нравится строгий ввод в C. Поэтому я не хочу хранить 2D вектор плаваний, если мне конкретно нужны целые числа. Есть ли обеспеченный Apple эквивалент CGPoint который хранит данные как целые числа?

Я реализовал свой тип Vector2i и его сопутствующая функция Vector2iMake() а-ля CGPoint, но что-то глубоко во мне крики, которыми Apple уже была там.


Обновление для объяснения.

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

18
задан Ivan Vučica 13 April 2010 в 13:34
поделиться

4 ответа

Если вы представляете свое игровое поле в виде объектов, хранящихся в неразреженных вложенных массивах, тогда вы может захотеть рассмотреть создание подкласса NSIndexPath или его прямое использование.

Из ссылки на класс:

Класс NSIndexPath представляет путь к определенному узлу в дереве вложенных коллекций массивов. Этот путь известен как индексный путь.

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

6
ответ дан 30 November 2019 в 09:14
поделиться

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

3
ответ дан 30 November 2019 в 09:14
поделиться

(чтобы прямо ответить на вопрос ...)

Я не знаю "NSIntegerPoint", но сделать его будет несложно:

struct NSIntegerPoint {
   NSInteger x;
   NSInteger y;
};

Наряду с такими вещами, как:

CG_INLINE NSIntegerPoint
NSIntegerPointMake(NSInteger x, NSInteger y)
{
  NSIntegerPoint p; p.x = x; p.y = y; return p;
}

CG_INLINE bool
__NSIntegerPointEqualToPoint(NSIntegerPoint point1, NSIntegerPoint point2)
{
  return point1.x == point2.x && point1.y == point2.y;
}
#define NSIntegerPointEqualToPoint __NSIntegerPointEqualToPoint
7
ответ дан 30 November 2019 в 09:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: