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

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

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

Регистрация: Jul 2013
Адрес: г.Батуми
Сообщений: 5
Question нужна помощь с функцией attachMovie()

Доброго времени суток. У меня проблема.Вот уже 3-4 дня лазию по интернетам, в поисках ответа, нашел ваш форум. Я делаю платформер. Нужно сделать так, чтобы когда самолет пролетал над персонажем, он выпускал снаряд. Самолет сделал, снаряд сделал, а сам процесс ну никак. Пробовал через функцию duplicateMovieClip(), понял что она мне не подходит, перешел к attachMovie().
Сам грамотно код написать не могу, т.к. только начал постигать AS2 но думаю, нужно что-то типа этого
Код AS1/AS2:
Код AS1/AS2:
if (_root.plane1._x==_root.char._x) {
	_root.attachmovie("bullet", "mc"+i, _root.getNextHighestDepth());
	_root["mc"+i]._x = _root.plane1._x;
	_root["mc"+i]._y = _root.plane1._y;
        i++;
}
куда лучше разместить этот код, в главный фрейм или в сам самолет? исправьте пожалуйста.
И еще одно, сам снаряд должен подчиняться гравитации, поэтому можно ли задать ["mc"+i] свой скрипт? Заранее благодарен.


Последний раз редактировалось mooncar; 23.07.2013 в 10:30.
Старый 23.07.2013, 10:33
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
1. attachmovie attachMovie
2. Не забывайте оформлять код тегами.
На самом деле лучше выложите исходник (вложите в сообщение), информации недостаточно, мало кто сможет вам помочь.
__________________
Идите первым!

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Не нужно использовать равенство координат для запуска снаряда. Шанс что координаты вашего самолёта и персонажа совпадут - почти никакой. Используйте относительный диапазон. Если персонаж по оси x ближе к самолёту чем на 20px - выпускаете снаряд.
__________________
Дети не должны знать о своих родителях

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

Регистрация: Jul 2013
Адрес: г.Батуми
Сообщений: 5
спасибо, я понял что Вы имеете ввиду, но как это должно выглядеть в самом коде? моего небольшого опыта на это не хватает)

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Код AS1/AS2:
// Находим расстояние между игроком и самолётом по оси x
var dx:Number = Math.abs(_plauer._x - _airship._x);
if(dx < 20){
    fire();
}
Где fire() - функция скидывания бомбы с самолёта.
__________________
Дети не должны знать о своих родителях

Старый 23.07.2013, 17:06
OlegafoN вне форума Посмотреть профиль Отправить личное сообщение для OlegafoN Найти все сообщения от OlegafoN
  № 6  
Ответить с цитированием
OlegafoN

Регистрация: Jul 2013
Адрес: г.Батуми
Сообщений: 5
не получилось, решил выложить исходник(упрощенный), как посоветовал админ
Вложения
Тип файла: rar primerchik.rar (15.8 Кб, 17 просмотров)

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Поместив код просто в кадр, он у вас выполнится только 1 раз, когда этот фильм перейдёт на этот кадр. То-есть, код в кадре выполняется в начале 1 раз, поэтому квадрат не загорается когда самолёт пролетает. Что-бы код выполнялся постоянно на протяжении всего фильма, он должен быть помещён в специальную функцию, вызывающуюся например - каждый кадр:
Код AS1/AS2:
onEnterFrame = enterFrameHandler;
 
function enterFrameHandler(){
	// Находим расстояние между игроком и самолётом по оси x
	var dx:Number = Math.abs(_root.char._x-_root.mob._x);
	if (dx<40) {
		ind.gotoAndStop(2);
	}else{
		ind.gotoAndStop(1);
	}
}
__________________
Дети не должны знать о своих родителях

Старый 23.07.2013, 17:45
OlegafoN вне форума Посмотреть профиль Отправить личное сообщение для OlegafoN Найти все сообщения от OlegafoN
  № 8  
Ответить с цитированием
OlegafoN

Регистрация: Jul 2013
Адрес: г.Батуми
Сообщений: 5
преогромнейшее спасибо, все получилось)

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

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

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


 


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


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