PDA

Просмотр полной версии : Блокировка игрока


КорДум
23.01.2008, 21:24
Здравствуйте, у меня вот такая проблема:
есть объект Clip1 и Clip2. Clip1 управляется клавишами и перемещается вверх, вниз, влево, вправо. Clip2 неподвижен. При столкновении Clip1 с Clip2 Clip1 не должен "залезать" на на другой клип, проверка, конечно, реализовывается с помощью hitTest. Помогите пожалуйста провести данную процедуру

примерный код:
clip1.onEnterFrame = function(){
if (Key.isDown(83)){
this._y -= 3;
}
if (clip2.hitTest(this)){
this._y += 4;
}
}

CrazyFlasher
23.01.2008, 22:41
вы с начала ознакомьтесь с правилами раздела, а потом пишите!

clip1.onEnterFrame = function(){
if (Key.isDown(83)){
this._y -= 3;
}
if (clip2.hitTest(this)){
this._y += 4;
}
}

etc
23.01.2008, 22:53
КорДум, отредактируйте свой пост и оформите код тегами .

КорДум
24.01.2008, 18:15
Приведенный мною код работает практически корректно, но при нажатии комбинаций клавиш (пример: вверх, вниз, влево) Clip1 безнаказанно преодолевает преграду и свободно передвигается по поверхности Clip2, при этом клавиши управления инвертируются. При движении обратно и желании всё вернуть как было Clip1 с очень большим трудом возвращается на место. Помогите пожалуйста разработать работающий нормально код...

Волгоградец
24.01.2008, 18:27
Самый корректноработающий алгоритм находится тут: http://noregret.org/tutor/n/. Но он достаточно сложен для понимания.

КорДум
24.01.2008, 20:04
Самый корректноработающий алгоритм находится тут: http://noregret.org/tutor/n/. Но он достаточно сложен для понимания.

Вы правы, он действительно сложен в понимании... Желание познать новые методы велико, так что на досуге изучу...

при нажатии комбинаций клавиш (пример: вверх, вниз, влево) Clip1 безнаказанно преодолевает преграду и свободно передвигается по поверхности Clip2, при этом клавиши управления инвертируются. При движении обратно и желании всё вернуть как было Clip1 с очень большим трудом возвращается на место

мне очень хочется узнать, почему так происходит, и как это можно исправить/подправить?