Вопросы по программированию в Python

Board index Геймдев в Blender Игровой движок Blender

Description: Все вопросы и обсуждения, касающиеся BGE
Moderators: exooman, denis8424

  • 1

Post #221by СамСуCам » 17.03.2016, 09:55

Mihanik, не костыльных способов не знаю. Андрей может знает, он mouselook писал.
В любой непонятной ситуации спи, кушай и улыбайся. SATtva
Моя галерея Ежедневный конкурс моделирования в Blender
СамСуCам M
то добрый, то злой админ
Avatar
Location: Русь, Китеж
Posts: 3449



Post #222by Mihanik » 17.03.2016, 10:50

В том то и дело mouselook использует logic.mouse.position. И это почему то не всегда корректно работает. В нагруженных сценах с проседанием FPS, скорость поворота внезапно меняется, и никто пока мне не объяснил почему.
Наверняка в питоне есть возможность достучаться непосредственно до датчика мыши, этож не просто язык для бге.
Mihanik M
Avatar
Posts: 1571

  • 1

Post #223by andreymal » 17.03.2016, 11:31

Как тру-линуксоид я бы читал какой-нибудь /dev/input/mice (ЧСХ, именно это и предлагает первая ссылка в гугле), но вот как дела с виндой, не знаю (хотя тот же гугл предлагает какой-то pymultimouse)
Читая эту подпись, вы впустую потратили 5 секунд своей жизни.
andreymal M
Avatar
Posts: 1195

  • 1

Post #224by Bibo » 17.03.2016, 13:47

Mihanik wrote:Наверняка в питоне есть возможность достучаться непосредственно до датчика мыши, этож не просто язык для бге.
Уже спрашивал. Но если нужно, то можно получить экранные координаты курсора без функций игрового движка, а через ОС, посредством базового пакета ctypes. Вот пример, смотреть в консоль (только для Windows):

Added after 52 minutes 26 seconds:
Должен заметить, этот метод работает куда лучше своего сенсорного аналога в полноэкранном режиме. Если пытаться считать положение курсора исходя из показателя движка, то в случае выхода курсора к краю экрана, существует погрешность в координатах курсора, так как, видимо, приложение считает что курсор вышел за пределы окна.
Как пример, плавное и медленное движение курсора к краю:
Image
Сверху предложенный скрипт, снизу сенсор. Курсор достиг края экрана, однако сенсор прекращает свою работу немного раньше.
Теперь резкое движение:
Image
Ситуация та же, но погрешность уже значительная, недопустимая в играх с сильной привязкой к курсору (стратегии/рпг).
Attachments
ctypes.7z
(52.74 KiB) Downloaded 61 times
Bibo
Avatar
Posts: 605

Post #225by Mihanik » 17.03.2016, 16:12

andreymal, не мне не по зубам с этим разобраться самостоятельно.
Bibo, опять же, это положение курсора, а не показание датчика мыши. Видимо от сюда и эти погрешности, кстати крайне не желательные. То есть я вижу, что курсор упёрся в край экрана, а консоль мне говорит , что до края ещё 162 пикселя, это не приемлемо.
По этому у меня собственно и возник бзик, докапаться до датчика мыши. Мне кажется его показания первичны, а уж система интерпретирует их в положение курсора.
Mihanik M
Avatar
Posts: 1571

Post #226by andreymal » 17.03.2016, 17:42

Вообще, имхо, стоит сперва подебажить-таки положение курсора и полностью вникнуть в механику проблемы (и у меня подозрение, что это норма и датчик мыши тут не поможет). Я правильно понимаю, что мне надо лишь понизить фпс, и я пойму, что не так?
Читая эту подпись, вы впустую потратили 5 секунд своей жизни.
andreymal M
Avatar
Posts: 1195

Post #227by Mihanik » 17.03.2016, 18:48

andreymal, Вот начиная с последнего комента на странице
/viewtopic.php?f=30&t=866&start=100
Добавлю ещё, что хоть настройка там предложенная помогла, проблема периодически вылезала, например когда я пытался записать видео и захватчик просаживал FPS. Так же и в других проектах наблюдал похожее явление. Кроме того, двумя коментами выше Bibo, обозначил проблему, может и не связанную с этим, но тоже весьма не приятную.
Mihanik M
Avatar
Posts: 1571

Post #228by void » 17.03.2016, 21:41

Mihanik wrote:В том то и дело mouselook использует logic.mouse.position. И это почему то не всегда корректно работает. В нагруженных сценах с проседанием FPS, скорость поворота внезапно меняется, и никто пока мне не объяснил почему.
В других движках, чтобы "отвязать" скорость перемещения игровых объектов от частоты кадров в секунду любое входное значение умножают на dt (delta time - время рендеринга кадра.) Поэтому движение получается инвариантно к проседанию FPS. Может проблема у вас в этом?
void M
Avatar
Posts: 162

Post #229by Mihanik » 17.03.2016, 22:48

void, Не там какая то другая фигня, при одном и том же FPS разная скорость вращения получается (в разы). в бге тож аналог delta time есть.
Mihanik M
Avatar
Posts: 1571

Post #230by andreymal » 18.03.2016, 00:08

void wrote:Может проблема у вас в этом?
Не, чем дольше кадр обрабатывается, тем дальше юзер успеет продвинуть мышку и тем больше пикселей пройдёт курсор — dt уже встроен в руку юзера :)
Читая эту подпись, вы впустую потратили 5 секунд своей жизни.
andreymal M
Avatar
Posts: 1195

Post #231by -._Salesao_.- » 14.04.2016, 03:09

Помогите со скриптом нужно чтобы объект Mover приближаясь к какому нибудь объекту со свойством срабатывал также как по нажатию клавиши 4 а после повторного нажатия клавиши переходил в состояние покоя Бленд
-._Salesao_.- M
Avatar
Posts: 26

Умеете же вы внятно задачу описать

Post #232by denis8424 » 14.04.2016, 21:25

у меня так скоро третий глаз откроется...]:-> -._Salesao_.-,
Attachments
forSalesao.blend.7z
(98.86 KiB) Downloaded 50 times
denis8424
Avatar
Posts: 724

Post #233by -._Salesao_.- » 15.04.2016, 01:34

Пускай открывается Image может от него какая то доп польза появится :-D
В принципе у вас получилось всё так как я и желал, но не сохранилось полное выполнение всех действий (у куба пропала чёткая позиция он как будто плавает по случайным координатам, нету чёткой временной задержки пропала сама плавность перехода в точку позиции ) плавность есть но не стабильная. Если не сложно можете доработать до совершенства. Я в принципе понимаю что в скриптах написано и как оно работает но блин ни как не могу запомнить правила их написания, а тем более толково объяснить машине что нужно выполнить. Спасибо за коментарии кстати в скрипте может с ними у меня будет больше толку в изучении pythona :( ?:-| @-(
-._Salesao_.- M
Avatar
Posts: 26

Post #234by -._Salesao_.- » 18.04.2016, 03:07

denis8424 Я ошибся всё работает замечательно! С толку меня сбило перемещение куба, Я подумал это глюк такой, поискав на вкладке активных данных объекта или случайно наткнувшись, я заметил опцию медленного родителя :-D Видимо я не весь блендер знаю за что и извиняюсь за свою невнимательность :suicid: Спасибо что помогли мне.
-._Salesao_.- M
Avatar
Posts: 26

Post #235by denis8424 » 18.04.2016, 18:54

-._Salesao_.-, там еще надо дописать изменения параметра offset у slow parent. так что бы когда объект приближаелся к цели, то связь parent становилась более жесткой. думаю, что надо бы сделать зависимость от расстояния до родителя, да времени нет.
denis8424
Avatar
Posts: 724

Post #236by Kipren » 20.04.2016, 17:17

Разъяните, плиз, одну вещь.

Есть некий список s = [1, 2, 3, 3, 2, 1]
если мы запускаем
Code: Select all
print(i for i in s)
то на выходе <generator object <genexpr> at 0x7ff4af701370>
а если
Code: Select all
for i in s: print(i, end=" ")
, то получаем как раз элементы списка.

ЗЫ. Я в курсе join, просто мне непонятно что конкретно происходит, в чем разница этих конструкций.
Kipren M
Avatar
Location: Берлин
Posts: 196

  • 1

Post #237by Bibo » 20.04.2016, 19:10

Code: Select all
(i for i in s)
Данная конструкция создает объект-генератор (круглые скобки обязательны). Этот объект можно поместить в переменную и генерировать каждое следующее значение вызывая функцию next
Code: Select all
s = [1, 2, 3, 3, 2, 1]
my_generator = (i for i in s)
next(my_generator)  # генерирует значение 1
next(my_generator)  # генерирует значение 2
next(my_generator)  # генерирует значение 3
next(my_generator)  # генерирует значение 3
next(my_generator)  # генерирует значение 2
next(my_generator)  # генерирует значение 1
next(my_generator)  # возбудит исключение StopIteration, так как были сгенерированы все возможные значения. Генератор свое отработал.
Code: Select all
for i in s: print(i, end=" ")
Это просто цикл, который проходит по последовательности в переменной s, присваивая каждое следующее значение переменной i и выполняет соответствующие действия.
Bibo
Avatar
Posts: 605

Добрый совет с чего начать

Post #238by Николас » 09.09.2016, 13:53

Здравствуйте.
Сам не программист, но есть желание немного подучить Python - по надобности.
Хочу написать свое меню приложений для Линукс (Ubuntu), что бы было приблизительно вот так:

Image
- оно должно быть по центру экрана и без прозрачности.

Еще хотелось бы, что бы такое меню максимум было автономное и работало на всех машинах где есть Линукс. И если возможно, что бы сам интерпретатор был в самой папке с программой. Что бы просто скачать папку и через desktop файл запустить программу - без установок Пайтона, или иных библиотек... Если получится, я в эту папку буду скидывать другие программы и делать к ним desktop файл, привязывая к Пайтону внутри директории - что бы не привязываться к разным дистрибутивам. Как бы понимаете - скомпилировал ядро Линукс, скопировал папку с Рабочим столом, файл браузером, панелью, меню... и вот вам своя ОСь. Вот только я решил идти в обратку - меню>панель>файл браузер>рабочий стол... То есть, ОСь по максимуму на Пайтоне кроме самого ядра, и по ресурсам 100 мб оперативки в режиме простоя - как в Slitaz 5

Image

Так вот, пожалуйста посоветуйте с чего начать - перечитывать тонны литературы просто нет времени, да и не осилю я так много. Нужен более оптимальный, кратчайший путь в изучении Пайтона. Ну а если кто то поможет на первых порах - буду весьма благодарен такому человеку, при хорошем раскладе он будет упомянут в самих программах как некий "гуру".
Николас M
Avatar
Location: Черновцы +
Posts: 219

Post #239by ukho2008 » 09.09.2016, 17:39

БолгенОС...
"Век живи - век учись!" - подумал Ржевский, и на всякий случай переложил серебряный портсигар из кармана штанов в карман пиджака.
ukho2008 M
Avatar
Location: г. Харьков, Украина
Posts: 517


Post #240by grayich » 09.09.2016, 17:56

Николас, стоит поискать проекты похожие и посмотреть как там реализовано то или иное, на гитхабе к примеру должно быть много всяких панелек, менюшек..
Linux
grayich M
Avatar
Location: Харьков
Posts: 5821

PreviousNext

Return to Игровой движок Blender

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest

cron