obj.style.top и obj currentStyle.top
Пишу змейку.
Все работает правильно, за исключением одной детали - когда змейка съедает точку, она останавливается, а новая сама точка не генерируется. Сам, методом тыка, (и с помощью консоли) выяснил, что когда змейка съедает точку, новые координаты точке не присваиваются. Вот код point = document.getElementById('idp') function randPoint () // функция перемещает точку в случайную позицию. { var rndtop = parseInt(Math.random() * parseInt(gamebox.currentStyle.height)-8) //y новой точки var rndleft = parseInt(Math.random() * parseInt(gamebox.currentStyle.width)-8) //x новой точки rndtop = parseInt(rndtop / 8) * 8 // Это нужно, что бы координата была 0, 8, 16 и т.д. (Размер точки и кубика змейки 8х8) rndleft = parseInt(rndleft / 8) * 8 // Это нужно, что бы координата была 0, 8, 16 и т.д. (Размер точки и кубика змейки 8х8) for (i = 0; i < snk.length; ++i) //Проверяет, что бы точка не оказалась на змейке { if (snk[i].currentStyle.top == rndtop && snk[i].currentStyle.left == rndleft) { randPoint() return } } var top = rndtop + 'px' var left = rndleft + 'px' point.style.top = top point.style.left = left alert("1)" + point.currentStyle.top + " 2)" + point.currentStyle.left + "\n3)" + top + " 4)" + left) } При первом вызове функции при загрузке документа все работает нормально, алерт показывает что point.currentStyle.top и top равны 344px, а point.currentStyle.left и left равны 600px, т.е. так и должно быть. При втором вызове функции (когда змейка кушает) алерт показывает что top и left - 208px и 32px, а point.currentStyle.top(left) - пустые. Для кубиков змейки используется аналагичный трюк перемещения посл. кубика на место перед первого, и змейка отлично бегает. Скрипт расположен в концк документа, т.е. все обьекты и перемеееые созданы. Почему point.style.top point.style.left во второй раз не хотят принимать значения? |
Ничего не понятно. Вопрос -когда змея съедает точку она становится невидимой? Если да то чтоб она появилась -нужно сделать её видимой
|
Непонятно то, почему один раз point.style.top и point.style.left принимают значения, и все работает, а второй раз нет. Ведь условия одинаковые, передаются им допустимые данные... Может я что-то упустил?
|
По какой причине obj.currentStyle может возвращать пустую строку?
|
|
Спасибо, будем пробовать =)
|
Часовой пояс GMT +3, время: 12:30. |