Exemple #1
0
        public void Finish(Guid id, int[] iframe)
        {
            ComputationRequest request = null;

            lock (_Sync)
            {
                if (_Package == null)
                {
                    return;
                }

                request = _Package.Finish(id, iframe);
                if (request == null)
                {
                    return;
                }

                byte[] buffer = new byte[iframe.Length * sizeof(int)];
                Buffer.BlockCopy(iframe, 0, buffer, 0, buffer.Length);
                File.WriteAllBytes(GetPartialFramePath(Name, _FrameCount, request), buffer);
            }

            if (_Package.IsDone)
            {
                FrameFinished?.Invoke(this, _Package.Frame);
            }
            else
            {
                FrameChanged?.Invoke(this, new EventArgs());
            }
        }
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);
            if (lastFrame == startTime)
            {
                return;
            }

            if (e.Button == MouseButtons.Left)
            {
                timer.Enabled = (e.X <20 + margin || e.X> Width - 20);
                Locked        = true;
                currentFrame  = Math.Min(Math.Max(startTime, (int)Math.Round(((e.X - 20 - margin) * (frameRight - frameLeft) / (Width - 40 - margin) + frameLeft))), lastFrame);
                FrameChanged?.Invoke(this, new EventArgs());
                Refresh();
            }
            else if (e.Button == MouseButtons.Right)
            {
                double delta = (e.X - lastMousePos.X) * (frameRight - frameLeft) / (Width - 40 - margin);
                frameLeft  -= delta;
                frameRight -= delta;

                ResolveCollision();

                Refresh();
            }

            lastMousePos = e.Location;
        }
        /// <summary>
        /// Update method for objects that do not move.
        /// </summary>
        public void Update()
        {
            FindHighestPriorityAnimation();

            if (_frameTimer.TimeElapsedInMilliSeconds > _currentAnimationData.Speed)
            {
                _frameTimer.Reset();
                _currentFrame++;

                if (_currentFrame >= _currentAnimationData.FrameCount)
                {
                    AnimationEnded?.Invoke();
                    // Send notice that animation has ended.
                    if (!_currentAnimationData.IsRepeating)
                    {
                        _currentFrame = _currentAnimationData.FrameCount - 1;
                    }
                    else
                    {
                        _currentFrame = 0;
                    }
                }
                FrameChanged?.Invoke(new FrameArgs(_currentFrame));
            }

            _sourceRectangle.X = _currentFrame * _currentAnimationData.Width;
        }
Exemple #4
0
        /// <summary>
        /// Evento que obtém dados relativos aos Frames disponibilizados pelo Sensor Kinect
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void KinectFramesReady(object sender, AllFramesReadyEventArgs e)
        {
            byte[] imagem = Util.ObterImagemSensorRGB(e.OpenColorImageFrame());

            if (imagem != null)
            {
                FrameChanged?.Invoke(GetImage(imagem), e.OpenSkeletonFrame().Validation());
            }

            GameFrames?.Invoke(this, e);
        }
Exemple #5
0
        /// <summary>
        /// Updates the runtime context <see cref="ScriptVideoContextBase.FrameNumber"/> and <see cref="ScriptVideoContextBase.VideoPosition"/> property values
        /// and raises the <see cref="FrameChanged"/> and <see cref="SurfaceRendered"/> events.
        /// </summary>
        /// <param name="frameNumber">The current zero-based frame number of the video.</param>
        protected void OnFrameChanged(int frameNumber)
        {
            var internalContext     = InternalContext;
            int previousFrameNumber = internalContext.FrameNumber;

            internalContext.SetFrameNumberInternal(frameNumber);
            internalContext.RefreshVideoPositionInternal();

            FrameChanged?.Invoke(this, new FrameChangedEventArgs(previousFrameNumber, frameNumber));
            SurfaceRendered?.Invoke(this, new SurfaceRenderedEventArgs(SurfaceRenderPipeline.Both));
        }
        /// <summary>
        /// Update the aniamtion, timers and fire events.
        /// </summary>
        /// <param name="entity"></param>
        public void Update(Entity entity)
        {
            //SpeedParticle speed = new SpeedParticle(texture, drawRectangle.X, drawRectangle.Y, sourceRectangle, entity.IsFacingRight);
            //GameWorld.ParticleSystem.Add(speed);

            FindHighestPriorityAnimation();

            UpdatePositionOnly(entity);

            if (_currentName == "walk" || _currentName == "run")
            {
                // y = 1020/(x + 1) - 20
                _currentAnimationData.Speed = (int)(-20 + 500f / (Math.Abs(entity.GetVelocity().X) + 1));
            }
            if (_currentName == "climb")
            {
                _currentAnimationData.Speed = (int)(-20 + 500f / (Math.Abs(entity.GetVelocity().Y) + 1));
                if (Math.Abs(entity.GetVelocity().Y) < .1f)
                {
                    _currentAnimationData.Speed = Int32.MaxValue;
                }
            }



            if (_frameTimer.TimeElapsedInMilliSeconds > _currentAnimationData.Speed)
            {
                _frameTimer.Reset();
                _currentFrame++;

                if (_currentFrame >= _currentAnimationData.FrameCount)
                {
                    AnimationEnded?.Invoke();
                    // Send notice that animation has ended.
                    if (!_currentAnimationData.IsRepeating)
                    {
                        _currentFrame = _currentAnimationData.FrameCount - 1;
                    }
                    else
                    {
                        _currentFrame = 0;
                    }
                }
                FrameChanged?.Invoke(new FrameArgs(_currentFrame));
            }

            _sourceRectangle.X = _currentFrame * _currentAnimationData.Width;
        }
Exemple #7
0
 public void Update(GameTime time)
 {
     screenTime += (float)time.ElapsedGameTime.TotalSeconds;
     if (screenTime * 1000 > Duration)
     {
         index++;
         screenTime = 0;
         if (index >= Length)
         {
             if (IsLooped)
             {
                 index %= Length;
             }
             else
             {
                 index = Length - 1;
             }
         }
         FrameChanged?.Invoke(index);
     }
 }
        private void Timer_Tick(object sender, EventArgs e)
        {
            double step;

            if (lastMousePos.X < 20 + margin)
            {
                step        = (20 + margin - lastMousePos.X) * (frameRight - frameLeft) / Width;
                frameLeft  -= step;
                frameRight -= step;

                #region resolve collsions
                if (frameLeft < startTime)
                {
                    frameRight -= frameLeft;
                    frameLeft   = startTime;
                }
                #endregion
            }
            else
            {
                step        = (lastMousePos.X - Width + 20) * (frameRight - frameLeft) / Width;
                frameLeft  += step;
                frameRight += step;

                #region resolve collsions
                if (frameRight > lastFrame)
                {
                    frameLeft += lastFrame - frameRight;
                    frameRight = lastFrame;
                }
                #endregion
            }

            currentFrame = Math.Min(Math.Max(startTime, (int)Math.Round(((lastMousePos.X - 20 - margin) * (frameRight - frameLeft) / (Width - 40 - margin) + frameLeft))), lastFrame);
            FrameChanged?.Invoke(this, new EventArgs());
            Refresh();
        }
Exemple #9
0
 internal void NotifyFrameChanged(AnimationEntityDrawer animationEntityDrawer)
 {
     FrameChanged?.Invoke(animationEntityDrawer);
 }
        public void SetFrame(StackFrame frame)
        {
            _currentStackFrame = frame;

            FrameChanged?.Invoke(this, new EventArgs());
        }
Exemple #11
0
        public void SetFrame(StackFrame frame)
        {
            _currentStackFrame = frame;

            FrameChanged?.Invoke(this, EventArgs.Empty);
        }
Exemple #12
0
 public static void OnFrameChanged()
 {
     FrameChanged?.Invoke();
 }
Exemple #13
0
 private void EhFrameChanged(object sender, SelectionChangedEventArgs e)
 {
     GuiHelper.SynchronizeSelectionFromGui(_guiFrame);
     FrameChanged?.Invoke(((SelectableListNode)_guiFrame.SelectedValue).Tag as Type);
 }
Exemple #14
0
 private static void OnFrameChanged()
 {
     FrameChanged?.Invoke();
 }
Exemple #15
0
 public void Reset()
 {
     screenTime = 0;
     index      = 0;
     FrameChanged?.Invoke(index);
 }
Exemple #16
0
 private void OnFrameChanged()
 {
     FrameChanged?.Invoke(this, EventArgs.Empty);
 }