Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Пятнашки на AS3.0 (http://www.flasher.ru/forum/showthread.php?t=137597)

AgentxXx 17.03.2010 18:10

Пятнашки на AS3.0
 
Всем добрый день! Хотелось бы написать пятнашки, но застопорил такой момент: хотел динамически проверять параметры имиджев (ну в которых часть картинки находиться будет), но т.к. кодил раньше на AS2 то решил таким же макаром.. но.. не получилось. Потому что они вообще идеологию программирования поменяли в AS3. А описывать как то все параметры статически для каждого имиджа, т.е. 4х4=15 квадратиков (-1 для движения) как то не охота да и считаю глупо. Помогите решить эту проблему. Какой функцией или каким способом пользоваться! Заранее благодарен!

mickfallout 17.03.2010 21:29

Не понял сути вопроса. В написании пятнашек не вижу никаких проблем. 15 кнопок, на каждой простая реакция на клик - если рядом есть пустое место - передвинутся туда, если нет - ничего не делать. изображения в кнопки загрузить тоже не проблема...

AgentxXx 17.03.2010 22:39

хорошо, если действовать по твоему алгоритму, то как проверить есть ли рядом пустое место? Я тоже думал о таком алг, но я вообще не имел мыслей как реализовать эту проверку

iNils 17.03.2010 22:45

Иметь массив заполненный элементами 0..15, где 0 - пусто, а 1..15 номер находящегося квадратика. А визуалка строится согласно этому массиву.

mickfallout 17.03.2010 23:09

Цитата:

Сообщение от AgentxXx (Сообщение 893813)
хорошо, если действовать по твоему алгоритму, то как проверить есть ли рядом пустое место? Я тоже думал о таком алг, но я вообще не имел мыслей как реализовать эту проверку

примерно так:
Код AS3:

public var sqrArray:Array = new Array();// - массив кнопок.
public var numSqr:int// - номер рассматриваемого(по которому кликнули) квадрата-кнопки(1 - 16).
if (sqrArray[numSqr + 1].isEmpty && ((numSqr % 4) != 1) move();
if (sqrArray[numSqr - 1].isEmpty && ((numSqr % 4) != 0) move();
if (sqrArray[numSqr + 4].isEmpty && (numSqr <= 12)) move();
if (sqrArray[numSqr - 4].isEmpty && (numSqr >= 4)) move();
<...>
public var isEmpty:Boolean;// -флаг пустоты.(должен объявляться естественно в классе Квадрат-кнопка.)


AgentxXx 18.03.2010 12:41

Спасибо за код и идею. Но я в общем так и планировал. Каким образом можно реализовать массив кнопок то? т.е. пишу я например функцию с параметром, где под параметр входит кнопка, и по определенному условию я в параметр ввожу кнопка1, а по другому условию кнопка 8 например. Как вот это реализовать. В AS2.0 можно было писать (ну или примерно, я думаю вы поймете). Есть 5 кнопок: k1,k2,k3,k4,k5 ну и как известно есть параметр у них _x (повторяю, пишу пример под AS2. тогда можно написать так:
Код AS1/AS2:

for(i=1;i<=5;i++)
{
trace(k[i]._x);
}

т.е. последовательность кнопок можно представить как массив, компилятор сам понимал это. Конечно может не хватать кавычек. Если кому не понятно (или всем) то предоставлю правильный и рабочий код этого на AS2

Хотя, может я просто не правильно как то мыслю по отношению к этой строке:
Код AS3:

public var sqrArray:Array = new Array();// - массив кнопок.

Добавлено через 7 часов 23 минуты
Помогите пожалуйста разобраться... Для многих это сущий пустяк. Я бы сам на AS2 написал, но это ж прошлый век((

EraseHeadVs 18.03.2010 22:14

Прошу прошения за вопрос немного не в тему, но не могли бы Вы выложить исходник пятнашек?

AgentxXx 18.03.2010 22:19

У меня только в исполнении AS2.0 есть. Как напишу на 3.0 то скину тебе или сообщу откуда взять.. Если ребята помогут то будет уже скоро, а если нет - то пока не додумаюсь к кнопкам обращаться

EraseHeadVs 18.03.2010 22:38

Спасибо, будем надеяться на лучшее, а не могли бы выслать ту часть программы, что есть, чтобы было отчего отталкиваться?

AgentxXx 19.03.2010 00:13

Вложений: 1
Вот, держи рабочие на AS2. Но на 3 таким же макаром не сделать. Там по другому как то надо.....


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

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