Форум
Написать нам
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: as-master  
Положение объекта
SergДата: Воскресенье, 18 Января 2009, 16:11 | Сообщение # 1
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Как сделать такую вещь,допустим есть четыре линии,каждая из них перемещается мышкой и если из этих линий собрать квадрат например,то будет выполено определённое действие,т.е. мне нужно чтобы объекты можно было двигать и собирать из них определённые вещи.

 
dronetДата: Воскресенье, 18 Января 2009, 16:38 | Сообщение # 2
Любопытный
Группа: Проверенные
Сообщений: 38
Репутация: 0
Награды: 0
Статус: Offline
Примерчик можеш скинуть? Может смогу помочь

Andress
 
toizyДата: Воскресенье, 18 Января 2009, 18:03 | Сообщение # 3
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Двигать объекты мышью, думаю, умеешь. Вот при движений просто запоминаешь текущие координаты в спец переменные и по условию выполняешь действие. Чтобы узнать, собран ли именно квадрат, нужно сравнивать координаты окончаний линий, у соседних одна из двух точек должна совпадать по координатам.
Ну в общем объяснил как смог, идея есть. С реализацией помогут :-)


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Воскресенье, 18 Января 2009, 18:20 | Сообщение # 4
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Примерчек, да просто есть четыре линии например по 10 см.Мне просто хочу понять как делать если координаты нужные совпадают то действия нужные происходят

 
toizyДата: Воскресенье, 18 Января 2009, 19:06 | Сообщение # 5
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Да очень просто. Ты сделал перемещение линий мышью? Вот в том сценарии, в котором ты перемещаешь линии, просто впиши условие. Блин, без ммв я не могу обьяснить это, надеюсь, ребята состряпают пример тебе.

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Воскресенье, 18 Января 2009, 19:24 | Сообщение # 6
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Вот примерный проект.Вот только не знаю как сделать ещё и функцию поворота линий,чтобы квадрат например сделать
Прикрепления: 7605949.mbd (7.7 Kb)


 
DEMBELДата: Воскресенье, 18 Января 2009, 19:50 | Сообщение # 7
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (adamfromvyazniki)
Вот только не знаю как сделать ещё и функцию поворота линий

Да точно также, сделай на концах линий hotspot-ы и таскай их вместе с линией - при щелчке на hotspot будет запускаться скрипт поворота. А вот с расчетом координат при произвольном повороте - будет нешуточное дело, скажу я тебе... Вспоминай геометрию и тригонометрию... Хотя можно проще - при щелчке (или чего там у тебя) на hotspot линия будет поворачивать сразу на 90 градусов (т.е. становиться горизонтальной - это рассчитать просто, тебе ж всего-то квадрат нужен)...




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62


Сообщение отредактировал DEMBEL - Воскресенье, 18 Января 2009, 19:55
 
SergДата: Воскресенье, 18 Января 2009, 20:01 | Сообщение # 8
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
да,лучше сразу по 90 градусов,а как быть с координатами?Поможеш примером

 
DEMBELДата: Воскресенье, 18 Января 2009, 20:03 | Сообщение # 9
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Блин, ну ладно, подожди сейчас я сам посчитаю...



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SergДата: Воскресенье, 18 Января 2009, 20:10 | Сообщение # 10
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Хорошо,жду,спасибо

 
DEMBELДата: Воскресенье, 18 Января 2009, 20:22 | Сообщение # 11
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
нее, что-то я загнул лишнего - командой moveobject нельзя же менять ориентацию обьекта - можно только двигать по плоскости. Придется тебе рисовать заранее спрятанные горизонтальные линии и при щелчке на hotspot показывать их, ну а с этим я думаю ты справишься. А у меня просто больная фантазия разыгралась...



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62


Сообщение отредактировал DEMBEL - Воскресенье, 18 Января 2009, 20:26
 
SergДата: Воскресенье, 18 Января 2009, 20:32 | Сообщение # 12
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
да фиг с ним с разворотом,как сделать с координатами

 
DEMBELДата: Воскресенье, 18 Января 2009, 20:34 | Сообщение # 13
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
примерно так

Добавлено (18 Январь 2009, 20:34)
---------------------------------------------

Quote (adamfromvyazniki)
как сделать с координатами

а что с координатами? нельзя с moveobject вращать обьекты, не получится...
Quote (DEMBEL)
рисовать заранее спрятанные горизонтальные линии

пока только так придумал. только разумеется это уже будет другая линия.
Прикрепления: 3798083.mbd (8.9 Kb)




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62


Сообщение отредактировал DEMBEL - Воскресенье, 18 Января 2009, 20:35
 
SergДата: Воскресенье, 18 Января 2009, 20:42 | Сообщение # 14
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Да например две линии будут горизонтальные а две вертикальные,как сделать квадрат и чтобы действие происходило

 
basmeДата: Воскресенье, 18 Января 2009, 22:35 | Сообщение # 15
MMB Club
Группа: Проверенные
Сообщений: 358
Репутация: 5
Награды: 2
Статус: Offline
Если хочешь сделать так, чтобы можно было вращать линии, вместо объекта Line помещай Bitmap. Его можно вращать командами RotateImageTo или RotateImageRel на любой произвольный угол. Координаты начала и конца битмапа, повёрнутого на любой угол, вычислить можно элементарно:
Левый верхний угол: ObjectX,ObjectY
Правый верхний угол: ObjectX+ObjectWidth,ObjectY
Левый нижний угол: ObjectX,ObjectY+ObjectHeight
Правый нижний угол: ObjectX+ObjectWidth,ObjectY+ObjectHeight
Остаётся только понять, в каком конкретно углу начинается и в каком заканчивается линия, а это можно сделать исходя из угла поворота битмапа, его обозначающего.
Если непонятно, спрашивай, объясню подробно.
 
SergДата: Воскресенье, 18 Января 2009, 23:41 | Сообщение # 16
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
если можно то примерчик,только ещё ведь надо чтобы при достижении определённых координат происходили действия

 
usermmbuildДата: Понедельник, 19 Января 2009, 12:06 | Сообщение # 17
Любопытный
Группа: Проверенные
Сообщений: 48
Репутация: 0
Награды: 0
Статус: Offline
Вот примерчег: 76000.mbd(10.7kb)

Берём и соединяем начала.
! Работает с точностью пиксель в пиксель.

Прикрепления: 76000.mbd (11.5 Kb)
 
SergДата: Понедельник, 19 Января 2009, 13:17 | Сообщение # 18
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Вот что я сделать хочу(пример)

Добавлено (19 Январь 2009, 13:17)
---------------------------------------------
usermmbuild,спасибо за пример,но что то я не понял sad

Прикрепления: 8505229.mbd (6.2 Kb)


 
usermmbuildДата: Понедельник, 19 Января 2009, 13:33 | Сообщение # 19
Любопытный
Группа: Проверенные
Сообщений: 48
Репутация: 0
Награды: 0
Статус: Offline
Видно я тоже, мне стало белее понятно после того что ты хочешь собрать цепь smile
 
toizyДата: Понедельник, 19 Января 2009, 13:43 | Сообщение # 20
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Опять заранее спрятанные объекты. Видно, разработчики зря старались с новой версией, если эти новые фишки никто не использует :-)
Я так, я ничо...


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Четверг, 22 Января 2009, 16:16 | Сообщение # 21
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Вот как так сделать

Добавлено (19 Январь 2009, 14:12)
---------------------------------------------
toizy, а как сделать иначе

Добавлено (22 Январь 2009, 16:16)
---------------------------------------------
Подскажите поподробнее какк сделать


 
toizyДата: Четверг, 22 Января 2009, 17:56 | Сообщение # 22
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Я это насчёт того что не надо прятать, а создавать в рантайме...

Добавлено (22 Январь 2009, 17:42)
---------------------------------------------
Можешь задать положение какое тебе удобно.

Добавлено (22 Январь 2009, 17:56)
---------------------------------------------
Т.е. щелчок мышью - старый объект убиваешь - новый сохдаёшь на новом месте. Для юзера это один и тот же объект, который перемещается


Жизнь оказалась не такой уж и забавной, как поначалу...
 
Alex3AДата: Пятница, 23 Января 2009, 04:02 | Сообщение # 23
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Зачем все так сложно,
Quote (basme)
вместо объекта Line помещай Bitmap

basme, правильно говорит, все равно это только лиш изображение.
Quote (toizy)
Я это насчёт того что не надо прятать, а создавать в рантайме...

Рантайм это очень полезные функции, но не все с ним создаеться, остальное можно и спрятать,
но для решения поставленной задачи, применять их все равно что стрелять по воробьям.
Нет что бы кто показал проект с настоящим динамическим сценарием, вот там бы и рантайм сгодился.
 
toizyДата: Пятница, 23 Января 2009, 10:40 | Сообщение # 24
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
имхо, это и есть случай с использованием рантайм. Ведь, я так понял, ему нужно схемы чертить? Значит, линий может быть множество, всех не спрячешь. Хотя может я не так понял?

Однажды, ещё по просьбе as-master, я делал проект с динамическим созданием. получалось неплохо. Очень неплохо.


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Пятница, 23 Января 2009, 12:12 | Сообщение # 25
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Да мне нужно понять с координатами,если линии соединяеш друг с другом то "дейсвие"

 
toizyДата: Пятница, 23 Января 2009, 12:17 | Сообщение # 26
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Клади сюда что там у тебя сейчас...

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Пятница, 23 Января 2009, 17:30 | Сообщение # 27
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Прикрепления: 8505229.mbd(6Kb)вот что я сделать хочу

 
toizyДата: Пятница, 23 Января 2009, 17:34 | Сообщение # 28
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Ну и хде твои прикрепления?

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Пятница, 23 Января 2009, 18:01 | Сообщение # 29
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Ой,я там выше уже выкладывал,думал ссылка скопируется
Дата: Понедельник, 19 Январь 2009, 13:17 | Сообщение # 18

Добавлено (23 Январь 2009, 18:01)
---------------------------------------------
Вот мне нужно понять как сделать чтобы если одна линия соединилася со второй происходило то или иное действие


 
Alex3AДата: Суббота, 24 Января 2009, 00:59 | Сообщение # 30
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (adamfromvyazniki)
Вот мне нужно понять как сделать чтобы если одна линия соединилася

Если координаты объектов пересекаются - значит можно выполнять действие.
Каждый объект занимает определенное пространство, по двум координатам от х до х+ширина и от у+высота,
остается проверить пересекаются ли координаты объектов.
Для объектов расположенных под углом, конечно, алгоритм будет посложнее.
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: