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

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

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

Регистрация: Dec 2012
Сообщений: 6
Cool перетаскивание объекта по траектории

Доброго времени суток. я пишу приложение под ios на FlashBuilder'е. столкнулся с проблемой. дан спрайт который нужно перетаскивать по траектории (в моем случае это буква). программно перетаскивание по точкам я реализовал и тут возникла проблема. при слишком резком перетаскивание спрайт перескакивает следующую точку и не меняет направления. как можно это отследить?

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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
салямчик, очевидно же, что это зависит от вашей реализации, которой как-то не наблюдается в сообщении.
__________________
hauts.ru

Старый 19.03.2013, 22:09
салямчик вне форума Посмотреть профиль Отправить личное сообщение для салямчик Найти все сообщения от салямчик
  № 3  
Ответить с цитированием
салямчик

Регистрация: Dec 2012
Сообщений: 6
Код AS3:
private function moveCar(e:MouseEvent):void
		{
			if (isDown == false) return;
 
			if ((car.x >= _pointers[i].x - 1 && car.x <= _pointers[i].x + 1) || (car.y >= _pointers[i].y - 1 && car.y <= _pointers[i].y + 1))
			{				
				i++;
			}
 
			dx = _pointers[i].x - _pointers[i -1].x;
			dy = _pointers[i].y - _pointers[i -1].y;
 
			radians = Math.atan2(dy, dx);
 
			rotatePlayer();
 
			var k:Number = dy/dx;
//			trace (k);
 
			var mX:Number = stage.mouseX;
			var mY:Number = stage.mouseY;
 
			var b:Number = findB (k, car.x, car.y);
//			trace (b);
 
			var XX:Number = findX (b, k);
			var YY:Number = findY (b, k, XX);
 
			car.x = XX;
			car.y = YY;
 
			trace (car.x);
			trace (car.y);
			trace ('============');
 
 
 
		}
 
private function rotatePlayer():void
		{
			var degrees:Number = radians * 180/Math.PI +90;
			car.rotation = degrees;
		}		
 
		public function findB(k1:Number,px1:Number,py1:Number):Number
		{   
			return py1-k1*px1;
		}
 
		public function findX(b1:Number,k1:Number):Number
		{
			return ((stage.mouseY+(1/k1)*stage.mouseX)-b1)/(k1+1/k1);
		}
 
		public function findY(b1:Number,k1:Number,x:Number):Number
		{
			return k1*x+b1;
		}


Последний раз редактировалось салямчик; 19.03.2013 в 22:24.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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