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

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

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
а руками находить синусы и косинусы при помощи векторов.
Можно пример?
__________________
Reality.getBounds(this);

Старый 18.11.2013, 21:51
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 12  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Тут уравнение окружности, длина отрезка(расстояние между точками) + localToGlobal/globalToLocal - за глаза.
Если охота поиграться то теорему косинусов можно.

А можно на костылях собрать.
Делаем спрайт с отметкой.
На корабль основной лепим этот мувик, и вращаем вокруг корабля. По отметке будем мерять координаты врагов, которые вокруг него крутятся. Можно еще для каждого врага по такому спрайту сделать.
Соответственно враги летят на корабль, и замеряют расстояние. Когда расстояние становится минимально допустим чтобы начать крутить вокруг корабля - он меняет свою траекторию на круговую (приклеивается на отметку этого самого спрайта).

Как-то так. (ну и я предупредил, что это решение "на костылях" )

Ну а чтоб корабль не мог из круга вылететь тут надо желаемую механику смотреть, вариантов много есть.

Ну и костыли же не наш метод. Так что приглашаю вас изучить теорему косинусов и уравнение окружности.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 18.11.2013, 23:14
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 13  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Можно пример?
Вот так косинус и зная его синус вообще очень легко найти, я просто не помню. я как только немного разберусь, то доделаю
как и хотел, всю геометрию и алгебру. Но это долго, а ещё дольше, это рисовать, чтобы потом не забыть))
Но я уже говорил, что я не доделал и по этому, если ошибусь, то ужас...
Про иглайн только сейчас придумал) А скорость я когда тестировал, то тестировал не как метод,
а как код.. Методы я делал только чтобы не забыть.
Код AS3:
[Inline]
public static function angleCosinus(a:Vector.<Point>):Number
{
	return (a[0].x*a[1].x+a[0].y*a[1].y)/Math.sqrt(((a[0].x*a[0].x)+(a[0].y*a[0].y))*((a[1].x*a[1].x)+(a[1].y*a[1].y)))
}

Старый 18.11.2013, 23:31
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 14  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
public static function angleCosinus(a:Vector.<Point>):Number
{
return (a[0].x*a[1].x+a[0].y*a[1].y)/Math.sqrt(((a[0].x*a[0].x)+(a[0].y*a[0].y))*((a[1].x*a[1].x)+(a[1].y*a[1].y)))
}
Порнуха! Используются 2 элемента массива, зачем передавать тогда массив, когда можно передать просто 2 точки? Вот такого рода велосипеды и делают код неМасштабируемым
__________________
Марк Tween

Старый 18.11.2013, 23:34
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 15  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
in4core это не должно было быть утильсоми, это я практиковал в передаче сюреалезованными массивами))

Добавлено через 4 минуты
У меня сейчас просто истерика я полез в классы с геометрией, смотрю и не понимаю, когда я это делал и что это. я теперь точно всё буду подробно расписывать и если надо то второй экземпляр сокращать, а то у меня чувство, что мне эти классы подсунули

Старый 18.11.2013, 23:59
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 16  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Сюрреализм - одним словом
__________________
Марк Tween

Старый 19.11.2013, 00:04
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 17  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Капец. Слышал звон, но не знаю, где он, как обычно... Для справки: это называется скалярное произведение двух векторов.
Непонятно только, как это может заменить Math.cos.

Старый 19.11.2013, 00:15
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 18  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
А это тогда что? А заменить это может в тех случаях, где на самих углах не чего не строится.
Косинусов и синусов бывает достаточно. я бы мог повторить слова с хабра, где говорилось, что в БОЛЬШЕНСТВЕ случаев, бывет достаточно,
но не повторю, потому что случаев у меня ещё не было. И если у Вас есть угол, то да узнать его косинус, это не поможет,
но ведь есть другой вариант, строить все на векторах.
Ваш разум почему то пол кода не увидел.. Может от звона в глазах темнеет?)
И я не совсем понимаю, зачем имея три точки искать угол, чтобы потом получить косинус, когда все можно векторами делать?
Или сделать обратное, ведь тоже можно векторами. А с Inline, это становится не только лучше, но и быстрее.
И если обратить внимание на слово с которого Вы начали, то если честно, мне не стыдно задавать много вопросов. Честно!
я понимаю, что кто то делал не так, но мне всё равно. Пусть я глупый ещё, но если почитать мой комент, то в нем я не посоветовал, что то сумашедшее, а дал полезный совет. Если начать делать физику, то начанать нужно с класса физики. По чему бы с самого начала не строить всё на внутренних законах, по которым бы что могло притягивалось, а что нет, то нет. и я даже извинюсь перед Вами за мою глупость, которая побудила Вас выразится не совсем хорошо, может Вам легче станет - Извините!
Изображения
 


Последний раз редактировалось Akopalipsis; 19.11.2013 в 00:37.
Старый 19.11.2013, 00:27
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 19  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
много математики http://ru.wikipedia.org/wiki/Задача_трёх_тел
Да ну нет, тут физикой, хоть как-то относящейся к закону тяготения Ньютона и не пахнет:
Цитата:
Пока идея такая: При определённом расстояние объект как бы присоединяется к космическому кораблю, но если у космического корабля скорость станет определённой, то объект, как бы будет отсоединятся. Так же можно сделать касание объектов друг друга, чтобы избежать возможности - несколько объектов выставились в ряд не по периметру, а в одном месте.
Тут при расстоянии меньше R надо логически присваивать объекту аттрактор, представляющий собой круг, жёстко привязыанный к центру корабля, а при скорости корабля больше V удалять у всех объектов, зарегеных на атракторе этот аттрактор и ангегить их с него.

Аттрактор "круг" делается достаточно просто, суть такая:
- в каждом кадре смотрим положение объекта относительно этого круга
- если объект за кругом, то направляем скорость внутрь
- если объект внутри круга - наружу
(составляющая, направленная к центру и от цетра тем меньше, чем меньше разница между реальным положением и "орбитой", т.е. Rreal - R)
- тангенциальную составляющую берем по часовой стрелке (к примеру) и делаем тем больше, чем меньше разница Math.abs(Rreal - R)
- массу, ускорение - даже не рассматриваем - это чисто кинематическая задача.

Таким образом объект плавно выходит на круг и никуда с него не девается.
При ускорении корабля они даже будут живенько отставать от него автоматически, если использовать только глобальные координаты

Т.е. в объекте на enterFrame вызываем getV() у текущего назначенного атрактора, и прибавляем ее к нашим координатам - всё!

Старый 19.11.2013, 01:19
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 20  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
О нет... прошу прощения за жуткий оффтоп у автора.
Цитата:
Больше, я вообще зарёкся, что методы Point и Math не буду использовать. В матхе есть смысл только в квадратном корне и arFunction.
Цитата:
А как без Math работаете?
Векторы, не класс Point, а руками находить синусы и косинусы при помощи векторов.
Цитата:
Косинусов и синусов бывает достаточно. я бы мог повторить слова с хабра, где говорилось, что в БОЛЬШИНСТВЕ случаев, бывет достаточно
Так вы используете Math или нет? К чему вообще был этот флуд про Math?
Цитата:
Если начать делать физику, то начанать нужно с класса физики. По чему бы с самого начала не строить всё на внутренних законах, по которым бы что могло притягивалось, а что нет, то нет.
Цитата:
А вообще, я только геометрию хочу выучить, а вот физику не буду. Есть же движки, я хоть и не знаю что там, но мне кажется, что вот как раз то, о чем я говорю, там есть. И анимацию ещё сам хочу попробовать. И безье..
А это что за бред?

Вы бесконца твердите о том, что вам де не хотят помогать и только издеваются. Тем временем, вы вполне себе спокойно приходите в чужой топик и с несусветной важностью несете околесицу.
Цитата:
Для такой игры нужно полностью класс физики писать, что бы он руководил всей игрой.
Спасибо, кэп!


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

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

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


 


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


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