![]() |
|
||||||||||
|
|||||
|
Banned
Регистрация: Jan 2013
Сообщений: 14
|
пишу сапера,выставляю мины в цикле for ,необходимо спрятать их на нулевую глубину.
Помню что то вроде : Попробовал,не вышло какие могут быть еще варианты? вот сам код //цикл выставления мин for(var i1:int = 0 ; i1 < mineNumber ; i1++ ) { var mine:Mine = new Mine(); //каждую иттерацию создаем минку var locationMineX:int = 30 * Math.floor(Math.random()*mineNumber );//рандом координаты по х var locationMineY:int = 30 * Math.floor(Math.random()*mineNumber );//рандом коорды по у locationMineX = locationMineX - locationMineX % 30;//пересчитываем для кратности 30(размеру кнопки/мины) locationMineY = locationMineY - locationMineY % 30;//пересчитываем для кратности 30(размеру кнопки/мины) mine.x = clBtn.startLocationX + locationMineX;//используем коорды поля для начального отсчета mine.y = locationMineY; arrMine.push(clBtn.startLocationX + locationMineX,locationMineY);//добавляем в конец массива коорды setIndexChild(mine,0); // ОШИБКА!ОПИСАНИЕ НИЖЕ. addChild(mine) } Последний раз редактировалось iNils; 28.01.2013 в 12:16. |
|
|||||
|
Цитата:
__________________
adobe AS3 manual |
|
|||||
|
Banned
Регистрация: Jan 2013
Сообщений: 14
|
Не помогло
|
|
|||||
|
addChildAt(mine, 1);
![]() Не ясно же, где находится вызов ф-ции, не ясно куда добавляется элемент. сколько вообще объектов на сцене, посмотрите numChildren свойство у контейнера
__________________
adobe AS3 manual |
|
|||||
|
Banned
Регистрация: Jan 2013
Сообщений: 14
|
|
|
|||||
|
Регистрация: Apr 2012
Сообщений: 88
|
Зачем мины расставлять заранее? Можно же при открытие ячейки вставлять.
|
|
|||||
|
Неправда. Кучу раз убивался. Откройте, да попробуйте.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
[+4 08.09.13]
Регистрация: May 2012
Сообщений: 131
|
Вы сами-то свой код читали? Или писали не глядя?
Сначала - добавить нужно. И только потом задавать индекс. И, для справки: Добавлено через 31 минуту Собственно, не совсем понятна логика построения игры. Вместо того, чтобы расставлять мины под клетки - не проще ли сделать саму клетку носителем этой информации? В таком случае, у вас клетка будет иметь 5 состояний: -клетка закрытая -клетка помеченная флагом -клетка открытая -клетка с цифрой -бомба Расставляете клетки: var emptyCells:Vector.<GameCell> = new Vector.<GameCell>(); var bombCells:Vector.<GameCell> = new Vector.<GameCell>(); var bombMap:BitmapData = new BitmapData(tableWidth, tableHeight, true, 0); var i:int, j:int; for (i = 0; i < tableHeight; i++) { for (j = 0; j < tableWidth; j++) { var gameCell:GameCell = new GameCell(); gameCell.position = new Point(i, j); emptyCells.push(gameCell); } } for (i = 0; i < bombsToPlace; i++) { var num:int = Math.floor(Math.random() * emptyCells.length); var bombCell:GameCell = emptyCells[num]; bombCell.setBombState(); emptyCells.splice(num, 1); bombCells.push(bombCell); bombMap.setPixel(bombCell.position.x, bombCell.position.y, 1); } В котором добавлять к счётчику единичку Таким образом получите и счётчики на клетках. А дальше вешаете на контейнер 1 листенер. По клику достаёте И вызываете у неё какой-нибудь метод open(); Скажем, по коллбеку вызываете проверку логики. О_о Вот и вся игра. Последний раз редактировалось Frost47rus; 28.01.2013 в 06:40. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|