[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум Panda3D - по русски » Общий форум » Флудильня » Сообщество
Сообщество
unkierДата: Четверг, 22.07.2010, 09:39 | Сообщение # 31
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
Quote (ninth)
Питон, на чём же ещё ))

Quote (ninth)
wx-интерфейс

я имел ввиду какой gui фреймворк. wx значит. с ним не работал, я приверженец qt, но готов попробовать и wx.

Quote (BlackCat)
Может стоит привлечь народ с оффорума? По идее sourceforge или googlecode должны некоторым образом ускорить разработку. Если к ней еще народ подключится. А в случае такой хорошей идеи явно кто-то захочет внести свою посильную лепту.

рекомендую bitbucket. очень удобно форкнуть нужный проект, поковырять и предложить автору втянуть твои изменения. есть вики, баг/фича трекер, файло хранилище. все питонисты любят меркуриал smile
 
ninthДата: Четверг, 22.07.2010, 10:57 | Сообщение # 32
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (BlackCat)
Может стоит привлечь народ с оффорума?

Я попытался пояснить идею, но то-ли моих познаний в буржуинском недостаточно для объяснения, что скорее всего, то-ли просто народу не интересно - пока что как-то вяло там. Ладн, посмотрим со временем.

Quote (unkier)
рекомендую bitbucket

гуглькод вроде тоже всё это умеет, в т.ч. и меркуриал + гугль, насколько я помню, сам активно юзает питона.

Quote (unkier)
wx значит. с ним не работал, я приверженец qt, но готов попробовать и wx

а что мешает сделать компонент-обёртку на qt? Я просто с ним не работал, могу быть и не в курсе каких-то особенностей ) Ведь в том и прелесть модульной работы, что если не нравится одно, можно заменить его другим )

Вообще, вывешивать эту штуку в систему управления версиями, ИМХО, рановато - надо чтобы структура ядра немного устаканилась. Я например сейчас перекинул базовый класс компонента в пакет с ядром, чтоб не мешался, а под каждый компонент выделил отдельный пакет (директорию).
http://panda3d.org.ru/files/ProtoMap.zip
Ешё изменения по сравнению с предыдущим вариантом:
1. Добавил четвёртый компонент для примера - просто сцена с пандой из урока "Hello World".
2. Сделал сортировку по весу - при создании экземпляра класса в __init__ можно задать self.weight - дальнейшая инициализация компонентов будет отсортирована в соответствии с заданным весом. Дефолтный вес = 0

З.Ы. Кто придумает этой штуке название? ) Рабочее - ProtoMap т.к. изначально это задумывалось как конструктор карт.

 
unkierДата: Четверг, 22.07.2010, 11:10 | Сообщение # 33
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
Quote (ninth)
Вообще, вывешивать эту штуку в систему управления версиями, ИМХО, рановато

ну незнаю. вот ты новый файлик залил и щас мне нада его скачать распаковать, старую папку стереть. было всё на верваке ябы щас просто сделал hg pull, hg update и всё. еще бы и коментарий к коммиту с описанием новшеств ))

Quote (ninth)
Ведь в том и прелесть модульной работы, что если не нравится одно, можно заменить его другим )

былабы вики тыб отписал там как это сделать, а то в контексте нынешней архитектуры это невполне понятно

Quote (ninth)
З.Ы. Кто придумает этой штуке название? ) Рабочее - ProtoMap т.к. изначально это задумывалось как конструктор карт.

panda world, panda editor банально smile
 
ninthДата: Четверг, 22.07.2010, 11:45 | Сообщение # 34
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ок, ладно, убедил ))

Quote (unkier)
panda world, panda editor

Так дело в том, что это не совсем world или editor - теоретически его функциональность будет зависеть от того, какие компоненты будут включены - от тетриса до редактора карт или мморпг )
 
unkierДата: Четверг, 22.07.2010, 12:21 | Сообщение # 35
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
реквестирую пример модуля для этого уберЕдитора.
как создать своё окно/панель с кнопкой. по нажатию кнопки в сцену добавляется какой то заданный мэш. например тупо коробка.
как сделать чтобы этот функционал не зависел от gui. чтобы при смене gui не нада было всё это тупо переписывать под новое gui.
идея с модулями хорошая. тока нада реализацию хорошую. чтобы модули максимально друг от друга не зависели но могли узнать о наличии нужного модуля и пользоваться его функционалом.
 
ninthДата: Четверг, 22.07.2010, 14:09 | Сообщение # 36
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ух, сразу вскачь )) Я же говорю, это пока только наброски )
Насколько придётся переписывать модуль при смене гуя зависит исключительно от того как разработаны эти самые гуи, точнее от того, насколько одинаковый интерфейс для других компонентов они предоставляют - т.е. от разработчика модуля гуя. Сейчас wxframe, который собсно оборачивает окно панды представлен только для примера, пока что он не имеет никаких функций для внешнего воздействия на него и вообще не обязателен для работы как и любой другой компонент. ) Попробуй удалить папку wxframe из папки components и посмотри на результат. А проверка зависимостей компонентов - это следующий этап, который я собираюсь реализовать.

Вообще, всё взаимодействие, как я его представляю, планируется через global_dictionary в который компоненты должны выкидывать ссылки на элементы через которые можно на них воздействовать - своего рода инкапсуляция. В приведённой тобой задаче wxframe должен зарегистрировать в словаре что-то типа global_dictionary["wxframe"]["add_button"] = add_button_function, где add_button_function некоторая функция, принимающая к примеру имя кнопки, расположение и каллбэк, а твой компонент должен к этой записи обратиться.

 
ninthДата: Четверг, 22.07.2010, 14:10 | Сообщение # 37
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Касабельно реквеста - вечером попробую сделать рабочий пример )
 
ninthДата: Пятница, 23.07.2010, 09:47 | Сообщение # 38
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
http://code.google.com/p/panda-protopy/
пример сделал - sampleGUIExt
 
unkierДата: Суббота, 24.07.2010, 18:03 | Сообщение # 39
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
Quote (ninth)
http://code.google.com/p/panda-protopy/
пример сделал - sampleGUIExt

супер. в выхи поковыряю.

Добавлено (24.07.2010, 18:03)
---------------------------------------------
надо бы ветку форума про это дело. а то уже вопросы появляются.
во первых. этот wx frame у меня почему то не пашет. окошко появляется но в нем ничего нет и оно висит.

Code

python main.py   
DirectStart: Starting the game.
Known pipe types:
    glxGraphicsPipe
(all display modules loaded.)
['sample gui extension', 'strategy camera handler', 'base sample', 'sample scene', 'sample wx frame']

DONE: component: Sample wx frame
version: 0.12
author: unnamed

DONE: component: Strategy camera handler
version: 1.0
author: Ninth

DONE: component: Base Sample
version: 1.0
author: unnamed

DONE: component: Sample Scene
version: 1.0
author: unnamed

DONE: component: Sample GUI Extension
version: 1.0
author: unnamed
:prc(warning): Invalid floating-point value for ConfigVariable simple-thread-yield-sleep: 0.001
:prc(warning): Invalid floating-point value for ConfigVariable simple-thread-epoch-timeslice: 0.05
Killed

если его отключить то сцена появляется и всё нормально.

но. вслед за wx frame отключается и Sample GUI Extension. получается он строго зависит именно от этого модуля, хотя в коде никаких зависимостей нет. зависимость по имени модуля не лучший вариант, может делать отдельное поля с перечисленными сервисами которые он предоставляет ?
думаю стоит делать типа как у линуховых пакетов зависимости. 1 пакет может предоставлять несколько "сервисов" и может хотель несколько других. + можно еще сделать версионость. типа нужна поддержка qtgui > 4.6.2.

P.S. у меня убунта и панда 1.7.0

Сообщение отредактировал unkier - Суббота, 24.07.2010, 18:03
 
ninthДата: Суббота, 24.07.2010, 18:18 | Сообщение # 40
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (unkier)
надо бы ветку форума про это дело

Ок, можно в проектах наверно создать.

Quote (unkier)
:prc(warning): Invalid floating-point value for ConfigVariable simple-thread-yield-sleep: 0.001
:prc(warning): Invalid floating-point value for ConfigVariable simple-thread-epoch-timeslice: 0.05

Совсем забыл... есть такое дело в неанглийской убунте (может и ещё где). Я с этим борюсь подкорректировав строку запуска в Geany
export LC_ALL=C && python "%f"

Quote (unkier)
получается он строго зависит именно от этого модуля

Не совсем - можно ставить альтернативные модули http://code.google.com/p/panda-protopy/wiki/requires

Quote (unkier)
думаю стоит делать типа как у линуховых пакетов зависимости

Если честно, я не слишком хорошо знаком с реализацией этого в линуксе, если можешь, поясни как это работает, точнее как определить понятие сервиса для данного конкретного случая и не слишком ли это всё усложнит? Я пытаюсь сделать систему максимально прозрачной и лёгкой для расширения.
 
unkierДата: Суббота, 24.07.2010, 18:59 | Сообщение # 41
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
Quote (ninth)
Не совсем - можно ставить альтернативные модули http://code.google.com/p/panda-protopy/wiki/requires

ну сейчас же я не могу написать свой модуль чтобы он пользовался sampleGUIExt. потому что sampleGUIExt хочет wx frame.

мои идеи как это решить.
по мимо self.requires должно быть self.provides. это то что модуль предоставляемый. дальше wx frame в своих provides должен сказать например "gui_frame". зависимости учитывать по requires и provides. тогда я смогу написать например модуль на qt который тоже будет provides="gui_frame" и sampleGUIExt будет с ним работать.
для этой нашей штуки, сервис - это любой функционал. например кнопка.

щас например

Code

self.global_dictionary["Sample wx frame"]["add_tool_btn"](
                 "Add random smiley",  
                 self.settings["ico_folder"]+"add.png",
                 self.add_smiley)

даёт жесткую привязку к "Sample wx frame" и от модульности нету толка.

Code

export LC_ALL=C && python "%f"

помогло. спасибо. интересно чей это косяк. наверно wx. пандовские примеры пашут нормально.
 
ninthДата: Суббота, 24.07.2010, 19:46 | Сообщение # 42
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ок, понял, попробую сделать.

Quote (unkier)
помогло. спасибо. интересно чей это косяк. наверно wx. пандовские примеры пашут нормально.

Х.з. wx сам по себе тоже вроде нормально работал, а косяк этот ещё по какому-то поводу на оффоруме всплывал.
 
ninthДата: Воскресенье, 25.07.2010, 15:05 | Сообщение # 43
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Создал отдельную тему http://panda3d.org.ru/forum/6-108-1
 
BVOGДата: Вторник, 14.09.2010, 17:24 | Сообщение # 44
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
класс...

Skype: thebvog
 
serg-kkzДата: Воскресенье, 26.06.2011, 21:02 | Сообщение # 45
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Да... первым делом к данному движку для его продвижения надо разработать инструментарий. Шоб какой ни буть, но, наш русский. А у активных участников была цель, так же можно пробовать участвовать сообществу в конкурсах по созданию игр тем самым светить имя движка, хоть не первым местом но... заявлять имя Panda 3d.

ООП  -  

Сообщение отредактировал serg-kkz - Воскресенье, 26.06.2011, 21:10
 
Форум Panda3D - по русски » Общий форум » Флудильня » Сообщество
Поиск: