コード例 #1
0
        public async Task Group_MessageTypeIsSticker_ReturnsMessage()
        {
            ILineBot        bot     = TestConfiguration.CreateBot();
            TestHttpRequest request = new TestHttpRequest(JsonDocuments.Events.Messages.Sticker);

            IEnumerable <ILineEvent> events = await bot.GetEvents(request);

            Assert.AreEqual(1, events.Count());

            ILineEvent lineEvent = events.First();

            IEventSource source = lineEvent.Source;

            Assert.IsNotNull(source);
            Assert.AreEqual(EventSourceType.User, source.SourceType);
            Assert.AreEqual("U206d25c2ea6bd87c17655609a1c37cb8", source.User.Id);

            Assert.AreEqual("nHuyWiB7yP5Zw52FIkcQobQuGDXCTA", lineEvent.ReplyToken);

            Assert.IsNotNull(lineEvent.Message);
            Assert.AreEqual("325708", lineEvent.Message.Id);
            Assert.IsNull(lineEvent.Message.Location);
            Assert.AreEqual(MessageType.Sticker, lineEvent.Message.MessageType);
            Assert.AreEqual("nHuyWiB7yP5Zw52FIkcQobQuGDXCTA", lineEvent.Message.ReplyToken);
            Assert.IsNull(lineEvent.Message.Text);

            ISticker sticker = lineEvent.Message.Sticker;

            Assert.IsNotNull(sticker);
            Assert.AreEqual("1", sticker.PackageId);
            Assert.AreEqual("2", sticker.StickerId);
        }
コード例 #2
0
ファイル: RectangleBlock.cs プロジェクト: cgcoder/StickyBird
 public virtual void SetStickingObject(ISticker sticker)
 {
     this.sticker = sticker;
     if (sticker != null)
     {
         touchDownX = (sticker as DynamicGameObject).Position.X - this.Position.X;
     }
 }
コード例 #3
0
ファイル: RectangleBlock.cs プロジェクト: cgcoder/StickyBird
 public RectangleBlock(World world)
     : base(world)
 {
     this.IsGravityDisabled = true;
     sticker = null;
     this.Shape = new WrapperRectangle(this);
     this.CollisionDetector = new RectangleCollisionDetector(this);
 }
コード例 #4
0
ファイル: CircleObject.cs プロジェクト: cgcoder/StickyBird
        public void SetStickingObject(ISticker sticker)
        {
            if (this.sticker == null && sticker != null)
            {
                DynamicGameObject col = sticker as DynamicGameObject;

                Vector2 thisPos = this.position;
                Vector2 spos = col.Position;

                float delX = thisPos.X - spos.X;
                float delY = thisPos.Y - spos.Y;
                float hyp = (float)Math.Sqrt(delX * delX + delY * delY);

                float ang = (float)Math.Asin(delX / hyp);
                stickingAngle = ang + (float)Math.PI / 2;
                if (delY > 0) stickingAngle = -stickingAngle;
            }
            this.sticker = sticker;
        }
コード例 #5
0
ファイル: LineObject.cs プロジェクト: cgcoder/StickyBird
 public void ReleaseStickingObject()
 {
     sticker = null;
 }
コード例 #6
0
ファイル: LineObject.cs プロジェクト: cgcoder/StickyBird
        public void SetStickingObject(ISticker sticker)
        {
            this.sticker = sticker;
            if (sticker != null)
            {
                ICircle ball = ((sticker as DynamicGameObject).Shape as ICircle);

                Vector2 normal;

                VectorUtil.intersect(LineStart, LineEnd, ball.Position, out normal);
                Vector2 unitNormal = VectorUtil.Unitize(normal);
                Vector2 pt1 = LineStart;
                Vector2 pt2 = LineEnd;
                Vector2 bp = ball.Position;

                normal = unitNormal * (ball.Radius);

                Vector2 tl = new Vector2(pt1.X - pt2.X, pt1.Y - pt2.Y);
                Vector2 bv = new Vector2(bp.X - pt2.X, bp.Y - pt2.Y);

                Vector2 ball_on_line = VectorUtil.Project(bv, tl);

                deltaVector = new Vector2(ball_on_line.X, ball_on_line.Y);
                normalVector.X = normal.X;
                normalVector.Y = normal.Y;
            }
        }
コード例 #7
0
ファイル: Spikes.cs プロジェクト: cgcoder/StickyBird
 public override void SetStickingObject(ISticker sticker)
 {
     this.sticker = sticker;
 }
コード例 #8
0
ファイル: SetSticker.cs プロジェクト: svanelten/mpcCore
 /// <summary>
 /// <inheritdoc/>
 /// </summary>
 /// <param name="sticker">Sticker object with all data to set</param>
 public SetSticker(ISticker sticker)
 {
     Command = $"sticker set {sticker.Type} \"{sticker.Path}\" {sticker.Name} {sticker.Value}";
 }
コード例 #9
0
ファイル: DeleteSticker.cs プロジェクト: svanelten/mpcCore
 /// <summary>
 /// <inheritdoc/>
 /// </summary>
 /// <param name="sticker">Sticker object to delete, needs at least a path.</param>
 public DeleteSticker(ISticker sticker)
 {
     Command = $"sticker set {sticker.Type} \"{sticker.Path}\" {sticker.Name ?? ""}";
 }