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

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

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

Регистрация: May 2004
Адрес: СПб
Сообщений: 10
По умолчанию [AS2] Cнова о hittest

Eсть мувик, пушка, вокруг которой, при удержании левой кнопки мыши увеличивается круг - дальность выстрела. При отпускании кнопки вылетает снаряд, при !hittest этого круга он взрывается.

Проблема в том, что при повороте пушки на 45 градусов, снаряд почему-то начинает взрываться значительно дальше радиуса выстрела. Сначала я предположил, что он улетает в "угол" квадрата, который флэш образует вокруг клипа круга, но это оказалось не так - даже при повороте круга вместе с пушкой (второй попыткой была замена его на два прямоугольника крестом) улетание продолжается.

- Кто-нибудь может объяснить, почему так?
- Или, как вариант, намекнуть на другие способы решения этой проблемы? (пока что мне в голову пришёл только счётчик на снаряде, взрывающий его через заданный промежуток времени, но опыта со счётчиками у меня пока совсем нет)

Исходник приложен.
Вложения
Тип файла: zip DaCannon.zip (5.6 Кб, 72 просмотров)

Старый 02.12.2005, 02:55
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 2  
Ответить с цитированием
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
намекну на другие способы:

в пушке:
this.onPress = function () {
this.shoot_radius = this.shoot_radius++ || 0
}
this.onMouseUp = function () {
this.attachMovie("shell_mc", "shell_mc", 0, {max_distance:this.shoot_radius, angle:this._rotation})
}

в снаряде:

this.onEnterFrame = function () {
// смещаешь снаряд
// далее this.init_x и this.init_y - точка центра твоего круга (но он больше не нужен)
var dx = this._x - this.init_x
var dy = this._y - this.init_y
var distance = Math.sqrt(dx*dx+dy*dy)
if (distance > this.max_distance)
this.onExplore() // взрыв!
}
}


Последний раз редактировалось BitSky; 02.12.2005 в 02:58.
Старый 02.12.2005, 03:00
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 3  
Ответить с цитированием
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
это только намек.
конкретная реализация будет видимо иная,
особенно учитывая что в сабже указано AS2
(нахрена на он тебе нужен, если ты такие вопросы задаешь!???)

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

Регистрация: May 2004
Адрес: СПб
Сообщений: 10
Это я выёживаюсь - на самом деле я имел ввиду просто реализацию во flash MX. Ламер, да.

Большое спасибо за намёк, буду учиться дальше

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

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

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


 


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


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