Exemple #1
0
    protected override void Awake()
    {
        _sr             = GetComponent <SpriteRenderer>();
        _text           = GetComponent <TextRenderer>();
        _au             = GetComponent <AudioSource>();
        _animator       = GetComponent <Animator>();
        _queuedToLaunch = new List <Planet>();
        _upgradeMenu    = GetComponent <UpgradeMenu>();

        // Add outline visual elements
        _planetOutline        = Instantiate <SpriteRenderer>("HoverOutline", Transform.Position);
        _planetOutline.Sprite = GameController.OutlineSprite;
        _planetOutline.Layer  = 0.6f;
        _planetOutline.GameObject.SetActive(false);

        _rangeOutline        = Instantiate <SpriteRenderer>("RangeOutline", Transform.Position);
        _rangeOutline.Sprite = GameController.RangeSprite;
        _rangeOutline.Color  = new Color(38, 38, 38, 25);
        _rangeOutline.Layer  = 0.61f;

        UpdateAppearance();

        OnPopulationChange += UpdatePopulationText;
        OnPopulationChange();
    }
Exemple #2
0
        protected override void Awake()
        {
            _sr = GetComponent <ISpriteRenderer>();

            foreach (var animationClip in _animationClips.Values)
            {
                (animationClip as IAnimationClipInternal)?.CreateSpritesheet();
            }
        }
 public PacManGame(
     IEventSink eventSink,
     IMapLoader <ITilemap> mapLoader,
     ICollisionDetection collisionDetection,
     ISpriteRenderer renderer)
 {
     _eventSink          = eventSink;
     _mapLoader          = mapLoader;
     _gameState          = new GameState(3);
     _collisionDetection = collisionDetection;
     _renderer           = renderer;
 }
Exemple #4
0
        void DrawSprite(ISpriteRenderer sr)
        {
            // Parameters of draw call
            Texture2D texture              = sr.Sprite?.Texture.ToMonoTexture2D() ?? _dummyTexture; // If no texture exists, use dummy texture
            Rectangle sourceRectangle      = sr.Sprite?.SourceRect.ToMonoRectangle() ?? Rectangle.Empty;
            Rectangle destinationRectangle = new Rectangle((int)sr.Transform.Position.X, (int)sr.Transform.Position.Y,
                                                           (int)(sourceRectangle.Width * sr.Transform.Scale.X),
                                                           (int)(sourceRectangle.Height * sr.Transform.Scale.Y));
            Color   color      = sr.Color.ToMonoColor();
            float   rotation   = sr.Transform.Rotation;
            Vector2 origin     = new Vector2(sourceRectangle.Width / 2f, sourceRectangle.Height / 2f);
            float   layerDepth = sr.Layer;

            // Draw call
            _spriteBatch.Draw(texture, destinationRectangle, sourceRectangle, color, rotation, origin, SpriteEffects.None, layerDepth);
        }
Exemple #5
0
        /// <summary>
        /// Initializes a new instance of the Sprite class.
        /// </summary>
        /// <param name="spriteRenderer">The owning <see cref="ISpriteRenderer"/>.</param>
        /// <param name="primitives">The primitives.</param>
        public Sprite(ISpriteRenderer spriteRenderer, params Primitive[] primitives)
        {
            if (primitives == null || primitives.Length == 0)
            {
                throw new ArgumentNullException("primitives");
            }

            this.SpriteRenderer = spriteRenderer;
            this.ViewportSize   = spriteRenderer.Viewport.Size;
            this.backend        = spriteRenderer.RenderManager.MiyagiSystem.Backend;
            this.primitives     = primitives;

            foreach (var pri in primitives)
            {
                this.TriangleCount += pri.TriangleCount;
                this.VertexCount   += pri.VertexCount;
            }

            spriteRenderer.AddSprite(this);
            this.textureHandle = RenderManager.TransparentTextureHandle;
        }
        private void DrawGameObjects(IGameObject rootGameObject)
        {
            foreach (IComponent component in rootGameObject.GetComponents())
            {
                ISpriteRenderer sr = component as ISpriteRenderer;
                if (sr != null)
                {
                    RenderSpriteHandler?.Invoke(sr);
                }

                ITextRenderer tr = component as ITextRenderer;
                if (tr != null)
                {
                    RenderTextHandler?.Invoke(tr.Font, tr.Text, tr.Transform.Position + tr.Offset, tr.Color, 0.5f, tr.Transform.Rotation, tr.Size, 0.5f);
                }

                ILineRenderer lr = component as ILineRenderer;
                if (lr != null)
                {
                    RenderLineHandler?.Invoke(lr.Start, lr.End, lr.Color, lr.Size);
                }
            }
        }
Exemple #7
0
 /// <summary>
 /// Removes and disposes the specified renderer.
 /// </summary>
 /// <param name="renderer">The renderer to remove.</param>
 public void DestroyRenderer(ISpriteRenderer renderer)
 {
     renderer.Dispose();
     this.SpriteRenderers.Remove(renderer);
 }
Exemple #8
0
 public SpriteDifferenceRenderer(ISpriteRenderer renderer)
 {
     _renderer = renderer;
 }
Exemple #9
0
 /// <summary>
 /// Initializes a new instance of the TwoDSprite class.
 /// </summary>
 /// <param name="spriteRenderer">The owning <see cref="ISpriteRenderer"/>.</param>
 /// <param name="primitives">The primitives.</param>
 public TwoDSprite(ISpriteRenderer spriteRenderer, params Primitive[] primitives)
     : base(spriteRenderer, primitives)
 {
 }
Exemple #10
0
 void IRenderManagerInternal.RenderSprite(ISpriteRenderer sr)
 {
     RenderSpriteHandler?.Invoke(sr);
 }
Exemple #11
0
 protected override void Awake()
 {
     _sr       = GetComponent <SpriteRenderer>();
     _sr.Layer = 0;
 }