Показать сообщение отдельно
Старый 12.03.2012, 14:43
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 10  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Вот смотрите: Если мы в аутпуте видим "game over", значит у вас выполняется условие:
Код AS3:
if(head.x<10 || head.x>590 || head.y<10 || head.y>590)
					game_over();
То есть, например head.x меньше 10 (так сказано в условии), допустим "7", а y будет к примеру 25. Что происходит дальше:
Код AS3:
if (map[(head.x-10)/20][(head.y-10)/20]==1)
То есть
Код AS3:
if (map[(7-10)/20][(25-10)/20]==1)
Мы получаем элемент массива:
Код AS3:
map[-0.15][0.75]
Вы когда-нибудь видели в массиве индексы -0.15 и 0.75?

Добавлено через 53 секунды
return здесь ничего не решает. То есть он нужен, но сначала исправьте ошибку!

Добавлено через 8 минут
Меня вообще удивляет, как это работает:
Код AS3:
if (map[(head.x-10)/20][(head.y-10)/20]==1)
..............................................................
if (map[(head.x-10)/20][(head.y-10)/20]==2){
Вы же обращаетесь к массиву по НЕЦЕЛЫМ числам...
__________________
Я мало чего умею, но зато хорошо умею учиться...