Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.09.2010, 10:15
Аспирант
Отправить личное сообщение для daMage Посмотреть профиль Найти все сообщения от daMage
 
Регистрация: 31.07.2010
Сообщений: 35

Создание игры
Хочу создать несколько игр(Super Mario, к примеру), для комфорта нехватает несколько деталей. Вот одна из них: есть два объекта, 1 - динамический(Марио), 2 - статический(стена). Нужно, что бы когда Марио врезался в стену, он останавливался. Я использовал функцию hitTestObject().
Вот код: http://depositfiles.com/files/v05dd7ett со сценой.
В коде вы найдете строки:
private function manMove(event:Event):void {
	if(leftBindPressed && man.x > 0 + 24 && !man.hitTestObject(wall)) man.x -= speed;
	if(rightBindPressed && man.x < floor.width && !man.hitTestObject(wall)) man.x += speed;
	if(topBindPressed && man.y > 0 + 24 && !man.hitTestObject(wall)) man.y -= speed;
	if(bottomBindPressed && man.y < floor.y && !man.hitTestObject(wall)) man.y += speed;
}

Как видно из этого кода, проверка
!man.hitTestObject(wall)
появляется при кажом движении в разные стороны, то есть, если Марио,к примеру, врежится в стену, но двигатся он уже вобще не сможет, потому что на все четыре стороны проверка !man.hitTestObject(wall) будет выдавать true. Так вот вопрос: можно ли как то сделать проверку не так:
!man.hitTestObject(wall),
а так
!man.hitTestObject(wall.left),
то есть указывать с какой стороны стены должна происходить эта проверка и тогда, если я врежусь слева, я остановлюсь, но смогу двигатся в другие оставшиеся стороны. Ну или подскажите любую другую функцию, которая меня выручит. Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2010, 17:59
Аспирант
Отправить личное сообщение для daMage Посмотреть профиль Найти все сообщения от daMage
 
Регистрация: 31.07.2010
Сообщений: 35

http://javascript.ru/forum/attachmen...1&d=1284908229
Вот скинул код на сайт, не знал что сюда заливать можно.
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2010, 21:05
Аспирант
Отправить личное сообщение для daMage Посмотреть профиль Найти все сообщения от daMage
 
Регистрация: 31.07.2010
Сообщений: 35

Ладно, задам вопрос по другому. Есть два объекта(Марио и препятствие).
Как сделать так, что бы когда марио врезался в стену, он останавливался? Без свойвст x,y.
Подкинте статьи про это, пожалуйста, либо я с радостью прочту ответ.
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2010, 23:22
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 21.09.2010
Сообщений: 217

Ну может я конечно не прав, не судите строго, но по-моему, Вам здесь вообще x и y не нужны. Во-первых, на мой взгляд, скорости должно быть две: вертикальная и горизонтальная, горизонтальная управляется стрелками, вертикальная прыжком и гравитацией (независимо от игрока). При столкновении со стеной Вам всего лишь надо горизонтальную скорость обнулить.

Мне так кажется.
Ответить с цитированием
  #5 (permalink)  
Старый 11.03.2011, 22:30
Аватар для viy.li
Аспирант
Отправить личное сообщение для viy.li Посмотреть профиль Найти все сообщения от viy.li
 
Регистрация: 23.02.2011
Сообщений: 49

ну да попов по своему прав
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание скрипта! Создание диктанта для учеников! Елизавета Работа 10 30.06.2010 20:00
Создание копий объекта - обязателен ли prototype? heh131 Общие вопросы Javascript 12 15.05.2010 11:55
Оцените мой скрипт игры micscr Ваши сайты и скрипты 26 21.12.2009 09:50
Создание подстраницы php N_L Серверные языки и технологии 1 30.10.2009 03:05
Повторное создание iframe Smoke Events/DOM/Window 7 07.02.2009 14:14