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

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

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 17:50   #11
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

И, кстати, он действительно иногда застревает (герой), при чём по совершенно непонятным причинам. Просто стоит в углу и не реагирует на надатия стрелок. Вернее сказать, реагирует, но не полностью: изображение меняется (в какую сторону он должен двигаться), но движения не происходит.
По поводу анамации брилиантов:
если N - это номер кадра анимации, то замедлить можно, написав в таймере следующее:
Код:
if (bf == 4) then N = N + 1 
else bf = bf + 1;
так анимация замедлится в 4 раза
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 11.12.2009, 19:47   #12
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
он действительно иногда застревает
Странно, у меня вроде не застревал... А он точно в это время находится прямо напротив прохода? Если его квадрат хоть чуть-чуть упирается в стенку в направлении движения, то он и не должен двигаться (а шаг у него либо четверть либо, при ускорении, половина ширины "клетки") Впрочем, еще у себя попробую поискать такой эффект.
Цитата:
если N - это номер кадра анимации, то замедлить можно, написав в таймере следующее:
На самом деле увеличением номера кадра у меня занимается сам объект анимации - хранится этот номер в игровом объекте, передается анимации по ссылке (все это дело написано в C++ Builder'е), и уж та попутно его увеличивает. Можно, в принципе переписать так, чтоб была возможность менять кадр при каждом N-ном срабатывании таймера, но это дополнительный счетчик, дополнительная константа в анимации, дополнительный аргумент... Не знаю, целесообразно ли настолько усложнять...
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 12.12.2009, 10:57   #13
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Мне кажется, чтобы герой не застревал, нужно доделать так, чтобы если игрок отпустил клавиши, а сам персонаж находится в неудобной позиции (может застрять), то он (персонаж) должен еще продолжить свой путь сам, чтобы встать на свою клеточку. Тогда и застревать никогда не будет (ну почти)
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 12.12.2009, 11:43   #14
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

На вложении видно, где у меня застревает. Такое ощущение, что на клавиатуре зажали влево и не отпускают
Изображения
Тип файла: bmp застревает тут.bmp (951.0 Кб, 183 просмотров)
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 12.12.2009, 12:10   #15
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Сообщение от apromix Посмотреть сообщение
Мне кажется, чтобы герой не застревал, нужно доделать так, чтобы если игрок отпустил клавиши, а сам персонаж находится в неудобной позиции (может застрять), то он (персонаж) должен еще продолжить свой путь сам, чтобы встать на свою клеточку. Тогда и застревать никогда не будет (ну почти)
Мне кажется, что лучше сделать не так, а вот так:


пример кратенький:

111
p00
101

Будем считать, что 1 - стена, 0- проход, р - игрок.

Если игрок находится посередине (т.е. между нулем и той клеткой, где стоит буква р), и жмет клавишу вниз, то персонаж должен будет делать шаг в право, если есть проход вниз, в том направлении, куда игрок последний раз двигался. (т.е. автоматически доходить до прохода, при условии, что он не в ста километрах, а меньше, чем через 1 клетку.)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 12.12.2009, 14:48   #16
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

на самом деле, можно сделать проще.
когда игрок нажимает какую-либо курсорную клавишу, то, если туду есть проход, персонаж двигался не чуть чуть, как это сделано сейчас, а проходил всю клетку. Тогда и не будет упираний в сетну.
Правда, я наверно погорячился, сказав "проще", ибо не знаю, как устроен код игры
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 12.12.2009, 15:34   #17
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Все, я понял, в чем проблема!))) Ларчик-то просто открывался...)))
На самом деле герой не застревает - просто его размеры для программы составляют 40x40 пикселей, компьютер мнит его квадратом, а изображение героя находится примерно посередине этого квадрата. Т.е. по факту он в этот момент упирается в стенку, хотя из-за особенностей его изображения кажется, что он до нее не дошел!
Я-то к этому привык еще с тех пор, как он ходил строго по клеточкам, а внешне и впрямь кажется, что он застревает. В следующий раз или уменьшу его физический размер до визуального, или визуальный увеличу! Иначе и впрямь это сильно запутывает и вообще не дружественно по отношению к игроку!

А что касается внутреннего устройства игры, то как такового поля клеток у меня нет, и объекты могут иметь любые целочисленные координаты. Игрок же и его враги имеют свои координаты и скорость (скорость игрока меняется каждый шаг таймера по нажатию/отпусканию клавиш стрелок), а при движении проверяются их столкновения с другими объектами. А если они должны упереться в стенку, то каждый раз проверяется, не могут ли они все-таки пройти в этом направлении, но на меньшее расстояние.
А такая вот форма лабиринта осталась еще с предыдущей версии игры, когда все объекты располагались строго в клетках поля; теперь же я решил от этого отказаться.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 06.02.2010, 22:33   #18
Axiont
Новичок
Джуниор
 
Регистрация: 05.09.2009
Сообщений: 2
По умолчанию

Гром, не мог бы кинуть код мне на мыло, хотел бы разобраться поподробнее)) Axi2021@programist.ru
Axiont вне форума Ответить с цитированием
Старый 08.04.2010, 14:55   #19
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
Лампочка

Итак, после очень долгого перерыва в свет выходит новая версия игры! Привлекательность для игрока существенно повышена, геймплей улучшен!

Существенные (и не очень) изменения:
1. Игра полностью перерисована, убогая графическая составляющая осталась в прошлом.
2. В частности, движения ГГ и супостатов, а также бонусы анимированы.
3. Появилось игровое меню: начать игру, продолжить игру, помощь и выход.
4. Новый дизайн уровня использует возможности движка на полную катушку (отсутствует видимость сетки).
5. Добавлены звуки и фоновая музыка.
6. У ГГ теперь три жизни.
7. Добавлен новый бонус - неуязвимость.
8. Эффекты всех бонусов визуализированы.
Плюс пара мелких добавлений/исправлений.

АПД. 9. Да, еще теперь супостаты не пытаются тупо переться в стенку, уперевшись в нее, а сразу меняют направление движения.

Несколько комментариев:
1. Звуки теперь в игре есть, но в целом звуковое оформление, на мой взгляд, получилось препохабное. Звуки были хаотично надерганы из интернета, а подобрать приличную атмосферную фоновую музыку не удалось (и это, пожалуй, главный косяк). Если вдруг кому-то удастся сделать приличную озвучку - буду благодарен!
2. В правом нижнем углу есть камушек, запрятанный в очень тесном закутке. Интересность ситуации заключается в том, что высота закутка в точности равна высоте ГГ, поэтому для подбора этого камушка необходимо точное попадание ГГ в проход. После натыкания на ограду при движении вверх-вниз ГГ может оказаться на один пиксел выше или ниже зазора, поэтому для попадания в него необходимо предварительно выровняться о, например, надгробие, чтобы разность координат ГГ и закутка была кратна длине шага ГГ.
Этот момент, конечно, можно подправить, немного расширив закуток, но в этом есть какая-то интересная сложность, не находите?

Итак, прошу любить и жаловать!
Вложения
Тип файла: rar Операция Погостъ.rar (4.48 Мб, 37 просмотров)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же

Последний раз редактировалось Гром; 09.04.2010 в 00:25.
Гром вне форума Ответить с цитированием
Старый 08.04.2010, 15:49   #20
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Не плохо получилось. Правда после прохождения уровня как-то не понятно, жму кнопочки - никакой реакции, выхожу в меню - есть кнопка продолжить игру, которая не срабатывает. Ну и, само-собой, погостов мало. Добавить-бы десяток хот бы.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pacman Merkator Gamedev - cоздание игр: Unity, OpenGL, DirectX 13 12.02.2011 13:58
Прошу чуточку помочь. пишу игру Pacman на Turbo C++... Олегус Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 20.05.2009 23:57
Пишу Pacman. Нужна помощь. AngelOfDeath Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 07.10.2008 14:34