Проблема с курсором
|
|
Phenom | Дата: Вторник, 04 Декабря 2012, 00:03 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| У меня такой вопрос по Construct Classic. Если создать спрайт и привязать его к курсору то при перемещении мыши заметно небольшое отставание этого спрайта от курсора. Вроде бы ерунда но создается ощущение нехватки фпс. Возможно ли как то исправить это, чтобы спрайт не отставал, или придется с этим мириться?
|
|
| |
dilovar50 | Дата: Вторник, 04 Декабря 2012, 00:28 | Сообщение # 2 |
Construct Classic User
Сейчас нет на сайте
| а ты сделай сам курсор невидимым, тогда будет не заметно что он отстаёт. Да и как ты привязал спрайт к мыши? Если дал спрайту поведение Mouse, то попробуй по другому, например установить позицию по иксу MouseX и по игрику MouseY
Платформер-экшен в Scirra Construct для начинающих , статья состоит из 9 частей. PDF версия статьи(6 частей).
Сообщение отредактировал dilovar50 - Вторник, 04 Декабря 2012, 00:32 |
|
| |
Phenom | Дата: Вторник, 04 Декабря 2012, 00:46 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| Разумеется курсор невидимый, но отставание всеравно заметно. Пробовал оба варианта, даже плагин какой то установил (что то там связанное с мышью), результат один и тот же.
|
|
| |
Clowd | Дата: Суббота, 08 Декабря 2012, 15:37 | Сообщение # 4 |
ONG studio
Сейчас нет на сайте
| сделай always , нажми нью экшен ,выбири тот объект который ты хочешь прикрепить,потом зайди во вкладку angle,выбери там set angle towards position в координатах X - введи Mousex, в координатах Y - введи Mousey,и теперь твой объект прикреплен к курсору.
p.s если помог ставь плюс)))
|
|
| |
Phenom | Дата: Суббота, 08 Декабря 2012, 15:53 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Quote (Clowd) сделай always , нажми нью экшен ,выбири тот объект который ты хочешь прикрепить,потом зайди во вкладку angle,выбери там set angle towards position в координатах X - введи Mousex, в координатах Y - введи Mousey,и теперь твой объект прикреплен к курсору. Нет, совсем не то.
|
|
| |
Clowd | Дата: Суббота, 08 Декабря 2012, 15:54 | Сообщение # 6 |
ONG studio
Сейчас нет на сайте
| тогда подробнее.
|
|
| |
Phenom | Дата: Суббота, 08 Декабря 2012, 16:01 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| Clowd, в твоём варианте объект изменяет свой угол в зависимости от положения курсора но остается на месте. Мне нужно привязать позицию объекта к позиции курсора чтобы не было отставания объекта при перемещении курсора.
|
|
| |
Virtualcreature | Дата: Суббота, 08 Декабря 2012, 16:34 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Always> > Sprite > >Set X [ MouseX ] > Sprite > >Set Y [ MouseY ]
Вот Пример:
Если в таком состоянии она подлагивает и отстает - запусти дебаг и посмотри FPS. Проверь свойства Слоя, на котором находится курсор - (ScrollX,Y=0 все что ниже - 100, вплоть до маски)
Сообщение отредактировал Virtualcreature - Суббота, 08 Декабря 2012, 16:46 |
|
| |
Phenom | Дата: Суббота, 08 Декабря 2012, 17:23 | Сообщение # 9 |
почетный гость
Сейчас нет на сайте
| Virtualcreature, этот вариант я тоже пробовал. Отставание все равно есть. ФПС тут не при чем. Похоже это особенность Констракта с которой ничего не поделать.
|
|
| |
Clowd | Дата: Суббота, 08 Декабря 2012, 17:43 | Сообщение # 10 |
ONG studio
Сейчас нет на сайте
| как так, объект к курсору привязывается!!!! Он не может отставать!!
|
|
| |
DimOk | Дата: Суббота, 08 Декабря 2012, 18:01 | Сообщение # 11 |
ONG studio
Сейчас нет на сайте
| Quote (Phenom) Похоже это особенность Констракта с которой ничего не поделать. это есть - правда Добавлено (08.12.2012, 18:01) ---------------------------------------------
Quote (Clowd) Он не может отставать!! вот это не есть - правда. проверь, на констракте курсор в любом случае немного отстаёт
Активно пользуюсь Godot Engine
|
|
| |
Virtualcreature | Дата: Суббота, 08 Декабря 2012, 18:20 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| ?! Он в принципе не может отставать более чем на один фрейм. И менее чем на один фрейм. Мышь отправляет перемещения в систему а система сначала передает это перемещение курсору Windows и он рендерится, в это же время рендерится фрейм твоей игры. Когда он готов - игра готова принять новое положение курсора. отставание на один фрейм есть в каждой программе, использующей координаты курсора windows. Я даже не могу представить через какие функции нужно прогонять кординаты, чтобы они поступали сначала в программу а потом в ОС.
|
|
| |
Phenom | Дата: Суббота, 08 Декабря 2012, 18:35 | Сообщение # 13 |
почетный гость
Сейчас нет на сайте
| Virtualcreature, я не знаю на сколько фреймов он отстает, но это отставание можно без труда заметить если самому попробовать. Кстати то же самое можно наблюдать в некоторых компьютерных играх (в меню) при том что ФПС улетает далеко за 60. Это может говорить о прямоте рук людей портирующих игру с приставок или о программном ограничении как например в Констракте.
|
|
| |
Clowd | Дата: Суббота, 08 Декабря 2012, 18:46 | Сообщение # 14 |
ONG studio
Сейчас нет на сайте
| эти люди наверно вручную пишут игры,а не на скире.
|
|
| |
Phenom | Дата: Суббота, 08 Декабря 2012, 18:49 | Сообщение # 15 |
почетный гость
Сейчас нет на сайте
| В ручную наверно писали 20 лет назад
|
|
| |
Clowd | Дата: Суббота, 08 Декабря 2012, 19:29 | Сообщение # 16 |
ONG studio
Сейчас нет на сайте
| Нормальную игру пишут не на таких движках,а там где почти 50% надо руками писать коды.
|
|
| |
DimOk | Дата: Суббота, 08 Декабря 2012, 20:27 | Сообщение # 17 |
ONG studio
Сейчас нет на сайте
| Quote (Phenom) Это может говорить о прямоте рук людей портирующих игру с приставок тебе же объяснили, что это зависит не от прямоты рук, а от самой системы виндовс
Активно пользуюсь Godot Engine
|
|
| |
Phenom | Дата: Суббота, 08 Декабря 2012, 20:37 | Сообщение # 18 |
почетный гость
Сейчас нет на сайте
| DimOk, однако в других играх курсор ведет себя вполне нормально. Хотя Виндовс тот же самый.
|
|
| |
OlegDSX | Дата: Суббота, 08 Декабря 2012, 21:04 | Сообщение # 19 |
участник
Сейчас нет на сайте
| Полазил я в настройках и нашел причину: Нужно в настройках проекта отключать v-sync. Либо фиксировать фпс не ниже 75, либо ставить без ограничений. Я пробовал ставить без ограничений, теоретически все должно было быть очень быстро(хотя нет, просто 6к раз в секунду происходит рендер), счетчик показывает 6000 кадров в секунду, но все играется нормально, и анимация нормально проигрывается.
И самое важное спрайт жёстко привязан к курсору.
Сообщение отредактировал OlegDSX - Суббота, 08 Декабря 2012, 21:22 |
|
| |
Phenom | Дата: Суббота, 08 Декабря 2012, 21:26 | Сообщение # 20 |
почетный гость
Сейчас нет на сайте
| OlegDSX, действительно отставание стало почти незаметным. Но некоторые поведения начинают некорректно себя вести (объект с поведением rotate вращается то ли с рывками то ли с дикой скоростью). Да и сама программа при включении безлимитных ФПС говорит что так делать не рекомендуется и действуете вы на свой страх и риск. Похоже все таки на 100% проблема не решена.
|
|
| |