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

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

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

Регистрация: Mar 2013
Сообщений: 19
Цитата:
Сообщение от iflamberg Посмотреть сообщение
Вам две страницы разжевывают до состояния кашицы. Вы сами попробовать включить мозг не хотите? Может зарплату тоже за вас получить?
Просто если бы код был бы в кадрах, я бы додумался, а в класса, а даже не имею представление как вторую рыбку сделать.....поэтому и написал что лучше мне писать в кадрах)

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

Регистрация: Jan 2009
Сообщений: 1,651
Оукай. Вот вам код в кадре.
Код AS3:
	import com.greensock.TweenLite;
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.Event;
 
	/**
	 * ...
	 * @author wolsh
	 */
 
		//внедрить картинку, когда пишите код в кадре не получится, поэтому будем считать, что у вас в библиотеке есть мувик(не битмап) Fish c включенным export to actionscript
		var _fish:MovieClip; //пока просто пустая ссылка
 
		var _targetX:Number; //переменные видно во всех функциях ролика
		var _targetY:Number;
 
		init ();//обрати внимание, функция будет вызвана один раз после старта
 
		function init():void
		{
			_fish = new Fish(); //создаем экземпляр рыбки
			//_fish.smoothing = true; //если рыбка мувик, а не битмап, то сглаживание и так будет
			this.addChild(_fish); //кидаем рыбку на сцену
			//_targetX, targetY - переменные которые хранят координаты, куда мы хотим направить рыбку. Рыбка кидается на сцену в координатах 0,0, изначально мы направляем ее в центр сцены
			_targetX = stage.stageWidth / 2; 
			_targetY = stage.stageHeight / 2;
			go(); //отсюда переходим в go
		}
 
		//до того, как отправить рыбку в плавание к точке, нужно развернуть ее в нужном направлении
		function go():void 
		{
			var angle:Number = 180 / Math.PI * Math.atan2(_targetY - _fish.y, _targetX - _fish.x); //эту формулу надо знать, как "отче наш", формула определяет угол на который надо повернуть рыбу, чтобы она из своих текущих координат, смотрела на _targetX, targetY, 180 / Math.PI - перевод из радиан в градусы, потому что свойство .rotation спрайта принимает градусы, а результат Math.atan2 в радианах 
			//используется так же scaleX=-1 или scaleX=-1. Это масштабирование по оси x. scaleX=-1 равносильно flip horizontal
			if (_targetX < _fish.x) TweenLite.to(_fish, 0.5, { scaleX: -1, rotation:180+angle, onComplete:onDirect } );  //используется onComplete. После завершения твина, рыбка повернута к искомой точке носом, будет вызвана функция onDirect
			else if (_targetX > _fish.x) TweenLite.to(_fish, 0.5, { scaleX: 1, rotation:angle, onComplete:onDirect } );
			else onDirect();
		}
 
		//вызывается, когда рыбка уже повернута к точке носом, отправляем ее в плавание к точке
		function onDirect():void
		{
			TweenLite.to(_fish, 1, { x: _targetX, y:_targetY, rotation:0, onComplete:onFloat } ); //по завершению твина будет вызвана ф-я onFloat 
		}
 
		//рыбка закончила плавание к точке, выбираем ей новую точку для плавания
		function onFloat():void 
		{
			_targetX = Math.random() * stage.stageWidth;
			_targetY = Math.random() * stage.stageHeight;
			go();
		}
Почти ничего не изменилось, не правда ли?

Подсказки.
1) Если надо несколько рыбок, значит надо в цикле просто создать несколько мувиков с рыбками
2) Если рыбок несколько, то нужно как-то указать функциям, запускающим движение, для какой-конкретно рыбки запустить движение. Значит функция должна принимать параметр - ссылку на мувик рыбки и использовать его дальше в коде.
3) Когда твин завершается, то с помощью onComplete он запускает следующую функцию логики. Но теперь эти функции принимают параметр, как его передать? В для этого существует onCompleParams.
__________________
мой пустой блог

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
iflamberg,
Всё же, наверное, нужно немного помягче
__________________
Дети не должны знать о своих родителях

Старый 04.03.2013, 18:57
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 24  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Я был вежлив, как мать Тереза
__________________
мой пустой блог

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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Цитата:
Я был вежлив, как мать Тереза
Который раз хамство.

Сначала про зарплату сказать, а потом всё-таки и скинуть код. Не понимаю я этого.

iflamberg, если не хотите помогать — не делайте этого. А хамить не стоит тем, кто просит помочь.
__________________
hauts.ru

Старый 04.03.2013, 20:07
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 26  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Да, соглашусь, я был слишком прямолинеен и груб. Просто был крайне раздражен нежеланием автора топика хотя бы чуть-чуть поработать самостоятельно, может быть, я такое поведение тоже считаю хамством, проявлением крайнего неуважения к участникам форума.
К сожелению, "написанное не вырубишь топором"(или сказанное, не помню, как было в поговорке), тем более, если оно процитированно следующим постом. Если я заслуживаю плюса или бана по мнению администрации - так тому и быть.
__________________
мой пустой блог

Старый 04.03.2013, 22:25
ArtS вне форума Посмотреть профиль Отправить личное сообщение для ArtS Найти все сообщения от ArtS
  № 27  
Ответить с цитированием
ArtS

Регистрация: Mar 2013
Сообщений: 19
Цитата:
Сообщение от iflamberg Посмотреть сообщение
Да, соглашусь, я был слишком прямолинеен и груб. Просто был крайне раздражен нежеланием автора топика хотя бы чуть-чуть поработать самостоятельно, может быть, я такое поведение тоже считаю хамством, проявлением крайнего неуважения к участникам форума.
К сожелению, "написанное не вырубишь топором"(или сказанное, не помню, как было в поговорке), тем более, если оно процитированно следующим постом. Если я заслуживаю плюса или бана по мнению администрации - так тому и быть.
Ну я же новичёк, осваиваю, учусь, пытаюсь что-то делать. Если я не понимаю что мне пишут, я переспрашу, попрошу сделать более удобнее для новичка)

Старый 05.03.2013, 08:44
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 28  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
ВОт так
http://ushan.org/ru/pages/portfolio/...les/fishes.swf


TweenLite здесь не подойдет. У рыбки должны быть виртуальные координаты направления к цели, скорость, ускорение. Если ее она проплыла мимо цели, то должна замедлится стремясь вернуться назад, пока не дойдет до нудной точки. ПРиблизительно как и человек на велосипеде Потом угол поворота направления тоже не может меняться мгновенно в реальной жизни, и у него тоже должна быть своя скорость и ускорение.
Вы говорите новичек, в принципе знания ООП здесь не обязательны, но если не было навыков раоты с кинематикой то вам будет сложновато, попробуйте для начала написать классичискую задачку с падающим на землю и отскакивающим от нее мячиком Или движением палочки по касательной к элипсу.

Добавлено через 5 минут
Или, даже лучше всего, алгоритм выпущенной стрелы.
Только без TweenLite на уровне задания скорости и ускорения свободного падения

Добавлено через 28 минут
Вот вам для начала основа для экспериментов:
http://wonderfl.net/c/adZE (на этом сервисе можете писать код и компилить прямо на сайте)


Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Test2 extends Sprite
	{
		private var sprite	:Sprite;
		private var speedX	:Number = 5;
		private var speedY	:Number = -3;
		private var grvity	:Number = 0.1;
 
		public function Test2()
		{
			init();
		}
 
		private function init():void
		{
			initSptrite();
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
 
		}
 
		private function initSptrite():void
		{
			sprite = new Sprite();
			addChild(sprite);
			sprite.graphics.beginFill(0x0000ff);
			sprite.graphics.drawEllipse(0, 0, 20, 3);
			sprite.x = 20;
			sprite.y = 100;
		}
 
		private function update():void
		{
			sprite.x += speedX;
			speedY += grvity;
			sprite.y += speedY;
			var rotationRad:Number = Math.atan2(speedY, speedX);
			sprite.rotation = rotationRad  / Math.PI * 180;
		}
 
		private function enterFrameHandler(event:Event):void
		{
			update();
		}
 
	}
}
Вам задание: сделайте так что бы стрела меняла направление скорости и летела в точку клика. (Подсказка: высчитывай скорость по Х и по Y умножив модуль скорости на cos и sin угла к цели соответственно)
__________________
...


Последний раз редактировалось Александр Мостовой; 05.03.2013 в 14:23.
Старый 05.03.2013, 12:16
RedLizard вне форума Посмотреть профиль Отправить личное сообщение для RedLizard Найти все сообщения от RedLizard
  № 29  
Ответить с цитированием
RedLizard
 
Аватар для RedLizard

Регистрация: Feb 2008
Сообщений: 21
К вопросу о рыбах Недавно на досуге прототип игрушки начал писать http://pixorama.ru/demo/bigfish/ Тоже твинером движение сделал http://pixorama.ru/demo/bigfish/

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

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

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


 


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


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