示例#1
0
        public void InitializeDanmaku(DanmakuMode mode, double fontZoom, int _speed, DanmakuBorderStyle style)
        {
            sizeZoom = fontZoom;
            speed    = _speed;

            borderStyle = style;
            SetRows();
        }
示例#2
0
        private void addDanmaku(String str, Color color, double size, DanmakuMode mode)
        {
            var tb = new TextBlock()
            {
                Text       = str,
                Foreground = new SolidColorBrush(color),
                FontSize   = size,
                MinWidth   = 0,
                MinHeight  = 0,
                MaxWidth   = double.PositiveInfinity,
                MaxHeight  = double.PositiveInfinity,
            };

            tb.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
            tb.Arrange(new Rect());

            allocators[mode].allocate(tb);
        }
示例#3
0
        /// <summary>
        /// Add a danmaku
        /// </summary>
        /// <param name="text"></param>
        /// <param name="line"></param>
        /// <param name="foreground"></param>
        /// <param name="size"></param>
        /// <param name="mode"></param>
        public void AddDanmaku(string text, Color foreground, double size, DanmakuMode mode, bool shadow, int speed = 5000)
        {
            switch (mode)
            {
            case DanmakuMode.Top:
                AddTopMotionlessDanmaku(text, foreground, size, shadow);
                break;

            case DanmakuMode.Bottom:
                AddBottomMotionlessDanmaku(text, foreground, size, shadow);
                break;

            case DanmakuMode.Scroll:
                AddScrollableDanmaku(text, foreground, size, speed, shadow);
                break;

            default:
                break;
            }
        }
示例#4
0
 public DanmakuAllocator(Canvas canvas, DanmakuMode mode)
 {
     this.canvas = canvas;
     this.mode   = mode;
     layers      = new List <IDanmakuAllocator>();
 }