コード例 #1
0
ファイル: MissileSprite.cs プロジェクト: zvinch/SharpDungeon
        public virtual void Reset(int from, int to, int image, Glowing glowing, ICallback listener)
        {
            Revive();

            View(image, glowing);

            _callback = listener;

            Point(DungeonTilemap.TileToWorld(from));
            var dest = DungeonTilemap.TileToWorld(to);

            var d = PointF.Diff(dest, Point());

            Speed.Set(d).Normalize().Scale(SPEED);

            if (image == 31 || image == 108 || image == 109 || image == 110)
            {
                AngularSpeed = 0;
                Angle        = 135 - (float)(Math.Atan2(d.X, d.Y) / 3.1415926 * 180);
            }
            else
            {
                AngularSpeed = image == 15 || image == 106 ? 1440 : 720;
            }

            var tweener = new PosTweener(this, dest, d.Length / SPEED);

            tweener.Listener = this;
            Parent.Add(tweener);
        }
コード例 #2
0
        public CheckedCell(int pos)
            : base(TextureCache.CreateSolid(Android.Graphics.Color.Argb(0xFF, 0x55, 0xAA, 0xFF)))
        {
            Origin.Set(0.5f);

            Point(DungeonTilemap.TileToWorld(pos).Offset(DungeonTilemap.Size / 2, DungeonTilemap.Size / 2));

            _alpha = 0.8f;
        }
コード例 #3
0
            public Wind(int pos)
            {
                _pos = pos;
                var p = DungeonTilemap.TileToWorld(pos);

                _x = p.X;
                _y = p.Y;

                _delay = pdsharp.utils.Random.Float(5);
            }
コード例 #4
0
ファイル: CellEmitter.cs プロジェクト: zvinch/SharpDungeon
        public static Emitter Get(int cell)
        {
            var p = DungeonTilemap.TileToWorld(cell);

            var emitter = GameScene.Emitter();

            emitter.Pos(p.X, p.Y, DungeonTilemap.Size, DungeonTilemap.Size);

            return(emitter);
        }
コード例 #5
0
ファイル: CellEmitter.cs プロジェクト: zvinch/SharpDungeon
        public static Emitter Center(int cell)
        {
            var p = DungeonTilemap.TileToWorld(cell);

            var emitter = GameScene.Emitter();

            emitter.Pos(p.X + DungeonTilemap.Size / 2, p.Y + DungeonTilemap.Size / 2);

            return(emitter);
        }
コード例 #6
0
            public Flow(int pos)
            {
                _pos = pos;

                var p = DungeonTilemap.TileToWorld(pos);

                _y = p.Y + DungeonTilemap.Size - 1;
                _x = p.X;

                _delay = pdsharp.utils.Random.Float(Delay);
            }
コード例 #7
0
ファイル: PlantSprite.cs プロジェクト: zvinch/SharpDungeon
        public virtual void Reset(Plant plant)
        {
            Revive();

            Reset(plant.Image);
            Alpha(1f);

            _pos = plant.Pos;
            var p = DungeonTilemap.TileToWorld(plant.Pos);

            X = p.X;
            Y = p.Y;

            _state = State.Growing;
            _time  = Delay;
        }
コード例 #8
0
            public override void Update()
            {
                if (!(Visible = Dungeon.Visible[_pos]))
                {
                    return;
                }

                base.Update();

                if (!((_delay -= Game.Elapsed) <= 0))
                {
                    return;
                }

                _delay = pdsharp.utils.Random.Float();

                var p = DungeonTilemap.TileToWorld(_pos);

                Recycle <Sparkle>().Reset(p.X + pdsharp.utils.Random.Float(DungeonTilemap.Size), p.Y + pdsharp.utils.Random.Float(DungeonTilemap.Size));
            }
コード例 #9
0
ファイル: QuickSlot.cs プロジェクト: zvinch/SharpDungeon
        private void UseTargeting()
        {
            _targeting = _lastTarget != null && _lastTarget.IsAlive && Dungeon.Visible[_lastTarget.pos];

            if (!_targeting)
            {
                return;
            }

            if (Actor.All.Contains(_lastTarget))
            {
                _lastTarget.Sprite.Parent.Add(_crossM);
                _crossM.Point(DungeonTilemap.TileToWorld(_lastTarget.pos));
                _crossB.Visible = true;
            }
            else
            {
                _lastTarget = null;
            }
        }