Создание игры
Хочу создать несколько игр(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),то есть указывать с какой стороны стены должна происходить эта проверка и тогда, если я врежусь слева, я остановлюсь, но смогу двигатся в другие оставшиеся стороны. Ну или подскажите любую другую функцию, которая меня выручит. Спасибо |
http://javascript.ru/forum/attachmen...1&d=1284908229
Вот скинул код на сайт, не знал что сюда заливать можно. |
Ладно, задам вопрос по другому. Есть два объекта(Марио и препятствие).
Как сделать так, что бы когда марио врезался в стену, он останавливался? Без свойвст x,y. Подкинте статьи про это, пожалуйста, либо я с радостью прочту ответ. |
Ну может я конечно не прав, не судите строго, но по-моему, Вам здесь вообще x и y не нужны. Во-первых, на мой взгляд, скорости должно быть две: вертикальная и горизонтальная, горизонтальная управляется стрелками, вертикальная прыжком и гравитацией (независимо от игрока). При столкновении со стеной Вам всего лишь надо горизонтальную скорость обнулить.
Мне так кажется. |
ну да :write: попов по своему прав
|
Часовой пояс GMT +3, время: 21:42. |