Форум 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, то он считает только для двадцатой машины.

Старый 07.01.2009, 16:11
MrXoT вне форума Посмотреть профиль Отправить личное сообщение для MrXoT Найти все сообщения от MrXoT
  № 2  
Ответить с цитированием
MrXoT

Регистрация: Apr 2008
Сообщений: 71
ну конечно цикл та на 20 останавливается....
нужно зделать так

Код AS1/AS2:
onEnterFrame = function () {
   for (i=2;i<20;i++){
      тут все эти формулы
   }
}
или попробывать интервалами
да и этот скрипт при много машин будет тормозить
лучше всего тогда использовать тайлы...

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Цитата:
тайлы...
А по-подробнее...
__________________
Я просто добрый шутник.

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

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
"вас из дас" тайлы?

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Цитата:
"вас из дас" тайлы?
Мм,я Вас не понимать,товарищ
__________________
Я просто добрый шутник.

Старый 08.01.2009, 13:16
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
tile — плитка. В играх-платформерах это обычно прямоугольный элементарный кусочек местности, например, в том же Mario весь мир состоит из тайлов. В изометрических играх это может быть гексагон.

Старый 08.01.2009, 14:28
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 7  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
__etc,спасибо
__________________
Я просто добрый шутник.

Старый 08.01.2009, 21:21
Ralph_DiMarko вне форума Посмотреть профиль Отправить личное сообщение для Ralph_DiMarko Найти все сообщения от Ralph_DiMarko
  № 8  
Ответить с цитированием
Ralph_DiMarko
 
Аватар для Ralph_DiMarko

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
я тож понял, но это наверное другая тема...

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

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

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


 


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


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