/* Create the face and add it to the scene. */ final Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion) { @Override protected void applyRotation(final GL10 pGL) { /* Disable culling so we can see the backside of this sprite. */ GLHelper.disableCulling(pGL); final float rotation = this.mRotation; if(rotation != 0) { final float rotationCenterX = this.mRotationCenterX; final float rotationCenterY = this.mRotationCenterY; pGL.glTranslatef(rotationCenterX, rotationCenterY, 0); /* Note we are applying rotation around the y-axis and not the z-axis anymore! */ pGL.glRotatef(rotation, 0, 1, 0); pGL.glTranslatef(-rotationCenterX, -rotationCenterY, 0); } } @Override protected void drawVertices(final GL10 pGL, final Camera pCamera) { super.drawVertices(pGL, pCamera); /* Enable culling as 'normal' entities profit from culling. */ GLHelper.enableCulling(pGL); } }; face.addShapeModifier(new LoopShapeModifier(new RotationModifier(6, 0, 360))); scene.getTopLayer().addEntity(face);