14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
|
|||||||||||
1 | |||||||||||
Создание класса на основе TImage23.11.2012, 18:10. Показов 3282. Ответов 6
Метки нет Все метки)
(
Просмотрел аналогичные темы, слишком сложно или не совсем то что нужно.
Нужно создать поле из клеток, у которых будут взяты свойства из TImage (картинка, left, top), а также добавлены свойства int status1, int status2 В хедере прописал:
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
23.11.2012, 18:10 | |
Ответы с готовыми решениями:
6
Создание класса-наследника TImage Создание класса-списка на основе кода со списком без класса Создание класса Polyline(многоугольник) на основе класса Line |
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
|
||||||
23.11.2012, 18:23 | 2 | |||||
Интересно звучит
![]()
Хотя на самом деле, рациональней создавать потомка от TImage и отрисовывать сетку через средства Canvas (или просто грузить одно изображение и производить отрисовку в зависимости от установленных свойств).
1
|
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
|
|||||||||||
23.11.2012, 20:00 [ТС] | 3 | ||||||||||
Не совсем понял что Вы сделали
![]() Есть территория состоящая из клеток. На клетках рандомно генерятся деревья и овцы. В зависимости от того, что находится на клетке Cell[x][y], у нее должна менятся переменная status (0 - если пусто, 1 - если дерево, 2 - если овца). Поскольку овцы будут перемещаться - то статус будет меняться. Помимо статуса у каждой клетки будет еще несколько аналогичных переменных. Сейчас сделано так
То есть по сути нужно все оставить как есть, но чтобы каждой клетке можно было присвоить значения переменных status и т.д. непосредственно. Вот как-то так ![]()
0
|
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
|
|||||||||||||||||||||||||||||||
23.11.2012, 21:08 | 4 | ||||||||||||||||||||||||||||||
Если память меня не подводит, то на форуме уже был пример реализации подобного (я про овец
![]() На самом деле, подобные задачи решаются 2 способами. Первый, это матричный, когда все объекты находятся в матрице, второй через обычный массив. Второй способ гораздо оптимальнее и позволяет уменьшить расход памяти и увеличить производительность за счет уменьшения количества производимых операций. Но давайте по порядку. Итак, создаем класс:
Итак, вернемся к нашим "овцам". Есть пара изображения клеток: (абстрактно) земля, вода. А так же пара изображений с альфа каналом (или с банальным ff00ff) для наложения на текстуру клетки, т.е. отображения объектов на сетке. Возникает вопрос, где хранить все это великолепие? Можно хранить изображения в каждой клетке, но тогда при изменении ее состояния заново грузить файл? Получается, как минимум, не рационально. Для хранения в классе изображений необходимо дополнить его:
Следующим шагом будет хранение информации о сетке. Создаем структуру клетки:
![]()
1
|
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
|
|
23.11.2012, 21:28 [ТС] | 5 |
Большое спасибо за развернутый ответ
![]()
0
|
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
|
|
23.11.2012, 21:54 | 6 |
Потому что, кроме крохотной инициализации не требуется дополнительных методов.
Как минимум - требуется в 10 раз меньше памяти. Добавлено через 10 минут ![]()
0
|
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
|
|
23.11.2012, 22:43 [ТС] | 7 |
то есть это только для заливки? у меня-то везде текстуры будут
![]()
0
|
23.11.2012, 22:43 | |
Помогаю со студенческими работами здесь
7
Создание класса который будет отображаться на канве TImage Создание класса на основе существующего Создание класса на основе компонента Создание класса на основе существующего? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |