示例#1
0
    public virtual void RenderUpdate(SpriteLeaser spriteLeaser, WorldCamera camera)
    {
        if (world != null)
        {
            FSprite sprite = spriteLeaser.sprites[0];

            if (element != null)
            {
                sprite.isVisible = true;
                sprite.element   = element;
            }
            else
            {
                sprite.isVisible = false;
            }
            sprite.SetPosition(camera.GetScreenPosition(worldPosition) + _positionOffset);
            sprite.rotation = _rotation;
            sprite.scaleX   = scale.x;
            sprite.scaleY   = scale.y;
            if (doesFlip)
            {
                sprite.scaleX *= (camera.GetFlipXByViewAngle(viewAngle) ? -1f : 1f);
            }
            sprite.sortZ = camera.GetSortZ(worldPosition) + sortZOffset;
            sprite.color = color; // new Color(worldPosition.x, worldPosition.y, worldPosition.z);
        }
        else
        {
            spriteLeaser.Erase();
        }
    }