public void SetSpriteIndex(GameSprite spr) { }
public void Update(float deltaTime, KeyState keys, Room room) { if (keys.Jump && canJump) { var platforms = Engine.FindGameObjectsByTag("block", room); if (Engine.IsPlaceMeeting(new Vector2f(pos.X, pos.Y + 1), this, platforms)) { vel.Y = -jumpSpeed; canJump = false; } } if (keys.Left && pos.X > 0) { if (vel.X != -moveSpeed) { vel.X = -moveSpeed; spriteIndex = new GameSprite(Sprites.getInstance().PlayerWalkLeft); } facingLeft = true; } else if (keys.Right && pos.X < room.GetSize().X) { if (vel.X != moveSpeed) { vel.X = moveSpeed; spriteIndex = new GameSprite(Sprites.getInstance().PlayerWalkRight); } facingLeft = false; } else { vel.X = 0; if (facingLeft) { spriteIndex = new GameSprite(Sprites.getInstance().PlayerStandLeft); } else { spriteIndex = new GameSprite(Sprites.getInstance().PlayerStandRight); } } var blocks = Engine.FindGameObjectsByTag("block", room); if (Engine.IsPlaceMeeting(new Vector2f(pos.X + vel.X * deltaTime, pos.Y), this, blocks)) { while (!Engine.IsPlaceMeeting(new Vector2f(pos.X, pos.Y), this, blocks)) { pos.X += Math.Sign(vel.X); } pos.X -= Math.Sign(vel.X); vel.X = 0; } if (Engine.IsPlaceMeeting(new Vector2f(pos.X + 2, pos.Y + vel.Y * deltaTime), this, blocks) && Engine.IsPlaceMeeting(new Vector2f(pos.X - 2, pos.Y + vel.Y * deltaTime), this, blocks)) { while (!Engine.IsPlaceMeeting(new Vector2f(pos.X, pos.Y), this, blocks)) { pos.Y += Math.Sign(vel.Y); } pos.Y -= Math.Sign(vel.Y); vel.Y = 0; acc.Y = 0; if (!keys.Jump) { canJump = true; } } else { acc.Y = gravity; } if (vel.Y > 0) { if (facingLeft) { spriteIndex = new GameSprite(Sprites.getInstance().PlayerFallLeft); } else { spriteIndex = new GameSprite(Sprites.getInstance().PlayerFallRight); } } else if (vel.Y < 0) { if (facingLeft) { spriteIndex = new GameSprite(Sprites.getInstance().PlayerJumpLeft); } else { spriteIndex = new GameSprite(Sprites.getInstance().PlayerJumpRight); } } else if (spriteIndex.ImageSpeed == 0) { if (facingLeft) { spriteIndex = new GameSprite(Sprites.getInstance().PlayerWalkLeft); } else { spriteIndex = new GameSprite(Sprites.getInstance().PlayerWalkRight); } } spriteIndex.Position = pos; spriteIndex.Update(deltaTime); }
public void SetSpriteIndex(GameSprite spr) => this.spriteIndex = spr;
private Sprites() { Blank = new Texture("img/blank.png"); Empty = new GameSprite( GameSprite.GetImagesFromTexture( Blank, new IntRect[] { new IntRect(0, 0, 64, 64) }, new Vector2f[] { new Vector2f(64, 64) } ), new Vector2f(0, 0), new IntRect(0, 0, 64, 64), 0 ); PlayerWalkTex = new Texture("img/sammy-move.png"); PlayerWalkRight = new GameSprite( GameSprite.GetImagesFromTexture( PlayerWalkTex, new IntRect[] { new IntRect(1, 1, 32, 32), new IntRect(35, 1, 32, 32), new IntRect(69, 1, 32, 32), new IntRect(103, 1, 32, 32) }, new Vector2f[] { new Vector2f(128, 128), new Vector2f(128, 128), new Vector2f(128, 128), new Vector2f(128, 128) } ), new Vector2f(64, 64), new IntRect(0, 0, 128, 128), 20 ); PlayerWalkLeft = new GameSprite( GameSprite.GetImagesFromTexture( PlayerWalkTex, new IntRect[] { new IntRect(103, 35, 32, 32), new IntRect(69, 35, 32, 32), new IntRect(35, 35, 32, 32), new IntRect(1, 35, 32, 32) }, new Vector2f[] { new Vector2f(128, 128), new Vector2f(128, 128), new Vector2f(128, 128), new Vector2f(128, 128) } ), new Vector2f(64, 64), new IntRect(0, 0, 128, 128), 20 ); PlayerStandRight = new GameSprite( GameSprite.GetImagesFromTexture( PlayerWalkTex, new IntRect[] { new IntRect(1, 1, 32, 32), }, new Vector2f[] { new Vector2f(128, 128), } ), new Vector2f(64, 64), new IntRect(0, 0, 128, 128), 0 ); PlayerStandLeft = new GameSprite( GameSprite.GetImagesFromTexture( PlayerWalkTex, new IntRect[] { new IntRect(103, 35, 32, 32), }, new Vector2f[] { new Vector2f(128, 128), } ), new Vector2f(64, 64), new IntRect(0, 0, 128, 128), 0 ); PlayerJumpRight = new GameSprite( GameSprite.GetImagesFromTexture( PlayerWalkTex, new IntRect[] { new IntRect(1, 69, 32, 32), }, new Vector2f[] { new Vector2f(128, 128), } ), new Vector2f(64, 64), new IntRect(0, 0, 128, 128), 0 ); PlayerFallRight = new GameSprite( GameSprite.GetImagesFromTexture( PlayerWalkTex, new IntRect[] { new IntRect(35, 69, 32, 32), }, new Vector2f[] { new Vector2f(128, 128), } ), new Vector2f(64, 64), new IntRect(0, 0, 128, 128), 0 ); PlayerJumpLeft = new GameSprite( GameSprite.GetImagesFromTexture( PlayerWalkTex, new IntRect[] { new IntRect(69, 69, 32, 32), }, new Vector2f[] { new Vector2f(128, 128), } ), new Vector2f(64, 64), new IntRect(0, 0, 128, 128), 0 ); PlayerFallLeft = new GameSprite( GameSprite.GetImagesFromTexture( PlayerWalkTex, new IntRect[] { new IntRect(103, 69, 32, 32), }, new Vector2f[] { new Vector2f(128, 128), } ), new Vector2f(64, 64), new IntRect(0, 0, 128, 128), 0 ); GrassTileSetTex = new Texture("img/simple-dirt.png"); GrassTiles = GameSprite.CreateTileSet(GrassTileSetTex, new Vector2i(32, 32), new Vector2i(128, 128)); }