|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.03.2011, 12:17 | #521 |
Пользователь
Регистрация: 02.03.2011
Сообщений: 12
|
AlDelta, не очень вас понял, поясните пожалуйста
Гром, не очень хороший вариант, на форме полоски появляются, см. исходники |
03.03.2011, 12:44 | #522 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
а если не надо ему всё перерисовывать ??? тогда можно сделать так - копируется кусок из буфера фона, сохраняется, рисуется нужный объект на итоговое изображение, при необъодимости двигать объект на то же место рисуется сохраненный буфер, и вся процедура повторяется (только координаты вставки объекта и всё сопуствующее меняется)
пример во вложении, не моё , но я переделывал часть (ать )) не нашел переделанного проекта куда-то засунул... так что исходный кладу) |
03.03.2011, 12:59 | #523 |
Пользователь
Регистрация: 02.03.2011
Сообщений: 12
|
phomm, хороший пример, спасибо, то что нужно
|
03.03.2011, 13:27 | #524 |
Реанимируюсь...
Участник клуба
Регистрация: 19.07.2007
Сообщений: 1,445
|
1. Для формы DoubleBuffered в true
2. Все рисование на подложке. 3. На канве формы рисовать только полностью сформированный кадр. Элементарный ример: На форму TPaintBox, TTimer. Код:
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе... P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows" |
03.03.2011, 14:20 | #525 |
Реанимируюсь...
Участник клуба
Регистрация: 19.07.2007
Сообщений: 1,445
|
Пример с анимацией:
Код:
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе... P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows" |
04.03.2011, 10:51 | #526 |
Пользователь
Регистрация: 02.03.2011
Сообщений: 12
|
всем спасибо за вчерашние примеры, подскажите ещё пожалуйста, как сделать замедление движения, решил начать с простого и написать классический packman, код движения в таймере приведён ниже:
Код:
|
04.03.2011, 11:51 | #527 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
первое : в каждой ветке case не надо прописывать все те команды, которые и так повторяются (как я понял это команды заливки и рисовки), их надо вынести за case, даже для "неповторяющихся" команд можно определить закономерности, и уменьшить код
второе: для заливки области не надо использовать rectangle, а надо использовать fillrect , и тогда цвет пера не понадобится задавать третье: лишний бегин-енд в каждой ветке кейса, ведь в while и так уже делаешь блок кода ускорение - замедление - делается выставлением значения Interval для таймера, если у тебя всё по таймеру происходит и вообще, мне кажется странным такой код реализации движения... если интересны примеры, то глянь сюда , может полезно будет Последний раз редактировалось phomm; 04.03.2011 в 11:55. |
04.03.2011, 12:01 | #528 |
Пользователь
Регистрация: 02.03.2011
Сообщений: 12
|
phomm, нашёл ошибку, вместо while надо было if использовать, тогда он задержка таймера работает, за fillrect и ссылку спасибо, а код ещё будет оптимизирован, просто в целях экономии времени я копипастил участки кода, а в целом ещё раз спасибо за советы
|
08.03.2011, 01:10 | #529 |
Пользователь
Регистрация: 02.01.2011
Сообщений: 30
|
привет вам!
я в этот раз пишу pacman и у меня такой вопрос: как можно сделать так, чтобы призрак находил дорогу к pacman в лабиринте и за ним гонялся? |
08.03.2011, 01:25 | #530 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
Координаты: пакмэн - (Px, Py), злой дух (ZDx, ZDy). Злой знает где пакмэн, и дальше думаем, применяем формулу кратчайшего пути из точки А в точку Б, и начинаем двигать призрака по задуманым координатам (получившейся линии), координата точки линии равна координате стены лабиринта, то смещаем х или у на определенное число (Это если призрак сам не знает своего лабиринта) Но идея понятна я думаю.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |