当前位置: 首页>>代码示例>>C#>>正文


C# Room.AddEntity方法代码示例

本文整理汇总了C#中Room.AddEntity方法的典型用法代码示例。如果您正苦于以下问题:C# Room.AddEntity方法的具体用法?C# Room.AddEntity怎么用?C# Room.AddEntity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Room的用法示例。


在下文中一共展示了Room.AddEntity方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: OnUse

 public void OnUse(Diver diver, Room room)
 {
     if (coolDown <= 0)
     {
         room.AddEntity(new Bomb(diver.X, diver.Y));
         coolDown = 200;
     }
 }
开发者ID:olofn,项目名称:db_public,代码行数:8,代码来源:BombTool.cs

示例2: Update

        public override void Update(State s, Room room)
        {
            frameCounter++;

            if (frameCounter >= 200)
            {
                room.Broadcast("explosion", "", this);

                for (int i = 0; i < 10; i++)
                {
                    room.AddEntity(Particle.MakeBigBubble(new Point(X + Width / 2, Y)));
                    room.AddEntity(Particle.MakeSmallBubble(new Point(X + Width / 2, Y)));
                    room.AddEntity(Particle.MakeTinyBubble(new Point(X + Width / 2, Y)));
                }

                for (int i = 0; i < 20; i++)
                {
                    room.AddEntity(Particle.Debri(new Point(X + Width / 2, Y + Height / 2)));
                }

                room.AddEntity(Particle.ExplosionGlow(Center));
                room.AddEntity(Particle.ExplosionGlow(Center));
                room.AddEntity(Particle.ExplosionGlow(Center));
                room.AddEntity(Particle.ExplosionGlow(Center));
                room.AddEntity(Particle.ExplosionGlow(Center));
                room.AddEntity(Particle.ExplosionGlow(Center));

                room.RemoveEntity(this);
            }

            if (frameCounter % 5 == 0)
            {
                animationFrame++;
            }

            if (frameCounter % 20 == 0)
            {
                room.AddEntity(Particle.MakeTinyBubble(new Point(X + Width / 2, Y)));
            }

            Velocity.Y = 2 * Resolution;
            MoveWithCollision(room);

               base.Update(s, room);
        }
开发者ID:olofn,项目名称:db_public,代码行数:45,代码来源:Bomb.cs

示例3: Update

        public override void Update(State s, Room room)
        {
            Y = startY + (int)(Math.Sin(s.Time.TotalGameTime.Ticks / 10000000.0f) * 8.5f);
            room.AddEntity(Particle.MakeSpark(new Point(X + DiverGame.Random.Next(Width), Y + DiverGame.Random.Next(Height))));

            if (room.Diver.Dimension.Intersects(Dimension))
            {
                room.RemoveEntity(this);
                room.Sea.Broadcast("inventory", "add", Tool);
                // Display text
            }
        }
开发者ID:olofn,项目名称:db_public,代码行数:12,代码来源:Pickup.cs

示例4: Update

        public override void Update(State s, Room room)
        {
            if (health <= 0)
            {
                for (int i = 0; i < 20; i++)
                {
                    room.AddEntity(Particle.Debri(new Point(X + Width / 2, Y + Height / 2)));
                }

                room.RemoveEntity(this);
            }

            base.Update(s, room);
        }
开发者ID:weimingtom,项目名称:db-diver,代码行数:14,代码来源:Explodable.cs

示例5: MakeRoomActive

        void MakeRoomActive(int x, int y)
        {
            currentRoom.RemoveEntity(diver);
            currentRoom.OnDiverLeftRoom();
            currentRoom = GetRoom(x, y);

            if (currentRoom == null)
            {
                throw new Exception("Cannot make a null room active! (" + x + "," + y + ")");
            }

            currentRoom.Diver = diver;
            currentRoom.AddEntity(diver);

            miniMap.Discover(currentRoom);
            diver.OxygenDecrease = true;
            diver.OxygenIncrease = false;
            diver.JumpEnabled = true;
        }
开发者ID:weimingtom,项目名称:db-diver,代码行数:19,代码来源:Sea.cs

示例6: EnterBoat

        public void EnterBoat()
        {
            if (currentRoom != null)
            {
                currentRoom.RemoveEntity(diver);
                currentRoom.OnDiverLeftRoom();
            }

            currentRoom = boat;
            currentRoom.Diver = diver;
            currentRoom.AddEntity(diver);
            diver.OxygenDecrease = false;
            diver.OxygenIncrease = true;
            diver.JumpEnabled = false;
            speedyDiver.X = 170;
            speedyDiver.Y = 224 - speedyDiver.Height;
            fattyDiver.X = 200;
            fattyDiver.Y = 224 - fattyDiver.Height;
            tinyDiver.X = 230;
            tinyDiver.Y = 224 - tinyDiver.Height;
        }
开发者ID:weimingtom,项目名称:db-diver,代码行数:21,代码来源:Sea.cs

示例7: Update

        public override void Update(State s, Room room)
        {
            base.Update(s, room);

            if (dead)
            {
                animationGridFrame = 0;
                if (position.Y < 0)
                {
                    room.RemoveEntity(this);
                }

                if (DiverGame.Random.Next(200) == 0)
                {
                    room.AddEntity(Particle.MakeTinyBubble(new Point(base.X + (xSpeed.Diff > 0 ? Width : 0), base.Y + Height / 2)));
                }
            }
            else
            {
                bool panic = false;
                if (panicCooldown > 0)
                {
                    panicCooldown--;
                    if (panicCooldown == 0)
                        TriggerNewSpeedTarget();
                    else
                        panic = true;
                }

                if ((DiverGame.Random.Next(400) == 0 || (panic && DiverGame.Random.Next(20) == 0)))
                {
                    TriggerNewSpeedTarget();
                }

                animationGridFrame += Math.Abs((xSpeed.Diff)) + 0.1;
            }

            xSpeed.Update();
            ySpeed.Update();

            position.X += xSpeed.Value;
            position.Y += ySpeed.Value;

            base.X = (int)position.X;
            base.Y = (int)position.Y;

            if (position.X < 0 && xSpeed.Target < 0 ||
                position.X > room.TileMap.SizeInPixels.X && xSpeed.Diff > 0) xSpeed.Target *= -1;
            if (position.Y < 0 && ySpeed.Target < 0 ||
                position.Y > room.TileMap.SizeInPixels.Y && ySpeed.Diff > 0) ySpeed.Target *= -1;
        }
开发者ID:olofn,项目名称:db_public,代码行数:51,代码来源:Fish.cs

示例8: Update

        public override void Update(State s, Room room)
        {
            frameCounter++;
            if (!Enabled)
            {
                collisionWithDiver = Dimension.Intersects(room.Diver.Dimension);

                if (collisionWithDiver
                    && s.Input.WasPressed(Input.Action.Select)
                    && !disabledThisFrame)
                {
                    int x = X;
                    X = room.Diver.X;
                    room.Diver.X = x;
                    room.Diver.Enabled = false;
                    Enabled = true;
                    OxygenDecrease = false;
                    OxygenIncrease = true;
                    JumpEnabled = false;
                    room.OnDiverChange(this);
                }

                disabledThisFrame = false;
                return;
            }

            isOnGround = IsTileSolidBelow(room) || IsSpecialLadderCase(room) ;

            if (frameCounter % 60 == 0)
                standingGridFrame++;

            if (!Freeze && climbing)
            {
                UpdateClimbingMovement(s, room);
            }
            else if (!Freeze)
            {
                UpdateNormalMovement(s, room);
            }

            if (Tool1 != null)
            {
                Tool1.Update(this, room, s);
            }

            if (Tool2 != null)
            {
                Tool2.Update(this, room, s);
            }

            if (OxygenDecrease)
            {
                Oxygen--;

                if (Oxygen < 0)
                    Oxygen = 0;

                if (s.Time.TotalGameTime.Seconds % 4 == 1 && s.Time.TotalGameTime.Milliseconds % 1000 < 500)
                {
                    if (DiverGame.Random.Next(10) == 0)
                    {
                        room.AddEntity(Particle.MakeBigBubble(new Point(X + Width / 2, Y)));
                    }

                    if (DiverGame.Random.Next(5) == 0)
                    {
                        room.AddEntity(Particle.MakeSmallBubble(new Point(X + Width / 2, Y)));
                    }

                    if (DiverGame.Random.Next(4) == 0)
                    {
                        room.AddEntity(Particle.MakeTinyBubble(new Point(X + Width / 2, Y)));
                    }
                }
            }

            if (OxygenIncrease)
                Oxygen += 5;

            if (Oxygen < 0)
            {
                Freeze = true;
                IsDead = true;
            }

            if (Oxygen > MaxOxygen)
                Oxygen = MaxOxygen;
        }
开发者ID:olofn,项目名称:db_public,代码行数:88,代码来源:Diver.cs

示例9: Update

        public override void Update(State s, Room room)
        {
            frameCounter++;

            if (surface)
            {
                room.LeaveRoomEnabled = false;

                offsetY += pullSpeed;
                room.Diver.Y += pullSpeed;

                if (frameCounter % 6 == 0)
                {
                    pullSpeed--;

                    if (pullSpeed <= 0)
                    {
                        room.AddEntity(Particle.MakeBigBubble(new Point(room.Diver.X + room.Diver.Width / 2, room.Diver.Y)));
                        room.AddEntity(Particle.MakeBigBubble(new Point(room.Diver.X + room.Diver.Width / 2, room.Diver.Y)));
                        room.AddEntity(Particle.MakeSmallBubble(new Point(room.Diver.X + room.Diver.Width / 2, room.Diver.Y)));
                        room.AddEntity(Particle.MakeSmallBubble(new Point(room.Diver.X + room.Diver.Width / 2, room.Diver.Y)));
                        room.AddEntity(Particle.MakeTinyBubble(new Point(room.Diver.X + room.Diver.Width / 2, room.Diver.Y)));
                        room.AddEntity(Particle.MakeTinyBubble(new Point(room.Diver.X + room.Diver.Width / 2, room.Diver.Y)));
                    }
                }

                if (frameCounter > 240)
                {
                    Reset();
                    room.Diver.Freeze = false;
                    room.SurfaceDiver();
                }

                return;
            }

            collisionWithDiver = Dimension.Intersects(new Rectangle(room.Diver.TopCenter.X,
                                                                    room.Diver.TopCenter.Y,
                                                                    1,
                                                                    1));

            if (collisionWithDiver && !collisionWithDiverLastFrame)
            {
                room.Diver.Freeze = true;
                diverFreezed = true;
            }

            if (collisionWithDiver && s.Input.WasPressed(Input.Action.Jump))
            {
                room.Diver.Velocity.Y = 0;
                room.Diver.JumpVelocity = 0;
                room.Diver.Freeze = false;
                diverFreezed = false;
            }

            if (collisionWithDiver && s.Input.WasPressed(Input.Action.Select))
            {
                surface = true;
                pullSpeed = 2;
                frameCounter = 0;
            }

            collisionWithDiverLastFrame = collisionWithDiver;

            base.Update(s, room);
        }
开发者ID:olofn,项目名称:db_public,代码行数:66,代码来源:BoatRope.cs


注:本文中的Room.AddEntity方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。