Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2009, 14:12   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Сообщение Создание объектов с хендлом

Допустим у нас есть класс создания персонажа - актера:

Код:
//TSprite класс спрайта

Type
 TActor = class
private
    FName : string; //Имя актера
    FHandle : array[0..50000] of TSprite;
public
   constructor Create;
   procedure Create_Actor(x,y,handle:integer);

end;


{ TActor }

constructor TActor.Create;
begin

end;

procedure TActor.Create_Actor(x, y, handle: integer);
begin
 FHandle[handle] := TSprite.create;
  FHandle[handle].left := x;
   FHandle[handle].top := y;
end;
как лутче использовать хендл,
массив в классе или массив глобальный?
VintProg вне форума Ответить с цитированием
Старый 26.07.2009, 01:15   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а какое тут назначение для хендла?

хм...такой статический массив...интерестно как скоро память кончится?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.07.2009, 02:36   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
интерестно как скоро память кончится?
Смотря что есть TSprite

По теме: лучше не так и не так, а динамический. Где его лучше объявить это вам виднее, откуда я знаю где он используется? Независимо от того где его объявлять, нужно следить за своевременным освобождением памяти если она уже не нужна.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 26.07.2009, 16:11   #4
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от VintProg Посмотреть сообщение
как лучше использовать хендл,
массив в классе или массив глобальный?
Без разницы, где удобнее. Вместо прежнего обявления массива напиши так:
Код:
FHandle : Array of TSprite;
Рули размером массива в зависимости от подгрузки, через SetLength, или GetMem, только не завывай выгружать если не нужно через FreeMem.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 28.07.2009, 10:15   #5
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Разве в савременых играх как gta или еще че либо используют
такой способ создания объектов с хендлом?
VintProg вне форума Ответить с цитированием
Старый 28.07.2009, 10:30   #6
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Какая разница как кто-то делает, у каждого свой подход.
Вадим Буренков вне форума Ответить с цитированием
Старый 28.07.2009, 11:35   #7
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Я вот слыхал както это можно сделать без массива как то с указателями,
может кто подскажет как это реализовать,
вобще сколько способов существует?
VintProg вне форума Ответить с цитированием
Старый 28.07.2009, 11:46   #8
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

По мне лучше делать через динамический массив.
Вадим Буренков вне форума Ответить с цитированием
Старый 28.07.2009, 12:03   #9
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
По мне лучше делать через динамический массив.
Да это в принципе не плохо,но я нарвался на такую штуку
setLenght - выделять динамический массив бесконечно нельзя,
а преставить себе это:
Код:
var
obj : array of TObjects_game; //Динамические объекты в игре
obj_st : array of TObjects_game_st; //Станционарные объекты в игре
act : array of TActor; //Актеры
cars : array of TCar; //Машины
//Итак далие ...
Когда навалом надо памяти а не хватает что делать тогда?
VintProg вне форума Ответить с цитированием
Старый 28.07.2009, 16:04   #10
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

А вы собрались бесконечно выделять память для новых объектов, не удаляя из системы неиспользуемые?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MapX создание объектов Google[Bot] Компоненты Delphi 7 27.01.2012 08:33
Динамическое создание объектов Костян Пират Общие вопросы Delphi 12 24.05.2011 18:39
Создание/уничтожение объектов nimf Общие вопросы Delphi 10 14.04.2008 10:54
Динамическое создание объектов LepihinMS Общие вопросы Delphi 18 05.07.2007 23:31
Создание новых объектов Washington Общие вопросы Delphi 1 10.03.2007 21:57