![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2012
Сообщений: 48
|
Здраствуйте, не работает часть кода где начинается двойной условие, там выбивается такие ошибки:
Монтажный кадр 1, слой "code", кадр 1, строка 120 1084: Синтаксическая ошибка: identifier перед logicaland. Монтажный кадр 1, слой "code", кадр 1, строка 120 1084: Синтаксическая ошибка: semicolon перед rightparen. Монтажный кадр 1, слой "code", кадр 1, строка 123 1083: Синтаксическая ошибка: else не ожидается Монтажный кадр 1, слой "code", кадр 1, строка 126 1083: Синтаксическая ошибка: else не ожидается function chekim (e:Event):void { if (wallLeft.hitTestObject(player as DisplayObject)) { movingLeft = false; trace(movingLeft); }else if (wallDown.hitTestObject(player as DisplayObject)){ movingDown = false; trace(movingDown); } else if (wallRight.hitTestObject(player as DisplayObject)){ movingRight = false; trace(movingRight); } else if (wallUp.hitTestObject(player as DisplayObject)){ movingUp = false; trace(movingUp); } else if (wallUp.hitTestObject(player as DisplayObject)) && (wallleft.hitTestObject(player as DisplayObject)){ movingUp = false; movingLeft = false; } else if ((wallUp.hitTestObject(player as DisplayObject)) && (wallRight.hitTestObject(player as DisplayObject))){ movingUp = false; movingRight = false; } else if (wallDown.hitTestObject(player as DisplayObject)) && (wallLeft.hitTestObject(player as DisplayObject)){ movingDown = false; movingLeft = false; } else if (wallDown.hitTestObject(player as DisplayObject)) && (wallRight.hitTestObject(player as DisplayObject)){ movingRight = false; movingDown = false; } } |
|
|||||
if (wallDown.hitTestObject(player as DisplayObject)) && (wallLeft.hitTestObject(player as DisplayObject)) Да и не только здесь. Компилятор все правильно рассказывает.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
В трех местах. Используйте редактор с подсветкой.
function chekim (e:Event):void { if (wallLeft.hitTestObject(player as DisplayObject)) { movingLeft = false; trace(movingLeft); }else if (wallDown.hitTestObject(player as DisplayObject)){ movingDown = false; trace(movingDown); } else if (wallRight.hitTestObject(player as DisplayObject)){ movingRight = false; trace(movingRight); } else if (wallUp.hitTestObject(player as DisplayObject)){ movingUp = false; trace(movingUp); // Вот здесь не хватает скобок } else if (wallUp.hitTestObject(player as DisplayObject)) && (wallleft.hitTestObject(player as DisplayObject)){ movingUp = false; movingLeft = false; } else if ((wallUp.hitTestObject(player as DisplayObject)) && (wallRight.hitTestObject(player as DisplayObject))){ movingUp = false; movingRight = false; // Здесь } else if (wallDown.hitTestObject(player as DisplayObject)) && (wallLeft.hitTestObject(player as DisplayObject)){ movingDown = false; movingLeft = false; // и здесь } else if (wallDown.hitTestObject(player as DisplayObject)) && (wallRight.hitTestObject(player as DisplayObject)){ movingRight = false; movingDown = false; } } |
|
|||||
if ( wallLeft.hitTestObject( player as DisplayObject ) ){ movingLeft = false; trace( movingLeft ); }else if ( wallDown.hitTestObject( player as DisplayObject ) ){ movingDown = false; trace( movingDown ); } else if ( wallRight.hitTestObject( player as DisplayObject ) ){ movingRight = false; trace(movingRight); } else if ( wallUp.hitTestObject( player as DisplayObject ) ){ movingUp = false; trace(movingUp); } else if ( wallUp.hitTestObject( player as DisplayObject ) && wallleft.hitTestObject( player as DisplayObject ) ){ movingUp = false; movingLeft = false; } else if ( wallUp.hitTestObject( player as DisplayObject ) && wallRight.hitTestObject( player as DisplayObject ) ){ movingUp = false; movingRight = false; } else if ( wallDown.hitTestObject( player as DisplayObject ) && wallLeft.hitTestObject( player as DisplayObject ) ){ movingDown = false; movingLeft = false; } else if ( wallDown.hitTestObject( player as DisplayObject ) && wallRight.hitTestObject( player as DisplayObject )){ movingRight = false; movingDown = false; } |
|
|||||
|
Регистрация: Jul 2012
Сообщений: 48
|
Всем спасибо за ответы, а ответьте пожалуйста почему эти двойные условия не выполняются? То есть врезание в левую стену оно фиксирует, а верхнюю уже нет, и оно продолжает пролетать...
|
|
|||||
|
Регистрация: Jul 2012
Сообщений: 48
|
Все разобрался. Надо было перед началом двойных условий убрать else и оставить только if. Всем огромное спасибо.
|
|
|||||
|
Регистрация: Jul 2012
Сообщений: 48
|
Такая проверка необходима на углах, где стены пересекаются.
|
|
|||||
|
вы дублируете проверки, вот я о чем. если для левой стены проверка проведена и значение выставлено в false, то ниже уже не нужно эту проверку проводить (даже в сочетании с другими сторонами ), справедливо это и для всех остальных сторон.
то есть такое выражение: if ( wallLeft.hitTestObject( player as DisplayObject ) ){ movingLeft = false; trace( movingLeft ); } if ( wallDown.hitTestObject( player as DisplayObject ) ){ movingDown = false; trace( movingDown ); } if ( wallRight.hitTestObject( player as DisplayObject ) ){ movingRight = false; trace(movingRight); } if ( wallUp.hitTestObject( player as DisplayObject ) ){ movingUp = false; trace(movingUp); } Последний раз редактировалось fish_r; 24.09.2012 в 02:10. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|