|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.02.2010, 22:45 | #1 |
Пользователь
Регистрация: 18.12.2008
Сообщений: 47
|
Проблема с прозрачностью (Transparent)
Спасибо за помощь. Немного отвлекусь от монстров: у меня возникла проблема с прозрачностью игрока - то есть при его движении он перекрывается фоном соседних клеток - не работает "Transparent:= true;"
В общем, сами посмотрите. Остальные монстры не двигаются(так пока-что надо). Первоначально игроком должен был быть "Pictures/player1.bmp" - он и сейчас им должен быть. P.S. Очень срочно надо.Заранее благодарю |
19.02.2010, 23:13 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Помимо Transparent необходимо еще установить TransparentColor на значение цвета прозрачности. Т.е. если TransparentColor будет clRed, то при рисовании функцией Draw прозрачными будут все пиксели этого цвета.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
19.02.2010, 23:33 | #3 |
Пользователь
Регистрация: 18.12.2008
Сообщений: 47
|
Не работает. Попробуй пожалуйста исправить в моем коде.
А за что отвечает свойство TransparentMode и какие оно значения может принимать? |
20.02.2010, 10:55 | #4 |
Я еще только учусь
Форумчанин
Регистрация: 24.10.2009
Сообщений: 125
|
Чтобы свойство Transparent работало, нужно чтобы область, которая вырезается была залита однородным цветом...
И если использовать Transparent, то нужно, чтобы сзади объекта был какой-либо фон - в Вашем случае дорога. А чтобы был фон, нужно всю область карты залить этим фоном... P.S. А игрок перетирался потому, что Вы текстуры рисовали после игрока, т.е. поверх него... Последний раз редактировалось Ckomoroh; 20.02.2010 в 19:44. |
21.02.2010, 02:35 | #5 |
Пользователь
Регистрация: 18.12.2008
Сообщений: 47
|
Поиск пути
00:03
Большое спасибо! Скажите пожалуйста, а для чего нужен вывод объектов на экран, сразу после того, как они были сгенерированы. 02:35 Теперь возникла проблема с поиском пути в этой же игре. Использую волновой алгоритм + рекурсивную функцию. Помогите пожалуйста разобраться, что не так (монстры считаются как проходимые клетки). У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом. Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе... Уважайте форумчан, и они ответят вам взаимностью... Модератор Последний раз редактировалось mihali4; 21.02.2010 в 02:44. |
21.02.2010, 12:52 | #6 |
Я еще только учусь
Форумчанин
Регистрация: 24.10.2009
Сообщений: 125
|
Вывод не был нужен...прсто в больших проектах выводить постоянно в таймере очень ресурсоемко, нужно выводить, только если персонаж подвинулся или произошли какие-то действия, а тогда начальную картинку нужно будет вывести...
Про поиск пути к сожалению не знаю - я для этого слишком глуп!....=( |
23.02.2010, 00:06 | #7 | |||
Пользователь
Регистрация: 18.12.2008
Сообщений: 47
|
Время действия бонуса
1. У меня через определенное время после "поднятия" игроком бонуса скорости есть,допустим,5 секунд,в течение которых скорость по x и по y увеличивается в 2 раза(например). У меня не получается с реализацией:
Цитата:
Я подозреваю, что ошибка в том, что данный код находится в обработчике события таймера. Надо ли как-то использовать св-во Timer1.Interval, равный у меня 50? Проблема кроется в том, что каждые 50 миллисекунд у меня начинается новый отсчет, потому что btime:= gettickcount; находится в обработчике события таймера. Я ставил его вне таймера - тогда ускорения не было вообще. Как решить данную проблему? Помогите пожалуйста, очень срочно надо. 2. Возвращаюсь опять к поиску пути. При запуске выскакивает ошибка(смотреть screen1.jpg).Stack overflow(переполнен стэк памяти) - я так понимаю, это происходит из-за бесконечного поиска. Верна ли моя догадка? Что не так? Код: Цитата:
3. Чуть-чуть продвинулся, немного улучшил поиск пути, но он все равно не работает. Специально сделал так, чтобы выводился массив counts в каждую клетку - и что выходит? Все элементы массива counts равны нулю! Почему это происходит? Может, как-то надо инициализировать массив или рекурсивную функцию? Цитата:
Последний раз редактировалось Pyton; 23.02.2010 в 12:22. Причина: спешу! |
|||
23.02.2010, 14:02 | #8 |
Я еще только учусь
Форумчанин
Регистрация: 24.10.2009
Сообщений: 125
|
Насчет бонусов.
Заводите переменные - текущий шаг бонуса(btek), и время которое действует бонус(b) и маркер взят ли бонус(bmar). После чего в условие взятия бонуса пишите. Код:
Код:
|
23.02.2010, 19:25 | #9 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Ребят, вы в курсе как тема именуется?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
25.02.2010, 00:17 | #10 |
Пользователь
Регистрация: 18.12.2008
Сообщений: 47
|
Ура! Ура! Ура! Я решил проблему с поиском пути - я использовал другой алгоритм: поиск в глубину. Хотя многие его недолюбливают, он все равно имеют право на существование. Он не находит кратчайший путь, но для моей игры это и не надо - надо просто проверить, есть ли вообще путь.
С этой задачей он справляется на ура, учитывая еще то, что размеры карты невелики - всего 300 клеток. Но после удачного решения возникла новая проблема: дело в том, что после генерации карты я сразу проверяю, есть ли путь. Если нету, то генерю карту до тех пор, пока ни появится хоть один путь. Все бы было хорошо, так как, еще раз повторюсь, путь он находит четко, и останавливается вовремя, но резко начинает тормозить, вследствие чего игра уже не работает: игрок попросту не может сдвинуться с места, так как комп не реагирует на нажатия клавиш. Также нагрузка на проц достигает 50% и более! То есть в обычном режиме, до запуска игры, 10%, после запуска с проходимой картой - 15%, а после долгой генерации зашкаливает! Мое предположения: после поиска пути в памяти остается слишком много мусора, возможно, проблема в том, что картинки засоряют память! То есть каждая занимает чуть более 3 кб места, карта - 300 клеток, следовательно, после 20 одновременных генераций(а такое у меня было) сжираются 20 мб памяти и переполняется стэк. Как решить данную проблему и верны ли мои предположения? Последний раз редактировалось Pyton; 25.02.2010 в 00:20. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нормальный Transparent в Image??? | Fre5h | Компоненты Delphi | 1 | 10.07.2008 08:44 |
Помогите с прозрачностью | Maxone | Общие вопросы .NET | 0 | 25.05.2008 08:37 |
Помгите с прозрачностью формы? | SeЯgey | Помощь студентам | 3 | 16.05.2008 22:45 |
Текст с прозрачностью | mutabor | Общие вопросы Delphi | 3 | 10.03.2008 20:33 |
Transparent в TMemo | Roof | Помощь студентам | 2 | 01.08.2007 20:48 |