示例#1
0
        public virtual void Process(RenderTime elapsedTime)
        {
            ActionTime += elapsedTime;
            FrameTime += elapsedTime;
            if (FrameTime >= FrameLength) {
                FrameTime = FrameTime - FrameLength;
                Frame++;
            }

            if (Frame >= TextureManager.GetSpellSheet(TextureManager.SpellAnimType.Spell, AnimationIndex).TotalFrames) {
                Frame = 0;
            }

            MapLoc = StartLoc + Speed * ActionTime.ToMillisecs() / 1000;
            Speed = StartSpeed + Acceleration * ActionTime.ToMillisecs() / 1000;
            if (ActionTime >= TotalTime) {
                ActionDone = true;
            }
        }
        public virtual void Process(RenderTime elapsedTime)
        {
            ActionTime += elapsedTime;
            FrameTime += elapsedTime;
            if (FrameTime >= FrameLength) {
                FrameTime = FrameTime - FrameLength;
                Frame++;
            }

            if (Frame >= TextureManager.GetSpellSheet(TextureManager.SpellAnimType.Arrow, AnimationIndex).TotalFrames) {
                Frame = 0;
            }

            Distance = ActionTime.ToMillisecs() * TravelSpeed / 1000;

            if (Distance >= TotalDistance) {
                ActionDone = true;
            } else {
                Loc2D mapLoc = new Loc2D(StartLoc.X * TextureManager.TILE_SIZE, StartLoc.Y * TextureManager.TILE_SIZE);
                Operations.MoveInDirection8(ref mapLoc, Direction, Distance);
                MapLoc = mapLoc;
            }
        }
        public virtual void Process(RenderTime elapsedTime)
        {
            ActionTime += elapsedTime;
            FrameTime += elapsedTime;
            if (FrameTime >= FrameLength) {
                FrameTime = FrameTime - FrameLength;
                Frame++;
            }

            if (Frame >= TextureManager.GetItemSheet(AnimationIndex).TotalFrames) {
                Frame = 0;
            }

            Distance = ActionTime.ToMillisecs() * TravelSpeed;

            if (Distance >= TotalDistance) {
                ActionDone = true;
            } else {
                MapHeight = DrawHelper.GetArc(TotalDistance, TotalDistance, Distance);
                if (DropDown) {
                    MapHeight += TextureManager.TILE_SIZE * (TotalDistance - Distance) / TotalDistance / 2;
                } else {
                    MapHeight += TextureManager.TILE_SIZE / 2;
                }

                Loc2D mapDiff = (EndLoc - StartLoc) * TextureManager.TILE_SIZE;
                mapDiff = new Loc2D(mapDiff.X * Distance / TotalDistance, mapDiff.Y * Distance / TotalDistance);

                MapLoc = mapDiff + StartLoc * TextureManager.TILE_SIZE;
            }
        }