Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Загрузка чисел из txt файла в двумерный массив (http://www.flasher.ru/forum/showthread.php?t=173832)

realist 12.01.2012 13:26

Загрузка чисел из txt файла в двумерный массив
 
Товарищи, здравствуйте.

Говорю сразу - подобные темы есть, но они все очень туманны для меня и не совсем подходят. Сам я не программист и мне сложно разобраться в коде, который пишут люди в тех темах, что бы потом использовать его под свои нужды. Я, конечно, сам попробую разобраться, но понимаю, что это пустяковая задача и если кто-то поможет я буду чрезмерно благодарен.

Немного отвлекусь от темы и скажу зачём всё это нужно. Я играю в одном виртуальном футбольном менеджере, но у нас матчи проходят только в текстовом виде. Мне же захотелось сделать передвижение игроков по полю.
Как добавить игроков на поле, как заставить их плавно двигаться я уже разобрался. Но сейчас у меня игроки двигаются по координатам, которые я прописал в самой флешке. А вот как загрузить эти координаты из внешнего файлика я пока не до конца разобрался. какие то намётки есть, но пока они не сформировались в решение.

Значит задача такая - в тхт файлике (test.txt) лежит много-много цифр в таком формате

Код:

4,0,4,1|3,1,2,7|4,0,4,1
( я его сократил для удобства. Реально там цифр столько - координата Х и Y 22 игроков и мяча э то 46 цифр в одной строке. и строк таких штук 600. Итого 2500-3000 цифр).

Необходимо эти цифры загрузить в двумерный массив таким образом:
первое число - 1 элемент массива, через запятую второй элемент, и т.д. Прямая черта это переход на вторую строку массива.
Ну вот так вот:
Код:

4 0 4 1
3 1 2 7
4 0 4 1

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

Предполагаю, что нужно использовать loadVariables() - для загрузки данных, LoadVars.onLoad - для определения момента, когда все данные загрузятся, два метода String.split() для разбивания данных (по запятой и прямой черте).

В принципе наверное и всё, но чего то у меня уже голова пухнет, когда я пытаюсь это связать воедино.

mooncar 12.01.2012 14:24

Массив стоит организовать иначе? Номер игрока, и ему соответствует пара x и y ? Разве нет?
(Кстати loadVariables() не нужно, нужно полностью использовать LoadVars, а для получения строки LoadVars.onData).

PS. То есть строка 4 0 4 1 5 6 7 8 рассматривается так - x и y первого игрока - это 4 и 0, второго - 4 и 1 и т.д. Так?
А зачем несколько строк? В чем игровой смысл?

lexa2000lexa 12.01.2012 14:29

можно както вот так все это реализовать
Код AS1/AS2:

var my_lv:LoadVars = new LoadVars();
my_lv.onData = function(success:String) {
        if(success){
                arr = parse(success);
                trace(arr[0]);
        }
};
my_lv.load("test.txt");
 
 
function parse(str:String):Array {
        var arr:Array = str.split("|");
        for (var i:Number = 0; i<arr.length; i++) {
                var array:Array = arr[i].split(",");
                arr[i] = array;
        }
        return arr;
}


realist 12.01.2012 18:16

Re: Загрузка чисел из txt файла в двумерный массив
 
Цитата:

Сообщение от mooncar (Сообщение 1056317)

PS. То есть строка 4 0 4 1 5 6 7 8 рассматривается так - x и y первого игрока - это 4 и 0, второго - 4 и 1 и т.д. Так?
А зачем несколько строк? В чем игровой смысл?

Именно так. 1 игрок в начале игры стоит в координате 4х0, второй игрок в 4х1 и т.д.
А вторая строка - это как раз положение этих игроков после какого-то действия (пас, удар).
То есть по-сути каждая строка массива это положение игроков в новый момент. и так все 90 минут.
Вот мне и нужно плавненько двигать игрока от одной его координаты к другой. И так все действия пройти.
Забивая координаты жёстко в код (просто её задавая в двумерном массиве) у меня всё получилось. А вот на моменте, когда надо грузить данных из вне я завис.


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

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