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

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

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

Регистрация: Jun 2003
Сообщений: 263
Question положение обьекта в аксонометрии

Люди, подскажите пожалуйста!

Есть карта квеста в аксонометрии 10*10 расположенная "углом"(в прямоугольной изомерии)

Надо, чтобы положение персонажа каждый раз было случайное.
В стандартной топ-даун проекции это выглядело бы так (при ширине и высоте 55 одной клетки):

chelx = Math.round(Math.random()*9);
chely = Math.round(Math.random()*9);
_root.pers._x=(55*chelx)+27,5;
_root.pers._y=(55*chely)+27,5;

Но как быть в изомерии, какой наиболее простой вариант?

Есть зверские варианты вроде для каждого положения определить

if(chelx==0 && chely==0){
...
}

Но тогда получится 100 вариантов, а мне еще таким же образом надо разместить 13 обьектов на этой карте!!! Да ещё чтоб они не накладывались...

Плиз, хелп!!!

Старый 21.10.2005, 01:23
igrik вне форума Посмотреть профиль Отправить личное сообщение для igrik Найти все сообщения от igrik
  № 2  
Ответить с цитированием
igrik

Регистрация: Jun 2003
Сообщений: 263
Zы
[+ 1.4 20.08.2005]
что это значит?

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

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
Цитата:
Сообщение от igrik
Zы
[+ 1.4 20.08.2005]
что это значит?
эт на погоны, правила форума игнорируешь)

ЗЫ а на вопрос твой ничего ответить увы не могу - слишком много словей умных (гы-гы)

Старый 21.10.2005, 03:02
igrik вне форума Посмотреть профиль Отправить личное сообщение для igrik Найти все сообщения от igrik
  № 4  
Ответить с цитированием
igrik

Регистрация: Jun 2003
Сообщений: 263
я вроде законнопослушный...))

Старый 21.10.2005, 03:51
igrik вне форума Посмотреть профиль Отправить личное сообщение для igrik Найти все сообщения от igrik
  № 5  
Ответить с цитированием
igrik

Регистрация: Jun 2003
Сообщений: 263
вот картина:
http://www.artlogic.nm.ru/kvestttt.jpg

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Код:
this.move = function (xp, yp) {
	var x = xp * w / 2 + yp * w / 2;
	var y = xp * h / 2 - yp * h / 2;
	return {x:x, y:y};
};
_root.createEmptyMovieClip ("mcLib", 10000000);
mcLib.lineStyle (0, 0x000000);
mcLib.beginFill (0x999999);
mcLib.lineTo (-20, -10);
mcLib.lineTo (0, -20);
mcLib.lineTo (20, -10);
mcLib.lineTo (0, 0);
mcLib.endFill ();
xi = 300;
yi = 100;
w = 40;
h = 20;
for (var i = 0; i < 10; i++) {
	for (var j = 0; j < 10; j++) {
		var obj = this.move (i, j);
		mcLib.duplicateMovieClip ("mc" + i * 10 + j, i * 10 + j + 1, {_x:xi + obj.x, _y:yi + obj.y, _alpha:20});
	}
}
this.onEnterFrame = function () {
	xr = Math.floor (Math.random () * 10);
	yr = Math.floor (Math.random () * 10);
	var obj = this.move (xr, yr);
	mcLib._x = xi + obj.x;
	mcLib._y = yi + obj.y;
};
разберешься?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.10.2005, 16:36
igrik вне форума Посмотреть профиль Отправить личное сообщение для igrik Найти все сообщения от igrik
  № 7  
Ответить с цитированием
igrik

Регистрация: Jun 2003
Сообщений: 263
i'll try...

А вообще обьясни плиз)))

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Фактически тебя интересует только эта функция, все остальное это демонстраниция применения.

Код:
this.move = function (xp, yp) {
	var x = xp * w / 2 + yp * w / 2;
	var y = xp * h / 2 - yp * h / 2;
	return {x:x, y:y};
};
xp и yp это индексы клетки
отсечет идет от самой левой клетки, xp=0 yp=0
клетка правее и ниже это xp=1 yp=0
значит самая нижняя клетка это xp = максимум yp=0
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.10.2005, 16:48
igrik вне форума Посмотреть профиль Отправить личное сообщение для igrik Найти все сообщения от igrik
  № 9  
Ответить с цитированием
igrik

Регистрация: Jun 2003
Сообщений: 263
я тут надумал кое что...
как оптимально сравнить переменные на наименьшее значение?

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

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

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

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

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


 


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


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