![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2005
Сообщений: 33
|
Добрый вечер.
Генерирую игровое поле из xml-данных, используя вложенные массивы. Для создания поля использую отдельный класс GameMatrix: package netgame { import flash.display.*; import flash.geom.*; public class GameMatrix extends Sprite{ //ширина ячейки public var cellSize:int = 40; //Размер поля в ячейках, передается в конструктор private var matrixX:int; private var matrixY:int; //контейнер для отображения игрового поля private var container:Sprite; //Основной массив матрицы public var matrixArray:Array = new Array(); //Вложенный массив для матрицы public var row:Array = new Array(matrixY); //Конструктор public function GameMatrix (newMX:int, newMY:int, targetContainer:Sprite){ matrixX = newMX; matrixY = newMY; container = targetContainer; //trace("Game x-matrix size: " + matrixX); //trace("Game y-matrix size: " + matrixY); //циклы создания поля for (var i:int = 0; i < matrixX; i++){ matrixArray[i] = row; for (var k:int = 0; k < matrixY; k++){ matrixArray[i][k] = new Sprite(); matrixArray[i][k].graphics.lineStyle(1); matrixArray[i][k].graphics.beginFill(0xFFFEEE, 1); matrixArray[i][k].graphics.drawRect(0, 0, cellSize, cellSize); matrixArray[i][k].x = i*40 + 50; matrixArray[i][k].y = k*40 + 50; container.addChild(matrixArray[i][k]); } } trace("GameMatrix x: " + matrixArray[0][1].x); trace("GameMatrix y: " + matrixArray[0][1].y); } } } Конструктор основного класса: public function GameClass () { function xmlLoaded(e:Event):void { remoteXml = new XML(xmlLoader.data); //trace (getRoot(remoteXml)) //trace (remoteXml.attributes()[0]); addChild(place); currentUserXpos = remoteXml.children()[0].attributes()[0]; currentUserYpos = remoteXml.children()[0].attributes()[1]; trace(currentUserXpos); trace(currentUserYpos); //currentUserYpos; matrix = new GameMatrix(remoteXml.attributes()[0], remoteXml.attributes()[1], place); userPlayer = new Sprite(); userPlayer.graphics.lineStyle(1); userPlayer.graphics.beginFill(0x000000, 1); userPlayer.graphics.drawCircle(0, 0, 10); userPlayer.x = matrix.matrixArray[currentUserXpos][currentUserYpos].x + matrix.cellSize/2; userPlayer.y = matrix.matrixArray[currentUserXpos][currentUserYpos].y + matrix.cellSize/2; trace("UserPlayer x: " + userPlayer.x); trace("UserPlayer y: " + userPlayer.y); place.addChild(userPlayer); //trace (currentUserXpos); //trace (matrix.matrixArray[3][5].y); } xmlLoader.load(xmlReq); xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); } } |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
for (var i:int = 0; i < matrixX; i++){ |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 33
|
Спасибо!!
|
|
|||||
|
Странно а у меня при таком же раскладе:
var cubes:Array = []; for (var y:int = 0; y<myXML.attribute("my"); y++) { cubes[y] = []; for (var x:int = 0; x<myXML.attribute("mx"); x++) { cubes[x][y] = new PoleMc(); trace(cubes[x][y]); cubes[x][y].x = x*50; cubes[x][y].y = y*50; addChild(cubes[x][y]); } } Цитата:
![]() |
|
|||||
|
__________________
я могу стать всем, если только захочу |
|
|||||
|
да не:
for (var x:int = 0; x<myXML.attribute("mx"); x++) { trace(x); cubes[x][y] = new PoleMc(); trace(cubes[x][y]); Цитата:
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
cubes[y][x] ?
|
|
|||||
|
точна х и у местами поменять
![]() Последний раз редактировалось Trains; 23.10.2009 в 02:20. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:35. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|