Разработка игр, странный эффект изображения при перемещении камеры
Я разрабатываю 2D-игру Side Scroll, используя AndEngine
![Game image]()
Я использую их расширение SVG (я использую векторную графику)
Но я обнаружил странный и уродливый эффект, перемещая мой плеер (в то время как камера точно преследует игрока, означает, что камера меняет свое положение)
Изображения моих спрайтов выглядят просто по-разному, они похожи на размытые или есть эффект, подобный тем, что изображения будут перемещаться (не изменяя их свойства, просто дрожащий эффект, очень трудно объяснить и называть этот эффект должным образом) Надеюсь, этот образ может объяснить это немного:
![Game image 2]()
Его более или менее, как он выглядит в игре, где:
a) Изображение "FIRST" показывает квадрат, в то время как игрок движется (изображение CAMERA нет) выглядит так, как должно быть
b) "ВТОРОЕ" одно и то же изображение, но с этим странным эффектом ", который выглядит как перемещение/размытие изображения во время движения камеры [преследование игрока])
Мой друг сказал мне, что это может быть проблема с аппаратным обеспечением:
"размытие, которое вы заметили, на самом деле является проблемой аппаратного обеспечения. Некоторые телефоны" сглаживают "содержимое на экране, чтобы лучше прикоснуться к приложениям. Я не знаю, есть ли это экран или графический процессор, но он не работает" Я встречаюсь с моей женой Samsung Captivate, но это происходит на моей Atrix и Xoom, но это действительно примечательно в Xoom из-за большого размера экрана".
Но похоже, что есть способ предотвратить это, так как я тестировал много подобных игр, где камера преследует игрока, и я не заметил такого эффекта.
Есть ли способ отключить это в коде?
Я благодарен за предыдущие ответы, к сожалению, проблема все еще существует.
До сих пор я пробовал:
- casting (int) для метода setCenter, который выполняется в updateChaseEntity
- тестирование игры с использованием PNG-изображений вместо SVG-расширения и векторной графики
- различные объекты TextureOptions
- hardwareAcceleration
Если у кого-то другая идея, что может вызвать этот странный эффект, я буду очень благодарен за помощь - спасибо.
Ответы
Ответ 1
Некоторые устройства (Xperia Play) сбрасываются повсюду, пытаясь нарисовать вещи, которые быстро движутся. Например, красный значок в списке приложений оставляет размытие позади него. Вы можете попробовать hardwareAcceleration в манифесте (вкл. И выкл.), Чтобы узнать, не имеет значения.
Вероятно, вы получите тот же эффект, если не используете svg
Ответ 2
Когда ваш игрок просто идет вправо и камера начинает преследовать его, все остальные спрайты, кроме игрока, перемещаются влево. Попробуйте напечатать абсолютные координаты вашего "размытия" спрайта (или некоторых его опорных точек) в журнале. X-координата спрайта должна линейно уменьшаться. Если вы заметили, что это увеличилось несколько раз, это может быть причиной размытия.
Надеюсь, это поможет.
Ответ 3
Похоже, это связано с тем, что камера движется с реальными приращениями, заставляя компоненты SVG опираться на нецелые границы, и визуализатор SVG, создающий сглаживание, вступает в силу, чтобы продемонстрировать это. Попробуйте перемещать камеру с целыми приращениями, отбрасывая значения камеры в int.
Ответ 4
Я не знаком с этим движком, но мне интересно, почему вы используете векторную графику для пиксельного стиля. Я буду удивлен, если ваш персонаж на скриншоте - это векторное искусство... может быть, текстура импортирована в SVG? Я попытался вернуться в день, чтобы использовать вспышку несколько раз, и я делал ту же ошибку... Я не говорю, что это невозможно, но не предназначено для создания пиксельного искусства со вспышкой или любым другим векторным программным обеспечением. Существует причина, по которой большинство флеш-игр имеют похожий вид.
Ответ 5
Лучший способ его отладки - попробовать другой взгляд спрайта.
Возможно, это просто медленное время отклика вашего устройства.
Я также разработчик Andengine и никогда не видел такого поведения.
Иногда вы исправляете дрожание с помощью FixedStepEngine, это может помочь.
Если вы можете опубликовать свой код, возможно, мы сможем вам помочь.