Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 18.07.2009, 11:47   #1
Fatalix3d
Разработчик
 
Аватар для Fatalix3d
 
Регистрация: 28.12.2008
Адрес: Алматы
Сообщений: 486
Написано 252 полезных сообщений
(для 1,160 пользователей)
Инвентарь

Ну как в многих RPG сделал такую вещь, при нажатие на сундук,сумку,труп,котелок для приготовления и тому подобных вещей появляется такой мини инвентарь с их содержимым как на скрине. Так вот собственно в чем вопрос он состоит из ячеек и я проверяю каждую ячейку таким образом:
If cell_1=1 Then DrawImageEx food_hleb,280+32,270+32
If cell_2=2 Then DrawImageEx food_apple,362+32,270+32
If cell_3=1 Then DrawImageEx food_hleb,444+32,270+32
If cell_4=12 Then DrawImageEx food_moloko,526+32,270+32
То есть каждому предмету присвоен свой номер.
Получается громоздко ведь для каждой ячейки пишу проверку на один и тот же предмет, и уже с небольшим количеством предметов список проверок становиться слишком большим. Интересует как можно сделать рисование предметов более универсальным. Спасибо за внимание.
Миниатюры
Нажмите на изображение для увеличения
Название: mush_room.jpg
Просмотров: 920
Размер:	248.0 Кб
ID:	6706  
(Offline)
 
Ответить с цитированием
Старый 18.07.2009, 13:21   #2
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Инвентарь

дерьмо=1
отвертка=2
ещё_чтото=3

Select итем_ин_ячейка
case 1
дравимазж дерьмо,ячейка_х+чета,ячейка_у+чета
case 2
дравимазж отвертка,ячейка_х+чета,ячейка_у+чета

ну и что-то вроде... хотя возмжно всё это абсолютно неправильно и опасно для здоровья
(Offline)
 
Ответить с цитированием
Старый 18.07.2009, 14:03   #3
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: Инвентарь

Ну, во-первых, не называй каждую ячейку инвентаря каким-то уникальным именем.
Делай массив (в данном случае: 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).

Как видишь, код очень простой и лаконичный.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Fatalix3d (18.07.2009)
Старый 18.07.2009, 15:14   #4
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Инвентарь

А я делаю так:
Есть Type Item, в ём в филдах записано название, картинка, характеристики и т.д.
А в инвентаре предметы заданы массивом Item'ов.
Field Items.Item[100]
Перебирая сей массив я читаю напрямую из итема, какую картинку рисовать и какую надпись писать:
DrewImageEx Inventory\Items[i]\Image,j*64, k*64
Ну ты понял.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Fatalix3d (18.07.2009)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инвентарь Sashka007 Blitz3D 1 10.08.2009 17:55
Инвентарь и HUD Тарас Шевченко 3D-программирование 4 17.01.2007 03:11
Инвентарь axel186 3D-программирование 5 16.07.2006 12:09


Часовой пояс GMT +4, время: 07:33.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com