Форум 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=122584)

KOHMAR 14.03.2009 02:08

Карта
 
Доброе время суток. Помогите с картой...я только начинаю писать на AS3. Не могу сообразить как написать функцию для генерации карты.

cleptoman 14.03.2009 02:12

generateMap();

KOHMAR 14.03.2009 02:14

Не эт не смешно)) Я понимаю что ... типа пиши сам и тд... но ... как мне например создать поле и добавлять туда отдельные мувики?

Что то на подобе DIV'а в JavaScript

cleptoman 14.03.2009 02:18

вы перечитайте свой вопрос с независимой колокольни.))

Arif flasher 14.03.2009 15:50

Вложений: 1
такую карту что ли?

KOHMAR 14.03.2009 17:37

Да вот на подоби такой карты но!!Сдесь 1 кртинка... а мне нужно добиться что бы я мог сложить из множества одинаковых по размеру!!

Gaen 14.03.2009 17:53

Код AS3:

for(var i:int = 0; i<this.pieces.length; i++){
        for(var j:int = 0; j<this.pieces[i].length; j++){
                var piece:DisplayObject = this.pieces[i][j];
                piece.x = this.PIECE_WIDTH        * j;
                piece.y = this.PIECE_HEIGHT        * i;
                this.addChild(piece);
        }//for
}//for


KOHMAR 14.03.2009 18:04

Спасибо конечно... но я же написал что только учусь писать на AS3, сложновато перейти на ООП после PHP!!

Такой вопрос:
Что такое pieces ?

Gaen 14.03.2009 18:07

Это двумерный массив, содержащий ссылки на кусочки, из которых складывается карта.

KOHMAR 14.03.2009 18:09

Так с этим понятно, а можно примерчик не большой этого массива!! Что бы я на основе мог дальше двигаться?
И тоесть эти отдельные мувики которые я буду добавлять должны быть в библиотеке обьектов?

Добавлено через 33 минуты
Ладно... вопрос №2 как на лету можно создавать клипы с внешней графикой?

Добавлено через 3 часа 17 минут
Тут есть вообще кто то живой на форуме?

Котяра 14.03.2009 22:20

С такими вопросами сразу в хелп или хотя-бы в чаво. Самые основы вам никто объяснять не будет по 1000 разу.

KOHMAR 15.03.2009 01:17

Люди вот тут уже пожалуйста помогите!!
есть код
Код AS3:

var player:Player = new Player();
player.x=gzX-5;
player.y=gzY-5;
this.addChild(player);

Вроде все нормально экземпляр создается все показывается, но когда я попытался поменять у него координаты когда он уже создан у меня мозг ушел в даун!!! Что я уже не пробывал!!
Как получить доступ с козданному экземпляру?

Snut 16.03.2009 10:45

вариант создания коллекции с персонажами и индификаторами и кучкой методов по работе с ними не прокатит?

dimarik 16.03.2009 10:53

Цитата:

Сообщение от KOHMAR (Сообщение 805544)
Как получить доступ с козданному экземпляру?

У Вас есть ссылка на созданный экземпляр. Как ни странно, но это player.
Её и терзайте.

KOHMAR 16.03.2009 17:46

Эту проблему решил спасибо всем!
Но возникла следующая!!

При генерации карты мне нужно добавлять обьекты и делаю я таким кодом!

Код AS3:

for (var i=1; i<10; i++) {
        for (var n=1; n<10; n++) {
                var url="img_world/"+i+"_"+n+".jpg";
                xG = 80*(i-1);
                yG = 80*(n-1);
                preload(url,map_mc,xG,yG);
                if(list[i+"_"+n])
                {
                        if(list[i+"_"+n]["building"])
                        {
                                var Build_img:String=list[i+"_"+n]["building"]["img"];
                                var Build_p_x:String=list[i+"_"+n]["building"]["p_x"];
                                var Build_p_y:String=list[i+"_"+n]["building"]["p_y"];
                                //trace("Грузим:"+Build_img);
                                preload(Build_img,map_mc,xG+Build_p_x,yG+Build_p_y);
                        }
                }
 
        }
}

Так вот сначало мы пробегаем и подгружаем картинку заднего фона... потом проверяем есть ли этих координатах что то еще если есть подгружаем и его... но при загрузке следуещей ячейки она перекрывает подгруженный обьект... как с этим бороться?

KOHMAR 16.03.2009 18:01

Вложений: 1
Вот что получается!

Здание обрезанное!!! Точнее оно находится под 2 ячейкой а должно быть над!

KOHMAR 16.03.2009 20:37

Раз не кто не отвечал... пришлось самому мозговать и через 2 часа осмысления на меня нашло благословение и все подправил... но тут произошел колап и ой озг опять остановился!))) Дело в том что персонаж может наступать на здания...вот и выливается вопрос как сделать так что бы он за них заходил?

iflamberg 16.03.2009 20:45

а в пхп это по другому делается?
Хранить массив проходимых-непроходимых препятствий. Сранивать, не давать ступить.

KOHMAR 16.03.2009 20:49

Цитата:

Сообщение от iflamberg (Сообщение 805961)
а в пхп это по другому делается?
Хранить массив проходимых-непроходимых препятствий. Сранивать, не давать ступить.

:eek: Хмм интерестно как можно на РНР геодату создать? :wacko:

Мне бы хотябы малейший пример как на Flash это сделать!

iflamberg 16.03.2009 21:18

да просто. Вот, в ММО ereality строится карта(кстати изометрическая) на самом что-есть пхп. См. скрин. http://img.ereality.ru/d2008/screen_08_big.jpg .
Храним текущее положение пользователя, при перемещении отправляем постом запрос - получаем html с новой картинкой мира. Теперь правда под ajax переделали.

KOHMAR 16.03.2009 22:01

Хмм знаете на JavaScript написал карту и все нормально работало!... Я же не прошу на C++ мне подсказать а именно на Flash как это сделать, а вы мне РНР.РНР я и сам неплохо знаю!

Arif flasher 17.03.2009 08:51

при переходе персонажа на клетку здания, просто здание опять сделай addChild

Snut 17.03.2009 12:34

Цитата:

Сообщение от Arif flasher (Сообщение 806080)
при переходе персонажа на клетку здания, просто здание опять сделай addChild

и наплоди кучу объектов!

Nel 17.03.2009 13:33

Простая Z сортировка спасет!

Не когда я делал первую игру, я тоже сталкивался с подобным :) Но реально улыбает читать афтора темы!
Типа Аля а давайте щас мы слепим ММО, и не чо что я не умею программировать, читать книжки, лазить в Гугол, и т.д.

Особено если послушиться Arif flasher то ММО выйдит очень брутальной :)

про карту и не проходимость улыбнуло :)
Типа хранить не прохадиммые точки в xml нынче немодно!

iNils 17.03.2009 13:55

Nel, у вас уже второй плюс за "афтара"

KOHMAR 17.03.2009 17:14

Цитата:

Сообщение от Nel (Сообщение 806143)
Простая Z сортировка спасет!

Каким образом ее сделать?


Цитата:

Сообщение от Nel (Сообщение 806143)
Особено если послушиться Arif flasher то ММО выйдит очень брутальной :)

Согласен!

Цитата:

Сообщение от Nel (Сообщение 806143)
про карту и не проходимость улыбнуло :)
Типа хранить не прохадиммые точки в xml нынче немодно!

Раз так то как это сделать!..

И я умею програмировать просто я не на том языке))
Я сумел сделать за 2 дня почти готовый движок! Конечно не без подсказок мастеров тоесть всех вас)

Nel 17.03.2009 17:30

Цитата:

Сообщение от KOHMAR (Сообщение 806224)
Каким образом ее сделать?

Эх setChildIndex меняет индекс (не помню точное название)
Все объекты сцены нужно отсортировать по Y и собствено потом пройтись и передлать индиксы вот вся сортировка!

Цитата:

Сообщение от KOHMAR (Сообщение 806224)
>>Раз так то как это сделать!..

не буду отвечать, потому что ты "Умеешь программировать!" а следовательно пора начинать думать, и наверно подключить модуль Brain!

Про сортировку я ответил исключительно иза того что ты мог не знать про setChildIndex :)

iflamberg 17.03.2009 19:21

z-сортировка, или сортировка глубины(depth sort) что-то типа
Код:

items=items.sortOn(["y","x"], Array.NUMERIC);
var i:int = items.length;
while (i--) {
        if (getChildAt(i) != items[i]) {
                setChildIndex(items[i], i);
        }
}

где items[i] - это экземпляры MovieClip из которых состоит карта. Что это сделает. Это отсортирует порядок отображения всеx мувиков из массива items по y и x.
Мувик с большим y будет заслонять меньшим y, мувик с большим x будет заслонять мувик с меньшим x. Если у вас в items окажутся два мувика с одними координатами то будет моргать. А персонажей на карте вообще лучше в отдельный слой выше рисовать(и сортировать их отдельно).

BlooDHounD 17.03.2009 21:28

есть такая штука называет "рейтинг сортировки".
перед сортировкой он считается для статических объектов один раз, для динамических при передвижении пересчитывается.
работает например так:
Код:

static:                rating = ( y << 9 ) | ( x << 1 ) | 0;
dynamic:        rating = ( y << 9 ) | ( x << 1 ) | 1;

потом можно использовать код выше, только сортировать не по полям, х/у, а по полю ratang, которое у большинства объектов не меняется. таким образом все динамические объекты всегда будут поверх статических. ну ещё кучу оптимизаций к этому методу можно применить.

KOHMAR 17.03.2009 22:29

Всем спасибо буду что то думать!

Добавлено через 16 минут
Цитата:

Сообщение от Nel (Сообщение 806228)
Не буду отвечать, потому что ты "Умеешь программировать!" а следовательно пора начинать думать, и наверно подключить модуль Brain!

Ну эт не честно ;)

Насчет Brain
А недзя хоть ссылку какую нить!)) Поискал по поисковикам ничего толкового не нашел!

Nel 18.03.2009 02:48

печально что не нашел :)

К сожелению данный модуль самописнный велосипед и работает на столько поскольку! на зарождения идей данного модуля влияет все, включая сферического коня в вакуме а также прилив на острове зимбубии!

KOHMAR 18.03.2009 20:01

Мдя :D


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

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