Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.01.2012, 13:26
realist вне форума Посмотреть профиль Отправить личное сообщение для realist Найти все сообщения от realist
  № 1  
Ответить с цитированием
realist

Регистрация: Jan 2012
Сообщений: 2
По умолчанию Загрузка чисел из 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() для разбивания данных (по запятой и прямой черте).

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

Старый 12.01.2012, 14:24
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Массив стоит организовать иначе? Номер игрока, и ему соответствует пара x и y ? Разве нет?
(Кстати loadVariables() не нужно, нужно полностью использовать LoadVars, а для получения строки LoadVars.onData).

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


Последний раз редактировалось mooncar; 12.01.2012 в 14:35.
Старый 12.01.2012, 18:16
realist вне форума Посмотреть профиль Отправить личное сообщение для realist Найти все сообщения от realist
  № 3  
Ответить с цитированием
realist

Регистрация: Jan 2012
Сообщений: 2
По умолчанию Re: Загрузка чисел из txt файла в двумерный массив

Цитата:
Сообщение от mooncar Посмотреть сообщение

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

Старый 12.01.2012, 14:29
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 4  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
можно както вот так все это реализовать
Код 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;
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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