Подтвердить что ты не робот

Разработка игр, странный эффект изображения при перемещении камеры

Я разрабатываю 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

Если у кого-то другая идея, что может вызвать этот странный эффект, я буду очень благодарен за помощь - спасибо.

4b9b3361

Ответ 1

Некоторые устройства (Xperia Play) сбрасываются повсюду, пытаясь нарисовать вещи, которые быстро движутся. Например, красный значок в списке приложений оставляет размытие позади него. Вы можете попробовать hardwareAcceleration в манифесте (вкл. И выкл.), Чтобы узнать, не имеет значения.

Вероятно, вы получите тот же эффект, если не используете svg

Ответ 2

Когда ваш игрок просто идет вправо и камера начинает преследовать его, все остальные спрайты, кроме игрока, перемещаются влево. Попробуйте напечатать абсолютные координаты вашего "размытия" спрайта (или некоторых его опорных точек) в журнале. X-координата спрайта должна линейно уменьшаться. Если вы заметили, что это увеличилось несколько раз, это может быть причиной размытия.

Надеюсь, это поможет.

Ответ 3

Похоже, это связано с тем, что камера движется с реальными приращениями, заставляя компоненты SVG опираться на нецелые границы, и визуализатор SVG, создающий сглаживание, вступает в силу, чтобы продемонстрировать это. Попробуйте перемещать камеру с целыми приращениями, отбрасывая значения камеры в int.

Ответ 4

Я не знаком с этим движком, но мне интересно, почему вы используете векторную графику для пиксельного стиля. Я буду удивлен, если ваш персонаж на скриншоте - это векторное искусство... может быть, текстура импортирована в SVG? Я попытался вернуться в день, чтобы использовать вспышку несколько раз, и я делал ту же ошибку... Я не говорю, что это невозможно, но не предназначено для создания пиксельного искусства со вспышкой или любым другим векторным программным обеспечением. Существует причина, по которой большинство флеш-игр имеют похожий вид.

Ответ 5

Лучший способ его отладки - попробовать другой взгляд спрайта. Возможно, это просто медленное время отклика вашего устройства. Я также разработчик Andengine и никогда не видел такого поведения.

Иногда вы исправляете дрожание с помощью FixedStepEngine, это может помочь.

Если вы можете опубликовать свой код, возможно, мы сможем вам помочь.