Какой способ хранения этих данных эффективен? - PullRequest
0 голосов
/ 05 апреля 2010

Я пишу игру, для которой нужна карта, и я хочу сохранить карту. Первое, о чем я могу подумать, это использование 2D-массива. Но проблема в том, какие данные я должен хранить в 2D-массиве. Игрок может коснуться другого места, чтобы иметь различную реакцию. Итак, я думаю сохранить 2D-массив с объектами, когда игрок нажимает на какую-то позицию, и я нахожу его в массиве, и использую объект в этом массиве для выполнения cmd. Но у меня есть опасение, что для хранения большого количества объектов может потребоваться много памяти. Итак, я думаю, что хранение только char / int. Но, похоже, мне этого мало. Я хочу хранить данные так:

{
Type:1
Color:Green
}

Независимо от того, какой цвет, если они все типа 1, они имеют одинаковые логические реакции, но визуальный эффект основан на цвете. Таким образом, нелегко хранить с использованием данных prue char / int, если я не сделаю что-то вроде этого:

 1-5 --> all type 1. 1=color green , 
 2=color red, 3 = color yellow.... ...
 6-10 --> all type 2. 2 = color green,
 2 = color red ... ...

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

1 Ответ

0 голосов
/ 05 апреля 2010

Продолжайте и сохраняйте кучу объектов в массиве, но с этими двумя уточнениями:

  • Сохранить указатель на объект, а не на сам объект. (Цель C может обработать это для вас автоматически; я не знаю.)

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

Также помогло бы, если бы вы делали математические расчеты по размеру массива и числу различных квадратов, чтобы мы могли точно знать, сколько ОЗУ вы говорите.

...