1. Nikanr - 22 Мая, 2021 - 13:03:33 - перейти к сообщению
Можно ли получив адрес массива при помощи address узнать его размер используя только адрес?
2. Kibor - 22 Мая, 2021 - 13:10:20 - перейти к сообщению
Что подразумевается под массивом?
Адрес это просто номер ячейки.
Адрес это просто номер ячейки.
3. Nikanr - 22 Мая, 2021 - 13:36:26 - перейти к сообщению
Есть массив картинок, допустим порядок такой:
Некоторые картинки нужно искать в цикле, (событие 1 и 2 например). По мере развития игры в нее добавляются новые события которые так же нужно искать в цикле. В итоге при добавлении картинки нового события, номера всех картинок приходится смещать что бы получилось так:
Когда картинок 40+ каждый раз менять - довольно проблематично, поэтому появилась идея раскидать картинки по разным массивам и в нужные массивы просто в конец добавлять нужные картинки. Получился такой код:
P:S: dll взять тут и поместить на диск C\: dll. Картинки взять свои
Просто хотелось в load_image(address(#buffer_i[0]), ad_im[0], 50, 50); заменить 50 и 50 на размер ячеек передаваемого массива, вместо выделенного стандарта. Код не рабочий, картинки во 2м массиве не ищет (не довел до ума)
[i](Добавление)
И заодно хотел спросить но не по теме, почему грузится с ресурсов одно и то же изображение в 2 разных массива?
(Добавление)
Хотя вроде понял, адрес ячейки же...
CODE:
int Image[4][20][20]
0 - картинка меча
1 - некоторое событие 1
2 - некоторое событие 2
3 - картинка монстра
и т.д
0 - картинка меча
1 - некоторое событие 1
2 - некоторое событие 2
3 - картинка монстра
и т.д
Некоторые картинки нужно искать в цикле, (событие 1 и 2 например). По мере развития игры в нее добавляются новые события которые так же нужно искать в цикле. В итоге при добавлении картинки нового события, номера всех картинок приходится смещать что бы получилось так:
CODE:
int Image[5][20][20]
0 - картинка меча
1 - некоторое событие 1
2 - некоторое событие 2
3 - некоторое событие 3
4 - картинка монстра
и т.д
0 - картинка меча
1 - некоторое событие 1
2 - некоторое событие 2
3 - некоторое событие 3
4 - картинка монстра
и т.д
Когда картинок 40+ каждый раз менять - довольно проблематично, поэтому появилась идея раскидать картинки по разным массивам и в нужные массивы просто в конец добавлять нужные картинки. Получился такой код:
P:S: dll взять тут и поместить на диск C\: dll. Картинки взять свои
CODE:
external(INT, "load_image", "load_image", "C:\LoadImage.dll");
// адрес и размер массива
int ad_im[2][2] , Image_q[1][50][50], Image_w[1][50][50];
// имена картинок по группам
string m_namei[2] = {"q", "w"};
ad_im[0][0] = address(#Image_q[0][0][0]); ad_im[0][1] = sizearray(Image_q);
ad_im[1][0] = address(#Image_w[0][0][0]); ad_im[1][1] = sizearray(Image_w);
char buffer_i[99999];
for(int i = 0, n = 0; i < sizearray(ad_im); i++){ // пройтись по адресам массивов
for(int d = 0; d < ad_im[i][1]; d++){ // загрузить изображения соотв. размеру каждого массива изображений
resource(#buffer_i[0], "C:\_work\projects_\game1\Version\Img\"+format(d)+m_namei[n]+".bmp");
load_image(address(#buffer_i[0]), ad_im[i][0], 50, 50);
}
n++;
}
RESOURCE{
"C:\_work\projects_\game1\Version\Img\0w.bmp";
"C:\_work\projects_\game1\Version\Img\0q.bmp";
}
// адрес и размер массива
int ad_im[2][2] , Image_q[1][50][50], Image_w[1][50][50];
// имена картинок по группам
string m_namei[2] = {"q", "w"};
ad_im[0][0] = address(#Image_q[0][0][0]); ad_im[0][1] = sizearray(Image_q);
ad_im[1][0] = address(#Image_w[0][0][0]); ad_im[1][1] = sizearray(Image_w);
char buffer_i[99999];
for(int i = 0, n = 0; i < sizearray(ad_im); i++){ // пройтись по адресам массивов
for(int d = 0; d < ad_im[i][1]; d++){ // загрузить изображения соотв. размеру каждого массива изображений
resource(#buffer_i[0], "C:\_work\projects_\game1\Version\Img\"+format(d)+m_namei[n]+".bmp");
load_image(address(#buffer_i[0]), ad_im[i][0], 50, 50);
}
n++;
}
RESOURCE{
"C:\_work\projects_\game1\Version\Img\0w.bmp";
"C:\_work\projects_\game1\Version\Img\0q.bmp";
}
Просто хотелось в load_image(address(#buffer_i[0]), ad_im[0], 50, 50); заменить 50 и 50 на размер ячеек передаваемого массива, вместо выделенного стандарта. Код не рабочий, картинки во 2м массиве не ищет (не довел до ума)
[i](Добавление)
И заодно хотел спросить но не по теме, почему грузится с ресурсов одно и то же изображение в 2 разных массива?
(Добавление)
Хотя вроде понял, адрес ячейки же...