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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.02.2007, 04:11
KLIFF вне форума Посмотреть профиль Отправить личное сообщение для KLIFF Найти все сообщения от KLIFF
  № 1  
Ответить с цитированием
KLIFF
[+1 02.08.06]
[+1.3 17.10.06]
[+1 02.03.07]
 
Аватар для KLIFF

Регистрация: Jul 2004
Адрес: С-Петербург
Сообщений: 76
По умолчанию Z сортировка

всем привет!
вопрос очень интересный! ответа немогу найти
интересует вот что ! как сделать сортировку глубины ячеек карты
вот код который делает карту 10х10 ячеек
Код:
game = {};
game.columns = 10;
game.rows = 10;
game.spacing = 30;
game.depth = 1000;
game.path = _root.grid;
game.numberOfTypes = 8;
function buildGrid() {
	for (var j = 1; j<=game.rows; ++j) {
		for (var i = 1; i<=game.columns; ++i) {
			var name = "cell"+i+"_"+j;
			var x = (i-1)*game.spacing;
			var y = (j-1)*game.spacing;
			var type = 1;
			game.path.attachMovie("cell", name, ++game.depth);
			game.path[name]._x = x;
			game.path[name]._y = y;
			game[name] = {x:i, y:j, name:name, type:type, clip:game.path[name]};
		}
	}
}
предположим есть некий персонаж который передвигается по ячейкам
в опр. ячейках есть некий объект. если персанаж находится на ячейке ниже чем ячейка с объектом то персонаж покрывает объект.
а если персонаж находиться над ячейкой с объектом то объект покрывает персонажа
тоесть получаеться персонаж постоянно меняет свою глубину!
есть вариант делать глубину ячейки по следующей схеме
первая ячейка будет иметь глубину = 0 втарая = 10 треться 20 и т.д.
а персонаж попадая на ячейку с глубиной = 10 будет иметь глубину =11

вопрос: как задавать глубину ячеек? и как персонажу постоянно менять глубину?

всем спасибо.
Изображения
Тип файла: jpg Z.JPG (9.2 Кб, 38 просмотров)

Старый 01.02.2007, 05:09
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Читать про swapDepths
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 01.02.2007, 10:38
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 3  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
я тоже недавно такое делал, но не про персонажей
глубину задавал примерно так
0+d 1+d 2+d 3+d 4+d
5+d 6+d 7+d 8+d 9+d
....
d это просто некот изнач глубина
написал функцию GetDepths которая по i j находит глубину
и потом если что надо менял swapDepths
__________________
"We Are The Champions My Friends!" Queen

Старый 01.02.2007, 16:00
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 4  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
я вот тоже над подобным алгоритмом работал - только у меня задача, вроде, посложнее была: во-первых - проекция изометрическая, во-вторых - объекты на карте могут иметь размер больше 1-й клетки. пока не сделал на деревьях, ничего не получалось...
в Вашем же случае. как мне представляется, все достаточно просто. глубину ячейки определяете как
Код:
(x+y*rows)*2
это - глубина "пола". соотв. глубина объекта, расположенного на "полу" равняется глубине пола+1.
когда персонаж заходит в ячейку, он получает высоту пола этой ячейки+1 - таким образом он автоматом будет над объектами, расположенными по y-1 - и под объектами на y+1
если я Вас правильно понял, конечно

Старый 01.02.2007, 16:41
combo вне форума Посмотреть профиль Отправить личное сообщение для combo Найти все сообщения от combo
  № 5  
Ответить с цитированием
combo
 
Аватар для combo

Регистрация: Nov 2006
Сообщений: 177
я б задал каждому row свою глубину. Т.е. например все клетки cell.._1 имеют глубину 1, клетки cell.._2 - 3, клетки cell.._3 - 5. Суть в том, чтобы человечек, поднимаясь вверх или вниз ,также менял свою глубину на 2 (либо как-то узнавал глубину клетки на которой он стоит и прибавлял к её глубине единицу).

Старый 01.02.2007, 18:39
KLIFF вне форума Посмотреть профиль Отправить личное сообщение для KLIFF Найти все сообщения от KLIFF
  № 6  
Ответить с цитированием
KLIFF
[+1 02.08.06]
[+1.3 17.10.06]
[+1 02.03.07]
 
Аватар для KLIFF

Регистрация: Jul 2004
Адрес: С-Петербург
Сообщений: 76
firelord спасибо !!! раскидал пол по твоей формуле только * на 5 =) что бы запас был побольше =)
ща делаю персанажа глубину ему буду брать от ячейки в которой он находиться +1 ... всем спасибо!

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

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

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


 


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


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