![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 26.04.2008
Сообщений: 6
|
![]()
Игра пятнашки.Просмотрел много исходников, понял мало.
Решил что буду делать через линейный массив картинок.Создал record, в него входят x,y:integer(координаты) pic:TImage(изображении),onplace:boo lean(на своёмли месте картинка). Возник вопрос как создать весь этот массив картинок уже при работе программы? Или вобще лучше подругому риализовать? P.S: с делфи знаком совсем недавно.
дайвинг в програмирование!
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
![]()
А что именно за пятнашки?
Есть код где появляется рожица по которой надо кликать... Появляется в разных местах формы....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
![]() |
![]() |
![]() |
#3 |
Регистрация: 26.04.2008
Сообщений: 6
|
![]()
нет ,классические, картинка поделина 15 квадратиков, выстроееные 5 на 5... один пустой, на место это пустого может вставать один из рядом стоящих квадратов, нужно сбрать картинку в нормальное состояние.
дайвинг в програмирование!
Последний раз редактировалось rumf; 30.05.2008 в 00:29. |
![]() |
![]() |
![]() |
#4 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Способов несколько, можно вручную имиджей накидать, можно динамически их создать. А можно и вовсе имиджи не трогать, а использовать вместо них TBitmap. Имиджи создавать больше кода, клик мыши на себе каждый имидж обрабатывает. Битмапы создать легче, но нужно обрабатывать нажатия мыши по всему полю и определять квадрат попадания, так как битмап это просто растр в памяти.
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)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#5 |
Регистрация: 26.04.2008
Сообщений: 6
|
![]()
ну я думаю что всётаки остановлюсь на имейдже....я просто непонимаю какой функцией их создавать, если я через цикл for напишу,именно сам синтаксис создания, как выглядит?
дайвинг в програмирование!
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
![]()
для создания объектов предназначена специальная функция называемая конструктором(constructor). В Delphi она, как правило, называется Create, но может иметь и любое другое название.
Для визуальных компонентов создаваемых программно, необходимо также устанавливать свойство Parent.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 30.05.2008 в 19:21. |
![]() |
![]() |
![]() |
#7 | |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
![]() Цитата:
1. Массив 5х5 TBitmap. 2. Берётся картинка и режется на 25 частей. Заносится каждый кусок в массив. 3. Затем это отрисовывается на Image. Далее надо написать процедуру, которая будет определять координаты клика и: 1. Определять к какому квадратику изображения принадлежит. 2. Найти рядом пустую клетку. 3. Переместить туда изображение если такое место есть. 4. Проверить не собранна ли картинка.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 26.04.2008
Сообщений: 6
|
![]()
[Кртинку давно порезал на кусочки 73х73 пикселя(25 штук), Я думаю проще будет линейный масив, а в элементах 5, 10, 15 обнулять координаты X и увеличивать на 73 координаты Y... А вот как определить координы ты клика??
то что припомощи конструктора я понял ещё из хелпа, каак это в коде выглядить?напишите этот отрывок текста))
дайвинг в програмирование!
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
![]()
f:=TImage.Create(x);
f.parent:=xx; f.onClick:=myclickevent; вместо f ,x,xx myclickenvent свои описания поля переменные еще есть такая функция GetControlAtPos
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 30.05.2008 в 21:28. |
![]() |
![]() |
![]() |
#10 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Если ты будешь использовать имиджи, то координаты клика тебе не нужны, каждый имидж будет обрабатывать клик на себе.
Имидж нужно создать, назначить ему родителя, назначить процедуру на клик. Вот здесь >>> есть исходник простой игры, в нем то, что тебе нужно. Только качай мою версию, я там ошибки поисправлял. p.s. А битмапы все таки лучше )
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)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Delphi] Игра "Угадай число" | Bomber | Помощь студентам | 15 | 05.06.2008 09:34 |
Игра озеро на Delphi, нужна небольшая помощь | Serega123 | Помощь студентам | 11 | 03.06.2008 16:00 |
Игра "ЛОГИКА" (в Delphi) | KingArthur | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 15 | 22.04.2008 11:37 |
Игра "ЛОГИКА" (в Delphi) | KingArthur | Помощь студентам | 5 | 18.04.2008 19:12 |
игра S.T.A.L.K.E.R. | rpy3uH | Свободное общение | 7 | 10.04.2007 00:17 |