Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 28.08.2004, 21:36
Thorin вне форума Посмотреть профиль Отправить личное сообщение для Thorin Посетить домашнюю страницу Thorin Найти все сообщения от Thorin
  № 1  
Thorin
 
Аватар для Thorin

Регистрация: Jun 2004
Адрес: Украина
Сообщений: 24
Отправить сообщение для Thorin с помощью ICQ
Smile Rpg игра

Я делаю во Flashe RPG игру. У меня проблемы с пересеканиями и штучным интеллектом противника. В исходнике персонаж-man двигается при помощи клавиши -w и мышки. Когда man проходит к стене перпендикулярно то он не проходит через стену, а когда под углом то проходит? Враг W двигается за man, я хочу сделать так чтоб W находился в map и при этом двигался и обходил препятствия? Можно ли так сделать чтоб man двигался при нажатии правой кнопки мышки? Буду рад любой помощи.


P.S. Здесь можно скачать альфа версию будущей игры. http://www.is.svitonline.com/thorin/theisleofdeath.zip
Вложения
Тип файла: zip the.zip (20.1 Кб, 27 просмотров)

Старый 29.08.2004, 15:18
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 2  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Во-первых я бы скорость кадров увеличил, а то 12 в секунуд - это издевательство над бедным игроком, по-моему.

Проблема у тебя не в том, как подходит чувак к стенке, а в том, c какого расстояния он делает последний шаг к ней. Если расстояние >=13 или 14 где-то, то все ок, игрок отбрасывается назад. Если меньше, то он попадает уже в саму стенку, и при проверке через getBounds возвращается уже другая граница стены (не сверху т.е. он уже соприкасается, а снизу). Откидывание и идет в противоположную сторону - вниз, и игрок проскакивает через стену. Угол тоже играет роль, но это таже история - шаг под углом - по диагонали например, иногда позволяет игроку точно войти в стену и прлететь через нее.

Решается трабла по-разному.

1) увеличь толщину стенки
2) чаще проверяй на совпадение (используй тогда уж интервалы)
3)уменьши скорость передвижения и отброса назад юнита - я один пиксел поставил, так ничего не проскакивало )
4) использовать свое выявление совпадений, вроде ручного определения границ объекта и координатов игрока.
5)сделать юнита не таким корявым. Круглым или какой-нибудь симметричной формы по возможности. А то лишние отростки при повороте вплотную к стенке мешаются

Вот такие пироги. И вообще при выявлении совпадений через getBounds желательно, чтобы одна цель (юнит в данном случае) была значительно меньше другой.

Если кто-нибудь знает, как при стенке толщиной в 2 пикселя и большом юните с быстрой скоростью передвижения (по 20 пикселов в кадр)при OnEnterFrame выявить точно совпадение - буду рад услышать. Я тоже такие траблы решал, но чтоб все было гладко и без единой задоринки ("под общий случай" ) - такого не было.

А чтоб обходил препятствия... Используй двумерный массив в качестве разметки игрового поля, с маленькими (ну или не малнькими, сам гляди) ячейками. Каждая ячейка будет содержать в себе три поля - свои координаты и занятость (пустая/непустая). Плавное перемещение по ним организовать просто, ну а AI в этом случае тоже достаточно прост. Смотри мой исходник в "Проекте конкурса" здесь же, в AS. Там не плавное перемещение, но сетка есть и код весь тоже. (совет: если делаешь RPG, может, модули будешь использовать (*.as), а то места под код не хватит )))))

Как долго объяснял Я аж вспотел Извините за засорение свободного места
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 29.08.2004, 23:55
quazare вне форума Посмотреть профиль Отправить личное сообщение для quazare Найти все сообщения от quazare
  № 3  
quazare
 
Аватар для quazare

Регистрация: Jul 2004
Сообщений: 430
посмотря игру создалось такое впечатление, что проверка идет по одной точке... нужно делать интервалы - например:

от _х до _х+_width.... и т.п.

посмотри у меня на страничке www.swf7.narod.ru игрушку exolon - проблема примерно такая же и вполне решена... разберись с кодом...

Старый 30.08.2004, 00:38
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 4  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Цитата:
от _х до _х+_width.... и т.п.
Если я правильно тебя понял, ты хочешь проверять совпадения по границам. Но так же сделано и у Thorin-а. Просто у него эти _x+_width заменяют xMax и yMax функции getBounds.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 30.08.2004, 00:46
quazare вне форума Посмотреть профиль Отправить личное сообщение для quazare Найти все сообщения от quazare
  № 5  
quazare
 
Аватар для quazare

Регистрация: Jul 2004
Сообщений: 430
можно по границам, еще проще HitTest...

Старый 30.08.2004, 00:51
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 6  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Да, но границы... Это не совсем точная проверка. Для сложных фигур она не супер. Или должна быть столь же сложной, по-мойму )
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 30.08.2004, 00:58
quazare вне форума Посмотреть профиль Отправить личное сообщение для quazare Найти все сообщения от quazare
  № 7  
quazare
 
Аватар для quazare

Регистрация: Jul 2004
Сообщений: 430
лучше всего hitTest - снимает кучу головняков!!!!

Старый 30.08.2004, 01:03
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 8  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Согласен
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 30.08.2004, 22:40
Thorin вне форума Посмотреть профиль Отправить личное сообщение для Thorin Посетить домашнюю страницу Thorin Найти все сообщения от Thorin
  № 9  
Thorin
 
Аватар для Thorin

Регистрация: Jun 2004
Адрес: Украина
Сообщений: 24
Отправить сообщение для Thorin с помощью ICQ
to artfla$her Спасибо за советы


А как на счет правой кнопки возможно ли ее забацать чтоб персонаж двигался ( типа как в NOX, если кто-то играл).

Старый 30.08.2004, 23:56
Thorin вне форума Посмотреть профиль Отправить личное сообщение для Thorin Посетить домашнюю страницу Thorin Найти все сообщения от Thorin
  № 10  
Thorin
 
Аватар для Thorin

Регистрация: Jun 2004
Адрес: Украина
Сообщений: 24
Отправить сообщение для Thorin с помощью ICQ
Цитата:
Смотри мой исходник в "Проекте конкурса" здесь же, в AS.
Можешь уточнить где твой исходник, а то чета я его не могу найти?

Создать новую тему   Часовой пояс GMT +4, время: 23:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.