Utiliser le décalage (offset) sur un LiveWallpaper AndEngine

Pour utiliser l’offset sur un LiveWallpaper, vous devez d’abord redéfinir la méthode onOffsetsChanged de BaseLiveWallpaperService. Le nombre d’arguments vous fait peur, n’ayez crainte seul pXOffset est intéressant.

Voici le code :

@Override
public void onOffsetsChanged(final float pXOffset, final float pYOffset, final float pXOffsetStep, final float pYOffsetStep, final int pXPixelOffset, final int pYPixelOffset) {
	//Si vous voulez allez dans le sens inverse
	//xOffset = -1.0f * xOffset + 1.0f;
	//Modifier la position de votre Sprite
	Display display = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
	mSprite.setPosition(((display.getWidth() - mSprite.getWidth()) * xOffset), mSprite.getY());
}

Je récupère la largeur de l’écran pour que votre sprite prenne bien toute les frames et pour éviter d’avoir une bordure noir sur votre dernière frame.

Si vous déplacez toute la scène, je vous conseille de déplacer la caméra plutôt que tout les éléments

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *