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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.01.2006, 13:28
baron27 вне форума Посмотреть профиль Отправить личное сообщение для baron27 Посетить домашнюю страницу baron27 Найти все сообщения от baron27
  № 1  
Ответить с цитированием
baron27
Контрибьютор базы знаний по Флекс
 
Аватар для baron27

Регистрация: Aug 2005
Сообщений: 690
По умолчанию Принцип игры-стрелялки - как убивать?

Всем привет!
Есть грубо говоря сто мувиков с именами mc1..mc100. Также при нажатии на левую кнопку мыши к курсору аттачится так называемый мувик пулька, который летит вертикально и должен при попадании в один из этих ста мувиков их "убивать".
Никак не могу понять, как зафиксировать событие столкновения моих пулек и этих мувиков-мишеней. Ведь пульки аттачатся под разными именами.

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

Регистрация: Dec 2005
Адрес: Kainsk
Сообщений: 88
Для большего количества клипов наверное тормозить будет.
enterFrame всётаки да и циклов куча. Потом удаляйте пули которые за экран вышли.
Вложения
Тип файла: rar game.rar (5.0 Кб, 41 просмотров)

Старый 08.01.2006, 15:05
baron27 вне форума Посмотреть профиль Отправить личное сообщение для baron27 Посетить домашнюю страницу baron27 Найти все сообщения от baron27
  № 3  
Ответить с цитированием
baron27
Контрибьютор базы знаний по Флекс
 
Аватар для baron27

Регистрация: Aug 2005
Сообщений: 690
Unexpected file format ( - может версия старая флеша у меня стоит (у меня MX Prof 2004). Может еще скинешь в другой версии?
Да, EnterFrame удаляться будет при столкновении с клипом-мишенью.
А каков сам принцип? Как-нибудь хитро hitTest применить?

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

Регистрация: Dec 2005
Адрес: Kainsk
Сообщений: 88
Смотри.
Вложения
Тип файла: rar game_2004MX.rar (5.4 Кб, 41 просмотров)

Старый 08.01.2006, 15:47
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 5  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Перебирать на предмет коллизии со всеми. Ты угадал, с помощью hitTest

Старый 08.01.2006, 15:48
K.A.T.A.F.A.L.K.E.R вне форума Посмотреть профиль Отправить личное сообщение для K.A.T.A.F.A.L.K.E.R Найти все сообщения от K.A.T.A.F.A.L.K.E.R
  № 6  
Ответить с цитированием
K.A.T.A.F.A.L.K.E.R
 
Аватар для K.A.T.A.F.A.L.K.E.R

Регистрация: Jul 2005
Адрес: Go, Ukraine!
Сообщений: 787
Отправить сообщение для K.A.T.A.F.A.L.K.E.R с помощью ICQ
ОДИН РАЗ при создании пульки пробегайся по всем шарикам (или что там у тебя) и смотри, для какого _y лежит в пределах попадания твоей пульки (для какого _y пульки равен его _y плюс/минус (в зависимости от того где ноль) его высота), и запихивай пульке как какой-нить "таргет" сцылу на этот шарик... А уж потом - дело техники Либо по _x проверяй, либо через хитТест, но уже не у всех, а только у таргетов (либо у таргета, если пулька разрывается после первого же столкновения)

Старый 08.01.2006, 15:55
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 7  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
А не проще сразу хит-тест?

Старый 08.01.2006, 17:17
baron27 вне форума Посмотреть профиль Отправить личное сообщение для baron27 Посетить домашнюю страницу baron27 Найти все сообщения от baron27
  № 8  
Ответить с цитированием
baron27
Контрибьютор базы знаний по Флекс
 
Аватар для baron27

Регистрация: Aug 2005
Сообщений: 690
Код:
but.onPress = function() {
	if (Key.isDown(1)) {  
// если нажата левая кнопка мыши
		if (fire) {        
//если активизирован огонь
			k++;     
			attachMovie("bullet", "bullet"+k, k);  //аттачим пульку
			_root["bullet"+k]._y = plo._y;          
			_root["bullet"+k]._x = plo._x;     
// координаты пульки соответствуют координатам "дула пистолета"
			_root["bullet"+k].onEnterFrame = function() {
				this._y -= 5;  // запускаем пульку вверх

// а вот тут хз как, если через хиттест, то его надо прогнать через цикл
// из 100 итераций 
                          for (i=0;i<100;i++) {
				if (this.hitTest("kv"+i)) {
					_root["kv"+i]._visible = false;
				}
                              }
			};
		}
	}
};
В примере game.rar данная проблема решена из-за того, что там 3 мувика-мишени, а у меня их сотня. Очень уж тормозит все, если прогонять через этот цикл(

Старый 08.01.2006, 18:01
baron27 вне форума Посмотреть профиль Отправить личное сообщение для baron27 Посетить домашнюю страницу baron27 Найти все сообщения от baron27
  № 9  
Ответить с цитированием
baron27
Контрибьютор базы знаний по Флекс
 
Аватар для baron27

Регистрация: Aug 2005
Сообщений: 690
Вариант K.A.T.A.F.A.L.K.E.R'а лучше так как сразу уменьшается количество итераций цикла. Сейчас так и делаю. Правда гемора стока с этими if'ами ))

Старый 08.01.2006, 18:39
K.A.T.A.F.A.L.K.E.R вне форума Посмотреть профиль Отправить личное сообщение для K.A.T.A.F.A.L.K.E.R Найти все сообщения от K.A.T.A.F.A.L.K.E.R
  № 10  
Ответить с цитированием
K.A.T.A.F.A.L.K.E.R
 
Аватар для K.A.T.A.F.A.L.K.E.R

Регистрация: Jul 2005
Адрес: Go, Ukraine!
Сообщений: 787
Отправить сообщение для K.A.T.A.F.A.L.K.E.R с помощью ICQ
Цитата:
Сообщение от Antares
А не проще сразу хит-тест?
Проще - не спорю. Но насчет производительности я не уверен... Когда летит десяток пуль и лежит сотня мувов - пробегать по всем - ух как не здорово... Разве что всунуть все "мишени" внутрь большого мува "targets" и делать targets.hitTest(bullet._x,bullet._y,true); - хм... Как вариант... Должно сработать

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

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

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


 


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


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