Я хочу переместить некоторые спрайты слева направо с постоянной медленной скоростью. Я сначала попробовал RatioResolutionPolicy
, но видел, что спрайты мерцали много. Затем я изменил resolutionpolicy на FixedResolutionPolicy
, определил текстуры спрайтов как растровые изображения, масштабировал их и делал спрайты этими текстурами (более подробно: click here). Это лучше, чем первый метод, но не совсем хорошо. Я использую setx()
для перемещения спрайтов. Когда я изменяю x
positon, например, на 2 pixels
для каждого кадра нет проблем. Но для разных устройств, которые имеют разные разрешения, я должен умножить 2
на коэффициент. В этом случае спрайты снова мерцают, не так много, но это раздражает меня.Справки мерцают в Andengine
ответ
Я заметил, что речь шла не об Andengine, а о opengl. Решение этой проблемы - это замечательный инструмент: https://github.com/gemserk/imageprocessing
код для камеры ниже
@Override
public EngineOptions onCreateEngineOptions() {
WindowManager w = getWindowManager();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
Point size = new Point();
w.getDefaultDisplay().getSize(size);
V.CAMERA_WIDTH = size.x;
V.CAMERA_HEIGHT = size.y;
} else {
Display d = w.getDefaultDisplay();
V.CAMERA_WIDTH = d.getWidth();
V.CAMERA_HEIGHT = d.getHeight();
}
if (V.CAMERA_HEIGHT/V.CAMERA_WIDTH>480f/860f){
V.CAMERA_HEIGHT=V.CAMERA_WIDTH*480f/860f;
}
else {
V.CAMERA_WIDTH=V.CAMERA_HEIGHT*860f/480f;
}
V.ratio=V.CAMERA_HEIGHT/480f;
this.mCamera = new Camera(0, 0, V.CAMERA_WIDTH, V.CAMERA_HEIGHT);
final EngineOptions engineOptions = new EngineOptions(true,
ScreenOrientation.LANDSCAPE_FIXED, new FixedResolutionPolicy((int)V.CAMERA_WIDTH, (int)V.CAMERA_HEIGHT),
this.mCamera);
return engineOptions;
}
для движущихся спрайтов:
this.wallPosX -= this.speed;
this.setX(Math.round(this.wallPosX));
скорость точки varibale плавающей и он получает 4,4651165 для разрешения экрана 1280x720. Если я задаю его как целое число, чем нет мерцания, но на этот раз скорость спрайта отличается от устройства к устройству.
Ну, почему бы вам просто не установить одно разрешение для всех устройств, как предполагается, в andEngine? Установите его как 800x480 –
Я думаю, вы говорите, что хотите выбрать RatioResolutionPolicy. Но, как я уже говорил, спрайты с медленной скоростью мерцают на этом. –
да, но попробуйте разные разрешения, такие как 800x480, а не 860x480. Возможно, проблема с плохим разрешением –
Слишком много размеров экрана и соотношение сторон экрана для телефонов Android.
Используйте политику разрешенных разрешений, созданную jgibbs. Следуйте инструкциям Мартина Варги, чтобы получить представление о том, как это работает и как его реализовать. Он творит чудеса.
Я рекомендую Martin's Tutorial
Вы не должны быть обеспокоены микро хозяйствующих субъектов позиционные координаты, чтобы удовлетворить каждый и любой возможный размер экрана. Я не уверен, что это исправит мерцание, хотя это может быть и другая проблема, не связанная с вашей камерой.
Спасибо за ваш интерес. Я решил эту проблему с помощью этого инструмента: https://github.com/gemserk/imageprocessing –
Спасибо, это может решить некоторые проблемы в будущем для меня. Вы должны отправить ответ и пометить его как правильный ответ. Это может помочь большему количеству людей и дать вам больше очков при переполнении стека. –
- 1. Изображения мерцают в IE
- 2. Изображения мерцают в андроиде
- 3. DataGridViewImageColumn, изображения мерцают
- 4. Анимации JavaFX мерцают
- 5. AngularJS - DOM-Elements мерцают
- 6. Элементы AngularJs мерцают
- 7. Почему часы мерцают?
- 8. Mouseenter и mouseleave мерцают
- 9. jQuery раздвижные div мерцают
- 10. AndEngine Что делает функция setOffsetCenter() в AndEngine
- 11. AndEngine GLES против AndEngine GLES2
- 12. Все страницы веб-сайта мерцают
- 13. Изображения мерцают при публикации вопроса
- 14. Заголовки ListView мерцают при прокрутке
- 15. Пользовательские границы полей combobox мерцают
- 16. Специфические объекты мерцают при перекраске
- 17. Отключить onscreenControl в AndEngine
- 18. Отображение объявления в AndEngine
- 19. Картина в AndEngine Android
- 20. Установка AndEngine в Eclipse
- 21. Анимированный фон в Andengine
- 22. AnalogOnScreenControl прослушиватель в andengine
- 23. Качаем спрайт в Andengine
- 24. AndEngine. DetachChild в BaseLiveWallpaperService
- 25. Прокрутка childscene в AndEngine
- 26. Использование пути в Andengine
- 27. Загрузка SVG в AndEngine
- 28. Перемещение спрайта в Andengine
- 29. Фон растягивается в AndEngine
- 30. Начало работы в AndEngine
Опубликовать код. Как вы создаете экземпляр своей камеры? Как именно вы перемещаете свои спрайты? –