![]() |
Помогите разобраться с багом в игре змейка
Добрый день! Помогите разобраться с багом! Сижу над ним уже 12 часов. Баг в игре змейка. Всё работает хорошо. Кроме того, как змейка сталкивается с левой частью экрана- вылетает непонятная ошибка. Самое странное, что она вылетает после трейс game over , после чего по идее ничего не должно случаться. Error #1010: A term is undefined and has no properties
Заранее большое спасибо! Код AS3:
Код AS3:
|
В будущем используйте тег [АS3][/АS3] для оформления кода.
Чтобы отловить строчку, на которой вылетает ошибка, запустите флешку в режиме отладки. |
Режимом отладки пользовалась. Ошибка описана Error #1010: A term is undefined and has no properties. Больше никакой информации не выдаёт. Пробовала найти ошибку много часов, перед тем как задать вопрос в форум. Если можете помочь- буду рада.
|
На какую строчку ругается?
P.S. Естественно, что ваш код без остальных классов не запускается. |
Ну так важен не только текст ошибки, но и то место, из которого она вываливается. Когда флешка запущена в режиме отладки (ctrl + shift + enter), при возникновении ошибки флеш должен указать на конкретную строчку в коде.
Можно, конечно, долго сидеть и читать код, пытаясь найти ошибку, но зачем тратить время и нервы, когда для этого есть все необходимые инструменты? :) |
Подняла вторую часть кода.
Дебагер жалуется на 75 строчку в объекте Game. Что странно- это случается после trace game over [SWF] D:\FlashWorkspace\snakeGame\bin-debug\snakeGame.swf - 5,993 bytes after decompression game over TypeError: Error #1010: A term is undefined and has no properties. at Game/onEnterFrame()[D:\FlashWorkspace\snakeGame\src\Game.as:75] Вообще не понятно, как он дошёл до 75 строки, когда был уже trace game over. (paused=true).. :) |
Попробуйте :
Код AS3:
|
На 75 строчке вызов функции game_over(). Не до конца вы трейс ошибки нам даёте.
Может ошибка где-то в оставшейся части onEnterFrame, он же продолжит выполняться - конструкции return нет. Или в том месте где у вас обрабатывается turnQueue. |
Return помог, только не понимаю, что он мог изменить. Можете пожалуйста объяснить.
Всё до меня дошло! Он же просто возвращался в функцию. Надо было сделать либо Return либо esle if. Какая тупая ошибка :) Большое спасибо! |
Вот смотрите: Если мы в аутпуте видим "game over", значит у вас выполняется условие:
Код AS3:
Код AS3:
Код AS3:
Код AS3:
Добавлено через 53 секунды return здесь ничего не решает. То есть он нужен, но сначала исправьте ошибку! Добавлено через 8 минут Меня вообще удивляет, как это работает: Код AS3:
|
Hard Coder, такого не может быть. Он двигается каждый раз на 20, и также всегда (х-10)%20=0. То же самое для (у-10)%20=0.
Такой уж был масштаб. Начинается x=310 y=10. И постоянно меняется только на +-20. Добавлено через 1 минуту Всем большое спасибо! Буду стараться помогать другим :) |
Окей... Не может, так не может... Значит здесь именно ретерн нужен. Если вам интересно знать в чем была ошибка, читайте дальше - это полезно знать:
Змея начинает по иксу движение с 310 к нулю. 310 - 20 = 290 - 20 = 270...........50 - 20 = 30 - 20 = 10. Сейчас она на x = 10, ни одно условие не выполнилось. Змея дальше лезет к нулю. В следующем кадре ее икс опять уменьшается на 20 и стает еще меньше - "-10", потому что 10 - 20 = - 10. Так как "-10" меньше чем "10", то выполняется условие: Код AS3:
Код AS3:
|
Всем большое спасибо! Вот исправленный код, кому интересно. Буду стараться помогать другим :)
Код AS3:
Уже исправила! Большое спасибо! |
| Часовой пояс GMT +4, время: 21:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.