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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 20:23   #1
Homadrom
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 45
Вопрос Сетка в форме

Привет всем. Помогите пожалуйста, дайте идею или подсказку, как мне сделать сетку? Идея такова, Shape1 - двигающийся по стрелкам клавиатуры объект, двигается по форме с сеткой. Не могу никак придумать, как например сделать ячейку в сетке недоступной, то есть если ячейке задать как-нибудь значение 0, то по ней Shape1 перемещаться не будет, только по её краям, а у ячейки где задано значение 1, перемещаться будет. Вообще интересует столкновение. Как сделать стены для Shape1 на форме и как прописать их в код.
Homadrom вне форума Ответить с цитированием
Старый 27.02.2012, 21:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как мне сделать сетку?
Например используя DrawGrid
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.02.2012, 21:11   #3
Homadrom
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 45
По умолчанию

Stilet:
Это класс TCanvas?
Homadrom вне форума Ответить с цитированием
Старый 27.02.2012, 21:15   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это компонент TDrawGrid.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.02.2012, 21:17   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

TCanvas? Да, если речь идет о нем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.02.2012, 21:21   #6
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Используй мозаечные миры. Создай двумерный массив в котором будут все клетки. Две переменные в которых будет храниться твое местоположение. И когда будешь прописывать обнаружение нажатых клавишь, проверь заранее следующий клетку.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 27.02.2012, 21:35   #7
Homadrom
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 45
По умолчанию

Пепел Феникса:
Ну это я уже понял, но мне кажется что для таких целей не именно таблица нужна.

Stilet:
По-идее речь о нем.

vovken1997:
Какие мозаичные например?
Homadrom вне форума Ответить с цитированием
Старый 27.02.2012, 21:47   #8
Homadrom
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 45
По умолчанию

Скажу сразу, была попытка сделать что-то типа ограничения, то есть прописывал переменные v(длинна стены) и s(ширина стены), прописывал в стиле "For v:=*** to *** do ***", по идее работало если создать условие "if Shape1.Top=v then движение стоп", но когда доходил до нижнего правого угла фигура тупо останавливалась. Может ламерский метод я пробую, но я пока что учусь без ничего...

Извиняюсь если не совсем понятно описал что я проделывал...
Homadrom вне форума Ответить с цитированием
Старый 27.02.2012, 21:54   #9
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Зделай массив например 10*10 в зависимости от размера сетки. В него запиши 0 или 1 , ну если рассматривать твой случай. Зделай переменные, например x ,y. В них храни информацию о том в какой клетке ты находишься например x=5; y=3 . Чтоб определить в каком месте тебе надо вывести твой обьект умнож x на расстояние между двумя клетками и y тоже. В обработке клавишь проверяй например :
если нажата клавиша вверх то посмотрим какое значение хранится в клетке,в масиве (x-1,y) ,если 1 изменяй x на x-1 и перемещай обьект, если 0 ничего не делай.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-

Последний раз редактировалось vovken1997; 27.02.2012 в 22:31.
vovken1997 вне форума Ответить с цитированием
Старый 27.02.2012, 22:02   #10
Homadrom
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 45
По умолчанию

vovken1997:
Надо бы попробовать... А ты за сетку из каких объектов говоришь?
Homadrom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита и сетка pdf Foxx Microsoft Office Word 0 29.01.2012 23:17
Сетка на дисплее. aleks88ej Общие вопросы C/C++ 0 26.02.2011 16:25
Сетка координат Shyt JavaScript, Ajax 15 27.12.2010 17:55
Коордиатная сетка в печати 0mega Microsoft Office Excel 1 18.04.2010 11:45
Сетка Директор мира Microsoft Office Excel 2 10.10.2008 18:40