Суббота, 23 Ноября 2024, 08:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Как сделать так, чтобы объекты не накладывались?
XantrДата: Среда, 17 Июля 2013, 00:09 | Сообщение # 1
был не раз
Сейчас нет на сайте
Сделал редактор уровней, но объекты можно накладывать друг на друга. Как сделать так, чтобы объект нельзя было наложить на другой?
надеюсь понятно объяснил
Nick_RimerДата: Среда, 17 Июля 2013, 09:05 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
отследить это можно как-то примерно так (хватай синий квадрат мышкой; пример для СС r2)
а как это обработать - решать тебе.

событие активируется, если хотя бы один пиксель объекта перекрывает пиксель другого


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Среда, 17 Июля 2013, 09:05
XantrДата: Среда, 17 Июля 2013, 09:53 | Сообщение # 3
был не раз
Сейчас нет на сайте
Ну это я знаю как сделать, а вот что дальше.. ничего придумать не смог.

Сообщение отредактировал Xantr - Среда, 17 Июля 2013, 10:02
Nick_RimerДата: Среда, 17 Июля 2013, 10:00 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
прошу прощения, не доглядел, что вопрос для С2.. sad
увы, нет. но попробуй поискать в событиях спрайта что-то вроде Is overlapping another object?


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Среда, 17 Июля 2013, 10:00
XantrДата: Среда, 17 Июля 2013, 10:17 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата (Nick_Rimer)
Is overlapping another object

Есть, и как в этом примере я уже давно сделал, а вот дальше что?
Nick_RimerДата: Среда, 17 Июля 2013, 10:20 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Xantr, хорошо, а что надо-то?? я рад, что ты сделал редактор уровней, но я не знаю всей его матчасти, и хочется понимать, в каком случае чего ты хочешь избежать. может надо проверять что-то другое, а не перекрытия? хз..

- Доброе утро, Агент Пи!
XantrДата: Среда, 17 Июля 2013, 10:49 | Сообщение # 7
был не раз
Сейчас нет на сайте
Если один предмет 1 соприкасается с предметом 2, то предмет 1 нельзя поставить, пока он перекрывает предмет 2, а если отпустить ЛКМ(поведение Drag & Drop), то предмет 1 автоматически ставится туда, где ничего не мешает
скриншотов что ли сделать..
IvanKorobkoДата: Среда, 17 Июля 2013, 10:55 | Сообщение # 8
IK Studio
Сейчас нет на сайте
Как вариант разбить мап на сектора, присвоить каждому сектору переменную, при установке в сектор объекта - проверять переменную "свободен ли сектор", затем при положительном ответе - устанавливать объект на сектор и изменять его переменную...

XantrДата: Четверг, 18 Июля 2013, 13:55 | Сообщение # 9
был не раз
Сейчас нет на сайте
Можно пример?

Добавлено (18.07.2013, 13:55)
---------------------------------------------
Придумал как это сделать. Но появился другой вопрос: как сделать воздушный шарик? На все объекты действует гравитация и они падают вниз, а шарик должен вверх лететь..

Nick_RimerДата: Четверг, 18 Июля 2013, 14:03 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Xantr, может и не очень пример, может можно как-то иначе, но есть у Physics такой метод как Set Force(x,y).
назначь объекту массу и сделай условно так:
Код
System.Always -> SetForce(0, -1)


- Доброе утро, Агент Пи!
XantrДата: Четверг, 18 Июля 2013, 15:02 | Сообщение # 11
был не раз
Сейчас нет на сайте
Nick_Rimer, работает, но шарик ускоряется.. Можно сделать так, чтобы он с одной скоростью летел?
madsenДата: Четверг, 18 Июля 2013, 15:08 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Xantr, можно проще
Переверни шарик в редакторе событий, и переверни шарик на уровне.
Летит вверх? Это "теория" т.к. физику объектов не очень то я и изучаю smile


ScirrA ConstrucT
-------------------------
Unity 3D
-------------------------
Crytek Engine 3
-------------------------
Unreal Development Kit
Nick_RimerДата: Четверг, 18 Июля 2013, 15:27 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
Xantr, я работаю в СС, а ты, я так понял, в С2.
наверное, что-то будет отличаться, но я сделал ещё вот как: помимо поведения Physics добавил ещё поведение Custom Movement.
и сделал вместо старого уже вот такой условный код:
Код
System.StartOfLayout -> ChangeVerticalSpeed(Set, 10, 180)

(это метод поведения Custom Movement)
Т.е. устанавливаю постоянное движение по оси Y вверх с постоянной скоростью 10.
Таким образом можно подобрать скорость, которая бы превышала силу гравитации и давала бы равномерный подъём.

Вообще, если шарику не надо быть объектом физики, то Physics с него можно и снять..


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Четверг, 18 Июля 2013, 16:52
XantrДата: Четверг, 18 Июля 2013, 15:54 | Сообщение # 14
был не раз
Сейчас нет на сайте
Цитата (Nick_Rimer)
Custom Movement

Пробовал, он тогда с другими объектами не сталкивается.
Цитата (Nick_Rimer)
то Physics с него можно и снять

Нужно для того, чтобы он с другими объектами сталкивался.
Nick_RimerДата: Четверг, 18 Июля 2013, 16:12 | Сообщение # 15
заслуженный участник
Сейчас нет на сайте
Xantr, ну тогда менять движение только при помощи физики.. а это там делается расстановкой сил (всё, как в школьном учебнике), т.о. силы, направленные в противоположные стороны, должны друг другу "мешать", а при условии их равенства - уравновешивать тело при отсутствии действия других сил.
попробуй сделать такую силу, поднимающую шарик вверх (т.е. сила, направленная вверх, должна быть по модулю выше силы тяжести). по идее, гравитация по умолчанию уже должна стоять (заданы масса тела и ускорение свободного падения), и должна быть она равна F=mg условных единиц констракта smile


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Четверг, 18 Июля 2013, 16:14
XantrДата: Пятница, 19 Июля 2013, 09:54 | Сообщение # 16
был не раз
Сейчас нет на сайте
Появился другой вопрос - а как сохранить уровень сделанный в редакторе уровней? Чтобы можно было, например, выйти из игры, зайти и уровень сохранится.
Nick_RimerДата: Пятница, 19 Июля 2013, 10:05 | Сообщение # 17
заслуженный участник
Сейчас нет на сайте
Xantr, сохранить во время игры?
в System есть что-то вроде Save/Load и Quicksave/Quickload.
никогда не пользовался, не могу подсказать, как сработает..
если не подходит, то есть и всякие другие способы сохранения/загрузки, но их придётся писать вручную самому

кстати, мож и плагин какой есть..


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Пятница, 19 Июля 2013, 10:06
XantrДата: Пятница, 19 Июля 2013, 10:31 | Сообщение # 18
был не раз
Сейчас нет на сайте
И ещё по звукам вопрос, нужно чтобы когда мяч падал на что-то проигрывался звук удара, сделал так, но звук срабатывает даже когда мяч просто катится..
Nick_RimerДата: Пятница, 19 Июля 2013, 11:36 | Сообщение # 19
заслуженный участник
Сейчас нет на сайте
Xantr, попробуй событие System -> Trigger once while true

- Доброе утро, Агент Пи!
XantrДата: Пятница, 19 Июля 2013, 12:03 | Сообщение # 20
был не раз
Сейчас нет на сайте
Nick_Rimer, не нашёл такого.
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг