Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Тетрис. Вывод массива на экран. (http://www.flasher.ru/forum/showthread.php?t=203079)

Pokemon_3_lvl 29.08.2013 21:08

Тетрис. Вывод массива на экран.
 
Решил написать Тетрис на AS3.

для этого нужно создать массив массивов, т.е. поле игры, которое будет состоять из кубиков.

но вот не могу вывести массив массивов на экран.

должно получиться:

1 1 1
1 1 1
1 1 1

где вместо "1" будут кубики, и размер поля больше...

Код AS3:

var tf:TextField = new TextField;
        var arr:Array = [];
 
 
 
        for (i = 0; i < 3; i++)
        {
          arr[i] = [];
          for (j = 0; j < 3 ; j++)
          {
            arr[i][j] = "1";
          }
        }
 
        for each (var mas:String in arr)
        {
          tf.text = mas;
          addChild(tf);
          }

Результат на экране: 1,1,1

Dip52 29.08.2013 22:29

Возьмите этот пункт:
Код AS3:

for each (var mas:String in arr)
{
        tf.text = mas;
        addChild(tf);
}

И замените на этот:
Код AS3:

for each (var mas:String in arr)
{
        tf = new TextField();
        tf.text = mas;
        addChild(tf);
}

После этого вы снова увидите одно текстовое поле, чтобы это исправить, вам нужно заменить предыдущий пункт на этот:
Код AS3:

var l:int = arr.length;
for(var addedTextFields:int = 0; addedTextFields < l; addedTextFields++)
{
        var coordinateY:Number = 20 * addedTextFields;
        tf = new TextField();
        tf.y = coordinateY;
        tf.text = arr[addedTextFields];
        addChild(tf);
}


samana 29.08.2013 23:14

Для вывода значений из массива, цикл for each - не лучшее решение, так как результат может быть совсем не в правильной последовательности.
Лучше используйте обычный цикл for. Что-то в этом духе.
Код AS3:

tf.wordWrap=true
for (var i:int=0;i<arr.length;i++)
{
    tf.appendText(arr[i]+"/n");
}



Часовой пояс GMT +4, время: 10:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.