ScorpioT1000
Работаем
online
Опыт: отключен
|
Galaxy: ООП на процедурном языке
Не знаю, кому будет это интересно, но неплохо было бы развить данную тему.
З.Ы. vJass использует примерно такую реализацию структур на jass.
Пример класса вектора:
» Что я хочу (пример на C++):
Что я делаю:
офк это никакая не статья, ибо некогда, просто раз уш зашел об этом разговор. Но в целом я бы поддержал, если бы кто-то написал статью об этой методике) Отредактировано ScorpioT1000, 24.01.2012 в 19:31. |
24.01.2012, 18:48 | #1
+4/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
((цитата
ScorpioT1000 (18:57:50 23/01/2012)
XiMiKs, 24.01.2012 18:51:10: XiMiKs, 18:53:23:
или там нету ооп XiMiKs, 18:54:17:
46.163.69.112/Releases/Version%202.8.9 jXimikS@Twitter (18:57:00 23/01/2012) у меня ск2 нету )) |
24.01.2012, 18:58 | #2
+1/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Пока не шаря в Галакси... у меня вопрос, это на чистом галакси написано, или размышления на околотему? |
24.01.2012, 19:17 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
на чистом) |
24.01.2012, 19:21 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
ScorpioT1000, тогда круто, фигли.
MF добавил: Вопрос будет только в юзабельности всего этого... надо все таки пробывать с примерами. |
24.01.2012, 19:30 | #5
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
inoto
я буду крутым!
offline
Опыт:
6,891Активность: |
я конечно нунубло, но ты хочешь сделать класс вектор средствами С/Galaxy? |
24.01.2012, 20:05 | #6
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
inoto, именно это он и сделал. Хотя по сути, это не класс, а всего лишь ряд функций, имитирующий классы. Так было и у Вексориана, в vJass, несколько функций + параллельные массивы. Правда там еще и внешне все выглядело как ооп, но парсилось потом в чистый Jass. |
24.01.2012, 20:09 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
inoto
я буду крутым!
offline
Опыт:
6,891Активность: |
MF, хз ибо я дальше жасса решил не идти в вц3, пошёл сразу в ск2
ну да, типа класс на функциональном языке, теперь понял
вроде норм, но я ещё не шибко рулю |
24.01.2012, 20:25 | #8
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
ScorpioT1000, чтобы это все делать надо писать парсер и вшивать в сам редактор. Вроде кто то ковырял уже редактор и что то получалось. Но как то все быстро заглохло. Было бы не плохо поднять это дело и написать что то типо G++ +) с классами и наследованием |
24.01.2012, 20:28 | #9
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
inoto, "никто не рулит" Посмотрим, чего у Скорпи выйдет. Идея то сама толковая, надо только пилить реальные примеры, а не голый код. |
24.01.2012, 20:29 | #10
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
MF, тут главное сам принцип, а остальное можно запилить. Разве не? |
24.01.2012, 20:31 | #11
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
inoto
я буду крутым!
offline
Опыт:
6,891Активность: |
MF, просто мне ещё не доводилось работать с векторами например в с++, да и программирование я только начал, через месяц только инженером по ИТ буду 8) |
24.01.2012, 20:35 | #12
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
alexprey, принцип важен, не спорю, примеры могут показать как это юзать. Просто в такой форме мало кто поймет. |
24.01.2012, 20:37 | #13
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Только не на функциональном, а процедурном наверно. ФП это лиспы, хаскели и прочие.
По сабжу можно покурить Objective-C, где весь ООП - рантайм свистелка над С.
Только вот вряд ли кто-то будет утруждать себя в написании кода в таком стиле, нужно будет писать парсер вроде jass helper (парсер vjass). Парсер можно скрутить по быстрому на любой реализации PEG грамматик, например, citrus или treetop на руби, но опять же проблема в хуках к редактору Т_Т. Отредактировано exploder, 24.01.2012 в 21:42. |
24.01.2012, 20:45 | #14
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Харгард
Epic
offline
Опыт:
7,829Активность: |
С одной стороны, в игре многое можно сделать совсем без тригеров/скриптов.
А с другой, никаким гэлекси или G++ или G# не добавить интерактивные дудэды, шевелящиеся при столконовении с юнитами, честный 3Д, основанный не на двумерной карте проходимости или воду, сетку высот которой можно гибко изменять.
Кстати а вообще, дудэды можно разрушать? Атаками или способностями. |
24.01.2012, 20:46 | #15
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
exploder, я про это писал постом выше что надо замутить парсер. Старик уже вышел давно а редактор еще никто не расковырял. GraTuraL: Помойму только скриптами это и сделать |
24.01.2012, 21:06 | #16
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
alexprey, просто в большинстве случаев программисты движка наоборот пишут скрипт машину как можно более легковесной (+заточеной под геймдизанеров-макак), а все дорогостоящие вычисления выносят в нейтив. Скрипты карты по сути никогда и не достигают такой сложности и размеров, когда реально требовался бы настоящий промышленный ооп и паттерны для поддержания, расширяемости, юнит тестирования, вотевар. А крутить парсер ради богомерзкой статики вроде недоопа, перегрузки операторов и макросов не прагматично. |
24.01.2012, 21:22 | #17
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Фича в том что я не буду писать парсер =) если бы я писал что-то на галакси, я бы заюзал тот код что выше. Про objective-C верно замечено - векс скорее всего брал примеры именно оттуда.
Что касается хуков, поскольку phyngal.xgm.ru провалился, можно найти забугорных авторов, как те же galaxy++, и помочь им с объектностью галакси. Но во всем этом я буду принимать участие максимум как помощник с идеями =) ScorpioT1000 добавил:
функция - это процедура, которая возвращает значение =) галакси позволяет описывать логику функциями, почему же он процедурный? ScorpioT1000 добавил: Посмотрел вики - да фейл =( нас не так учили. |
24.01.2012, 21:37 | #18
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Нет Векс явно не ObjC вдохновлялся) Там скорее кресты, перл (module) и возможно ява.
До открытия Аппстора на обже писали только задроты в эпл. |
24.01.2012, 21:38 | #19
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
exploder, да я перепутал, я имел ввиду не обджект си, а первые версии C++, которые компилировались в C. Это яркий представитель транслятора ООП в ПП =) обжект си вобще какаято херня |
24.01.2012, 21:41 | #20
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|