本文整理汇总了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;
}
}
示例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);
}
示例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
}
}
示例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);
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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);
}