Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Какой компонент подойдет для инвентаря


Автор: asdnmg7sdkw 4.2.2008, 18:39
Многие наверно играли в диабло или во что-то похожее. И там у персанажа есть инвентарь в который он все собирает. Какой компонент для этого подойдет?

Автор: Qu1nt 4.2.2008, 18:49
Советую забить на VCL и, например, начать изучать OpenGL или DirectX. Если лениво - используй TListBox какой-нибудь)

Автор: XperT 4.2.2008, 19:16
А что ты в инвентаре хранить хочешь? (картинки, картинки+даные, даные)

Автор: asdnmg7sdkw 4.2.2008, 19:18
картинки, а если пользователь выберет определенный предмет то должна выводится инфа о нем 

Автор: Qu1nt 4.2.2008, 19:20
Ну если картинки - используй TImage. В нем все и рисуй.

Автор: XperT 4.2.2008, 19:22
Ну если как в диабло, то количество ячеек в рюкзаку статично. Самый простой способ накидать на форму нужное количество ТImage которых будут сохранятса картинки, и масив стрингов с инфой о содержимом каждого Image (или же инфу тулить в хинт каждого Image)

Автор: THandle 4.2.2008, 19:24
XperT, а зачем несколько Image'ов? Достаточно и одного. 
А вообще, автор, советую изучить OpenGL или DirectX.

Автор: Sanchezzz 4.2.2008, 19:27
делаешь масив рекордов и храниш в них что хочешь.
рисунки хранить в imagelist а информацию хранить рекорде  imageid если -1 значит нет там нечего.

Код

uses windows ...

 type
  Titems = record
   other: array[1..10] of string;
   FileName: string;
   imageid : integer;
   
   bmp: TImage //только перед заполнение создать нужно будет.
 //итд сколько понадобится
end;

var
invent: array[1..10] of Titems;

...
begin
 invent[0].filename:='';
 invent[0].imageid:=-1;
end;



исправил ответ двоеточие забыл поставить...

Автор: THandle 4.2.2008, 19:51
Цитата(Sanchezzz @  4.2.2008,  19:27 Найти цитируемый пост)
uses windows ...
Код

 type
  Titems = record
   other: array[1..10] of string;
   FileName: string;
   imageid : integer;
   
   bmp: TImage //только перед заполнение создать нужно будет.
 //итд сколько понадобится
end;
var
invent: array[1..10] of Titems;
...
begin
smiles[0].filename='';
smiles[0].imageid=-1;
end;


Вот так конкретно я бы делать не стал.

Автор: Sanchezzz 4.2.2008, 20:01
а яб сделал. я показал пример как можно сделал а решать автору.
картинку в рекорде и яб не хранил. тольео название или номер название объекта. а грузил бы отдельно..
---
ладно THandle расскажи по чему ты бы не стал хранить так как я предложил?

Автор: asdnmg7sdkw 4.2.2008, 20:05
Спасибо за помощь, наверно попробую в Timage нарисовать  smile 

Автор: THandle 4.2.2008, 21:04
Sanchezzz, я как раз про TImage. Уж в крайнем случае TBitmap можно было б.

Автор: Sanchezzz 4.2.2008, 21:29
я просто воткнул туда Timage для показа что это можно сделать но его нужно каждый раз создовать точно также как Bitmap лучше всего делать некую переменную запись по которой уже распознавать и уже грузить в нужный битмап в нужный компонент или рисовать.

Автор: Snowy 5.2.2008, 15:31
TDrawGrid?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)