Клетка
|
|
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
если возникнут уникальные случаи, уверен, теперь ты сможешь сам с ними разобраться, что-нибудь подкорректировав. но я думаю, не понадобится. дерзай!
=== для справок: операция // - это целочисленное деление. число делится одно на другое, результатом является целая часть результата, дробная часть отбрасывается. например, 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, никогда не работал с математикой? ща запилю тебе исходник
- Доброе утро, Агент Пи!
|
|
| |
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. в итоге получается тот же результат.
и вот, лови: скачать всё прекрасно заполняется красными квадратами
пример для СС 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
|
|
| |