Четверг, 05 Декабря 2024, 06:11

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Клетка
madsenДата: Вторник, 03 Сентября 2013, 10:33 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
ВСем привет! у меня вопрос
Как в c2 Сделать так, что-бы объекты ставились по клетке 32x32?
Я нажимаю в 1 место на девайсе у меня объекты ставяться не по клетке, а в том месте де я нажал.
как сделать выравнивание?
Спасибо заранее.


ScirrA ConstrucT
-------------------------
Unity 3D
-------------------------
Crytek Engine 3
-------------------------
Unreal Development Kit
Nick_RimerДата: Вторник, 03 Сентября 2013, 10:40 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
madsen, выравнивание в процессе игры или в конструкторе привязка к сетке?
сорри, из твоего поста не совсем понял.

если привязка к сетке в конструкторе, то есть вот:


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

Сообщение отредактировал Nick_Rimer - Вторник, 03 Сентября 2013, 11:00
madsenДата: Вторник, 03 Сентября 2013, 10:51 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Nick_Rimer, Процесс игры.

ScirrA ConstrucT
-------------------------
Unity 3D
-------------------------
Crytek Engine 3
-------------------------
Unreal Development Kit
Nick_RimerДата: Вторник, 03 Сентября 2013, 11:08 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
madsen, я так понимаю, ты щёлкаешь мышкой, объект появляется в точке с координатами мыши, а надо привязать к клетке 32х32?
тебе нужно немножко математики. вот, что делаем:

допустим, ты щелкнул мышкой, и получилось MouseX = 131, MouseY = 75
теперь вычислим ближайший квадрат по сетке 32х32.
для этого ДЕЛИМ НАЦЕЛО MouseX на 32. получим: MouseX // 32 = 4
теперь умножаем результат от деления на 32, получаем: 4*32 = 128.

аналогично для MouseY.
MouseY // 32 = 2
2*32 = 64

итого.
квадрат создаём в точке x=128, y=64

если возникнут уникальные случаи, уверен, теперь ты сможешь сам с ними разобраться, что-нибудь подкорректировав.
но я думаю, не понадобится.
дерзай! wink

===
для справок:
операция // - это целочисленное деление.
число делится одно на другое, результатом является целая часть результата, дробная часть отбрасывается.
например, 5/2 = 2 целых и 1/2 (одна вторая). таким образом результатом 5//2 будет число 2

есть ещё приём вычисления остатка от деления.
результатом того же деления 5 на 2 с вычислением остатка будет:
5%2 = 1 (потому что в дробной части была одна вторая)


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

Сообщение отредактировал Nick_Rimer - Вторник, 03 Сентября 2013, 11:12
madsenДата: Вторник, 03 Сентября 2013, 11:11 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Nick_Rimer, Никогда с этим не работал.
Можно исходник хоть для c1?


ScirrA ConstrucT
-------------------------
Unity 3D
-------------------------
Crytek Engine 3
-------------------------
Unreal Development Kit
Nick_RimerДата: Вторник, 03 Сентября 2013, 11:13 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
madsen, никогда не работал с математикой? biggrin
ща запилю тебе исходник


- Доброе утро, Агент Пи!
madsenДата: Вторник, 03 Сентября 2013, 11:19 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Nick_Rimer, В construct - нет
Да и вообще с математикой проблемы)


ScirrA ConstrucT
-------------------------
Unity 3D
-------------------------
Crytek Engine 3
-------------------------
Unreal Development Kit
Nick_RimerДата: Вторник, 03 Сентября 2013, 12:49 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
madsen, сорри за задержку!
внезапно пришёл шеф и выдал столько работы, что стало не до исходника..
потом выяснилось, что целочисленное (а именно две косых черты //) не хочет работать в СС. что странно. ибо там питон.
поэтому я воспользовался функцией floor(), она округляет число всегда в меньшую сторону, т.е. даже, например, число 3.999999999 будет округлено до 3. в итоге получается тот же результат.

и вот, лови: скачать
всё прекрасно заполняется красными квадратами smile

пример для СС r2


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

Сообщение отредактировал Nick_Rimer - Вторник, 03 Сентября 2013, 12:50
madsenДата: Вторник, 03 Сентября 2013, 12:58 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Nick_Rimer, как это тогда сделать в c2?
не работает. в с2

Добавлено (03.09.2013, 12:58)
---------------------------------------------
Тупанул надо было mouse заменить на touch)


ScirrA ConstrucT
-------------------------
Unity 3D
-------------------------
Crytek Engine 3
-------------------------
Unreal Development Kit
  • Страница 1 из 1
  • 1
Поиск:

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