|
Болтовня Разговоры на любые темы (думайте, о чем пишите) |
Результаты опроса: какой вариант лучше
|
1
|
|
1 |
5.56% |
2
|
|
14 |
77.78% |
все плохи
|
|
0 |
0% |
нет разницы
|
|
3 |
16.67% |
21.06.2011, 02:12
|
#1
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
какой синтаксис лучше
ent->Position(some_vec);
vec3 vec = ent->Position();
ent->SetPosition(some_vec);
vec3 vec = ent->GetPosition();
|
(Offline)
|
|
21.06.2011, 02:19
|
#2
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: какой синтаксис лучше
второй имхо понятнее
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.06.2011, 03:35
|
#3
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: какой синтаксис лучше
Второй понятнее, но если не отталкиваться от старых "байсик идеологий", то я бы выбрал первый.
Но, есть ли аналог Accessor'ов в С++?
Было бы намного круче:
ent->Position = some_vec;
ent->Position->X = 1024;
vec3 vec = ent->Position;
|
(Offline)
|
|
21.06.2011, 06:47
|
#4
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,358
Написано 2,472 полезных сообщений (для 6,854 пользователей)
|
Ответ: какой синтаксис лучше
Сообщение от MoKa
Второй понятнее, но если не отталкиваться от старых "байсик идеологий", то я бы выбрал первый.
Но, есть ли аналог Accessor'ов в С++?
Было бы намного круче:
ent->Position = some_vec;
ent->Position->X = 1024;
vec3 vec = ent->Position;
|
Довольно удобно:
ent->Position = new vec3(1,2,3)
ent->Position->x++;
ent->Positon->y--;
ent2->Position = ent->Position;
|
(Online)
|
|
21.06.2011, 07:14
|
#5
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: какой синтаксис лучше
к сожалению не вижу способа реализации. надо считать матрицу трансформации. если дать пользователю напрямую редактировать позицию - то я несмогу в плюсах отловить факт редактирования. Ето же не шарп с аццесорами.
ent2->Postion(ent); - так можно будет
ну или ent2->SetPosition(ent); - если не решусь убрать Get-Set
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.06.2011, 11:39
|
#6
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,358
Написано 2,472 полезных сообщений (для 6,854 пользователей)
|
Ответ: какой синтаксис лучше
Лучше без Get/Set тогда.
А если не секрет, как правильно определять в таком типе ф-ции заносит пользователь данные или просто хочет получить?
Вот к примеру псевдокод:
class foo{
float x;
float bar(float x_ = ???){
// Вот как проверить заносит ли пользователь данные?
// Если делать пр-ку на определённое число то это костыль
return x;
}
}
|
(Online)
|
|
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
|
|
21.06.2011, 13:18
|
#7
|
Дэвелопер
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений (для 1,962 пользователей)
|
Ответ: какой синтаксис лучше
Перегрузка?
|
(Offline)
|
|
21.06.2011, 14:13
|
#8
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: какой синтаксис лучше
А если не секрет, как правильно определять в таком типе ф-ции заносит пользователь данные или просто хочет получить?
|
просто создаёшь две функции Position, одна с параметрами, другая без.
имхо это неудобно, т.к. пройдёт пара лет, ты откроешь свой код (или его откроет кто-нибудь ещё), и задашься вопросом - "Что делает метод Position? ставит или берёт позицию?". Потом до тебя только начнёт доходить что и то и другое. А если явно указано Get и Set, то тут и ежу понятно какой метод что делает.
|
(Offline)
|
|
Эти 6 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
|
|
21.06.2011, 19:23
|
#9
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: какой синтаксис лучше
2-ой же !! Set/Get понятней !!
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо IGR за это полезное сообщение:
|
|
22.06.2011, 00:51
|
#10
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: какой синтаксис лучше
хорошо, что спросил
добавил возврат объекта в сеттерах
теперь можно писать так:
Entity *turret = s->Add(cube)
->SetParent(body)
->SetShader(StandartShaders::Render::OnlyNormals())
->SetPosition(0,0.0,-1.25)
->SetScale(0.25)
->SetBlend(BM_MULTUPLY);
Последний раз редактировалось HolyDel, 22.06.2011 в 02:05.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.06.2011, 14:13
|
#11
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: какой синтаксис лучше
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
|
|
22.06.2011, 14:31
|
#12
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: какой синтаксис лучше
Такая "фича", удобна при говнокоде и для быстрой разработке, но на деле, в больших проектах не очень и применяемо..
|
(Offline)
|
|
22.06.2011, 15:40
|
#13
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: какой синтаксис лучше
Нормальная фича, при чем тут говнокод?
__________________
|
(Offline)
|
|
22.06.2011, 15:45
|
#14
|
Бывалый
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений (для 245 пользователей)
|
Ответ: какой синтаксис лучше
Уверен, что второй способ лучше! Это стандартный подход. Меньше будет головной боли...
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
|
(Offline)
|
|
22.06.2011, 16:11
|
#15
|
Нуждающийся
Регистрация: 17.12.2010
Адрес: Санкт-Петербург
Сообщений: 87
Написано 55 полезных сообщений (для 214 пользователей)
|
Ответ: какой синтаксис лучше
Можно ещё так ))
ent->Position = {3.0, 47.0, 18.0};
ent->Position(3.0, 47.0, 18.0);
ent->Position = ent2;
ent->Position->x(LOCAL) = 1024;
vec3 vec = ent->Position;
vec3 vec = ent->Position(GLOBAL);
Как по мне - пофигу, но лучше без извращений. Что первый, что второй варианты катят.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо ANDREYman за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:48.
|