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

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

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

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
Question Перестройка машины из одного ряда в другой...

Здрасте всем и вся, есть задача которую немогу решить, пример тута
по трассе едут куча машин, помимо них у игрока будет своя машина, которая не имеет никакого отношения к ним, игрок сам будет управлять своей машиной и для игрока другой код, я просто хочу сделать ну так скажем искусственный интеллект, чтоб комп сам думал когда обгонять и когда нет... одни из них едут быстро, другие медленно, так вот те которые едут быстрее они будут обгонять медляков, и всего то. Это я просто пример такой сделал, на скорую руку, чтоб как-то объяснить что хочу.
Допустим первая машина собирается обгонять вторую, к коде я рассчитал:
1. расстояние от переднего бампера первой машины, до заднего бампера второй машины (это чтобы когда уже близко, первая пошла на обгон)
2. расстояние от правой двери первой машины, до левой двери второй машины (это чтоб указать на каком расстоянии первая машины будет обгонять вторую)
3. расстояние от от заднего бампера первой машины, до переднего бампера второй машины (это считает когда машина обогнала, значение уже будет положительное и можно будет перестроится обратно в полосу).

И это все немогу сделать так чтоб считало для всех вместе.
Вот код
Код AS1/AS2:
speed = 2;
onEnterFrame = function () {
	if (distpox>=0) {
		if (distpoy>=0) {
			k1._x += speed;
		}
	}
	if (distpox<=0) {
		if (distpo<=0) {
			if (distpoy>=0) {
				k1._y--;
			}
		}
	}
	if (distpoy<=0) {
		if (distpo<=0) {
			k1._x += speed;
		}
	}
	if (distpo>=0) {
		if (distpoo<=0) {
			k1._y += speed;
		}
	}
	if (distpoo>=0) {
		if (distpo>=0) {
			k1._x += speed;
		}
	}
	for (i=2; i<=2; i++) {
		distpox = (this["k"+i]._x-k1._x)-(k1._width/2+this["k"+i]._width/2);
		pox.text = distpox;
		distpoy = (k1._y-this["k"+i]._y)+(k1._height/2+this["k"+i]._height/2);
		poy.text = distpoy;
		distpo = ((k1._x-this["k"+i]._x)-k1._width/2)-this["k"+i]._width/2;
		potxt.text = distpo;
		distpoo = (k1._y-this["k"+i]._y);
	}
};
Когда пишу
Код AS1/AS2:
for (i=2;i<20;i++)
{тут все эти формулы}
то комп берет максимальное значение и рассчитывает расстояние только для него, т.е. если у меня количество машин 20, то он считает только для двадцатой машины.

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

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

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


 


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


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