![]() |
Инвентарь
Вложений: 1
Ну как в многих RPG сделал такую вещь, при нажатие на сундук,сумку,труп,котелок для приготовления и тому подобных вещей появляется такой мини инвентарь с их содержимым как на скрине. Так вот собственно в чем вопрос он состоит из ячеек и я проверяю каждую ячейку таким образом:
Цитата:
Получается громоздко ведь для каждой ячейки пишу проверку на один и тот же предмет, и уже с небольшим количеством предметов список проверок становиться слишком большим. Интересует как можно сделать рисование предметов более универсальным. Спасибо за внимание. |
Ответ: Инвентарь
дерьмо=1
отвертка=2 ещё_чтото=3 Select итем_ин_ячейка case 1 дравимазж дерьмо,ячейка_х+чета,ячейка_у+чета case 2 дравимазж отвертка,ячейка_х+чета,ячейка_у+чета ну и что-то вроде... хотя возмжно всё это абсолютно неправильно и опасно для здоровья |
Ответ: Инвентарь
Ну, во-первых, не называй каждую ячейку инвентаря каким-то уникальным именем.
Делай массив (в данном случае: dim object_inventory(2,2) ). Затем, когда стоит вопрос вывода картинок, делай что-то похожее на это: for y=0 to 2 for x=0 to 2 DrawImageEx(object_inventory(x,y),size_x*x+inv_lef t,size_y*y+inv_top) next next Где size_x,size_y - размер ячейки на экране, а inv_left и inv_top - x,y координаты левого верхнего угла инвентаря, от которого надо рисовать ячейки. Сами элементы массива object_inventory должны содержать "хэндлы" нужных тебе картинок. А по этим "хэндлам", в случае необходимости, нетрудно будет догадаться, какой именно предмет лежит в той или иной ячейке. "Хэндлы", если не совсем понятно, создавай, например, вот таким образом: food_hleb=CreateImageEx( LoadTexture ("food_hleb.png",1+2) , 256, 256). Как видишь, код очень простой и лаконичный. :) |
Ответ: Инвентарь
А я делаю так:
Есть Type Item, в ём в филдах записано название, картинка, характеристики и т.д. А в инвентаре предметы заданы массивом Item'ов. Field Items.Item[100] Перебирая сей массив я читаю напрямую из итема, какую картинку рисовать и какую надпись писать: DrewImageEx Inventory\Items[i]\Image,j*64, k*64 Ну ты понял. |
Часовой пояс GMT +4, время: 05:23. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot