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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.09.2010, 08:24
temofony вне форума Посмотреть профиль Отправить личное сообщение для temofony Найти все сообщения от temofony
  № 1  
Ответить с цитированием
temofony
[+5 27.02.11]
[+ 26.04.11]
 
Аватар для temofony

Регистрация: Feb 2010
Сообщений: 153
Отправить сообщение для temofony с помощью ICQ Отправить сообщение для temofony с помощью Skype™
The bomb! морока с физикой

Здравствуйте.Сегодня такая проблема у меня появилась:

Есть клип,он движется хаотично,вот код:
Код AS1/AS2:
mina.onEnterFrame=function() {
this._x += dx;
	this._y += dy;
 
	if (Math.random() > .9) {
		_global.dx = Math.random()*10-5;
		_global.dy = Math.random()*10-5;
	}
	updateAfterEvent();
}
mina.onLoad=function() {
		dx = Math.random()*10-5;
	dy = Math.random()*10-5;
}
Нужно чтобы этот клип отталкивался от стенок.
Для этого я пытаюсь при столкновении мувика со стеной умножать его горизонтальную и вертикальную скорость на -1;

Код AS1/AS2:
if (_root["mina"].hitTest(_root["gran"])) {
	dx=dx*-1;
	dy=dy*-1;
	trace(dx);
}
Так вот:мувик все равно улетает за границы положенного пространства,хотя скорости изменяются,что доказывает Output.Не пойму в чем затык...
__________________
Незнание правил освобождает от ответственности.

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

Регистрация: Jul 2010
Адрес: 50° 27′ 0″ N, 30° 30′ 0″ E
Сообщений: 256
Записей в блоге: 2
что произойдет с миной, если она "влетела в стену"?
тык-мык и полетела дальше, стена то кончилась

например можно проверять что "произойдет" а не "произошло":
1) двигаем
2) проверяем
3) если столкновение произошло - меняем направление и ставим вплотную к стене(или возвращаем на начальную позицию если вычислить стену сложно)

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

Регистрация: Feb 2008
Сообщений: 560
Цитата:
Сообщение от temofony Посмотреть сообщение
Для этого я пытаюсь при столкновении мувика со стеной умножать его горизонтальную и вертикальную скорость на -1;

Код AS1/AS2:
if (_root["mina"].hitTest(_root["gran"])) {
	dx=dx*-1;
	dy=dy*-1;
	trace(dx);
}
Где находится этот код?

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Просто менять скорости на противоположные не решит проблему. Смотрите, например ваша мина столкнулась с полом, значит её скорость по x не должна меняться, а вот скорость по y должна. Всё зависит какой своей стороной она влетела в стену.

Добавлено через 3 минуты
Сделайте проверку
Код:
gran.hitTest(x,y,true)
где по очереди проверяйте каждую сторону mina.

Старый 25.09.2010, 12:39
temofony вне форума Посмотреть профиль Отправить личное сообщение для temofony Найти все сообщения от temofony
  № 5  
Ответить с цитированием
temofony
[+5 27.02.11]
[+ 26.04.11]
 
Аватар для temofony

Регистрация: Feb 2010
Сообщений: 153
Отправить сообщение для temofony с помощью ICQ Отправить сообщение для temofony с помощью Skype™
Цитата:
Сообщение от rainbowrussia Посмотреть сообщение
Где находится этот код?
этот код находится на отдельном прозрачном мувике,который просчитывает все столкновения в фильме.Он работает так как трейс выводит что скорость поменялась...

Добавлено через 2 минуты
Цитата:
Сообщение от drnet_ua Посмотреть сообщение
что произойдет с миной, если она "влетела в стену"?
тык-мык и полетела дальше, стена то кончилась

например можно проверять что "произойдет" а не "произошло":
1) двигаем
2) проверяем
3) если столкновение произошло - меняем направление и ставим вплотную к стене(или возвращаем на начальную позицию если вычислить стену сложно)
"тык-мык" не будет так как скорость становится противоположной=>mina должна лететь в противоположном векторе предыдущему
__________________
Незнание правил освобождает от ответственности.

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

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

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


 


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


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