add animations(not all) and monsters(not all)

This commit is contained in:
N4K 2023-08-16 23:32:54 +03:00
parent 3b79ff9baf
commit 403572637a
25 changed files with 214 additions and 41 deletions

View file

@ -62,7 +62,7 @@ namespace AnimationsFileCreator
container.TextureFrameInterval = 1; container.TextureFrameInterval = 1;
container.Id = id; container.Id = id;
string json = JsonConvert.SerializeObject(container); string json = JsonConvert.SerializeObject(container);
StreamWriter writer = new StreamWriter(id); StreamWriter writer = new StreamWriter("../../../../DangerousD/Content/animations/"+id);
writer.WriteLine(json); writer.WriteLine(json);
writer.Close(); writer.Close();
} }

View file

@ -0,0 +1 @@
{"id":"BallMoveRight","textureName":"MonstersAnimations","startSpriteRectangle":{"X":229,"Y":332,"Width":16,"Height":16},"frameSecond":[{"Item1":0,"Item2":8}],"textureFrameInterval":1,"framesCount":2,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"FlameSkullMoveLeft","textureName":"MonstersAnimations","startSpriteRectangle":{"X":1,"Y":593,"Width":24,"Height":16},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":2,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"GhostAttack","textureName":"MonstersAnimations","startSpriteRectangle":{"X":101,"Y":503,"Width":24,"Height":31},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":2,"isCycle":false,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"GhostMoveLeft","textureName":"MonstersAnimations","startSpriteRectangle":{"X":1,"Y":536,"Width":24,"Height":26},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":1,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"GhostMoveRight","textureName":"MonstersAnimations","startSpriteRectangle":{"X":1,"Y":503,"Width":24,"Height":26},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":1,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"GhostSpawn","textureName":"MonstersAnimations","startSpriteRectangle":{"X":26,"Y":503,"Width":24,"Height":30},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":3,"isCycle":false,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"SpiderMoveLeft","textureName":"MonstersAnimations","startSpriteRectangle":{"X":1,"Y":225,"Width":34,"Height":8},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":2,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"SpiderMoveRight","textureName":"MonstersAnimations","startSpriteRectangle":{"X":1,"Y":199,"Width":34,"Height":8},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":2,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"SpiderOnWeb","textureName":"MonstersAnimations","startSpriteRectangle":{"X":80,"Y":199,"Width":16,"Height":24},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":1,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"SpiderWeb","textureName":"MonstersAnimations","startSpriteRectangle":{"X":108,"Y":199,"Width":4,"Height":8},"frameSecond":[{"Item1":0,"Item2":1}],"textureFrameInterval":1,"framesCount":1,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"WolfJumpLeft","textureName":"MonstersAnimations","startSpriteRectangle":{"X":133,"Y":290,"Width":40,"Height":33},"frameSecond":[{"Item1":0,"Item2":1}],"textureFrameInterval":1,"framesCount":1,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"WolfJumpRight","textureName":"MonstersAnimations","startSpriteRectangle":{"X":133,"Y":258,"Width":40,"Height":33},"frameSecond":[{"Item1":0,"Item2":1}],"textureFrameInterval":1,"framesCount":1,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"WolfMoveLeft","textureName":"MonstersAnimations","startSpriteRectangle":{"X":1,"Y":292,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":4,"isCycle":true,"offset":"0, 0"}

View file

@ -0,0 +1 @@
{"id":"WolfMoveRight","textureName":"MonstersAnimations","startSpriteRectangle":{"X":1,"Y":258,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":4,"isCycle":true,"offset":"0, 0"}

View file

@ -14,8 +14,8 @@ namespace DangerousD.GameCore
{ {
protected Vector2 _pos; protected Vector2 _pos;
public Vector2 Pos => _pos; public Vector2 Pos => _pos;
public int Width { get; protected set; } public int Width { get; set; }
public int Height { get; protected set; } public int Height { get; set; }
public Rectangle Rectangle => new Rectangle((int)Pos.X, (int)Pos.Y, Width, Height); public Rectangle Rectangle => new Rectangle((int)Pos.X, (int)Pos.Y, Width, Height);
public Vector2 velocity; public Vector2 velocity;
public Vector2 acceleration; public Vector2 acceleration;

View file

@ -16,9 +16,11 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
{ {
Width = 62; Width = 62;
Height = 40; Height = 40;
monster_speed = 3;
name = "Skull";
} }
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "FlameSkullMoveRight" }, "FlameSkullMoveRight"); protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "FlameSkullMoveRight" , "FlameSkullMoveLeft"}, "FlameSkullMoveRight");
public override void Attack() public override void Attack()
{ {

View file

@ -35,37 +35,27 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
public override void Move(GameTime gameTime) public override void Move(GameTime gameTime)
{ {
/* if (player.Pos.X - _pos.X <= 20 || player.Pos.X - _pos.X <= -20) var player = AppManager.Instance.GameManager.players[0];
if (player.Pos.X - _pos.X <= 20 || player.Pos.X - _pos.X <= -20)
{ {
player.Death(name); player.Death(name);
} */ }
if (_pos.X <= 1) if (isGoRight)
{ {
isGoRight = true;
if (GraphicsComponent.GetCurrentAnimation != "FrankMoveRight") if (GraphicsComponent.GetCurrentAnimation != "FrankMoveRight")
{ {
GraphicsComponent.StartAnimation("FrankMoveRight"); GraphicsComponent.StartAnimation("FrankMoveRight");
velocity = new Vector2(monster_speed, 0);
} }
} velocity.X = monster_speed;
else if (_pos.X >= 500)
{
isGoRight = false;
if (GraphicsComponent.GetCurrentAnimation != "FrankMoveLeft")
{
GraphicsComponent.StartAnimation("FrankMoveLeft");
velocity = new Vector2(-monster_speed, 0);
}
}
if (isGoRight)
{
_pos.X += monster_speed;
} }
else else
{ {
_pos.X -= monster_speed; if (GraphicsComponent.GetCurrentAnimation != "FrankMoveLeft")
{
GraphicsComponent.StartAnimation("FrankMoveLeft");
}
velocity.X = -monster_speed;
} }
} }
} }

View file

@ -0,0 +1,41 @@
using DangerousD.GameCore.Graphics;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
{
public class FrankBalls : CoreEnemy
{
public FrankBalls(Vector2 position) : base(position)
{
name = "FrankBalls";
Width = 40;
Height = 40;
monster_speed = 1;
acceleration = Vector2.Zero;
}
protected override GraphicsComponent GraphicsComponent { get; } = new (new List<string> { "BallMoveRight" }, "BallMoveRight");
public override void Attack()
{
}
public override void Death()
{
}
public override void Move(GameTime gameTime)
{
}
}
}

View file

@ -12,10 +12,13 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
{ {
public Ghost(Vector2 position) : base(position) public Ghost(Vector2 position) : base(position)
{ {
monster_speed = 1;
name = "Ghost";
Width = 48;
Height = 62;
} }
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "GhostMoveRight", "GhostMoveLeft", "GhostSpawn", "GhostAttack" }, ""); protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "GhostMoveRight", "GhostMoveLeft", "GhostSpawn", "GhostAttack" }, "GhostMoveRight");
public override void Attack() public override void Attack()

View file

@ -12,15 +12,85 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
{ {
public class Spider : CoreEnemy public class Spider : CoreEnemy
{ {
protected SpiderWeb web;
protected float delay;
protected int webLength;
protected bool isDown;
protected bool isDownUp;
public Spider(Vector2 position) : base(position) public Spider(Vector2 position) : base(position)
{ {
isDownUp = true;
isDown = true;
web = new SpiderWeb(Pos);
name = "Spider";
Width = 112;
Height = 24;
delay = 0;
webLength = 0;
monster_speed = 1;
acceleration = Vector2.Zero;
} }
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "SpiderMoveRight", "SpiderMoveLeft", "SpiderDown", "SpiderUp" }, ""); protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "SpiderMoveRight", "SpiderMoveLeft", "SpiderOnWeb" }, "SpiderMoveRight");
public override void Attack() public override void Update(GameTime gameTime)
{ {
if (isDownUp)
{
Width = 48;
Height = 72;
delay += (float)gameTime.ElapsedGameTime.TotalSeconds;
if (delay > 0.5 && webLength <= 4 && isDown)
{
StartCicycleAnimation("SpiderOnWeb");
webLength++;
_pos.Y += 25;
web.Height = webLength * 25;
web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2, Pos.Y - 25 * webLength));
delay = 0;
if (webLength == 4)
{
isDown = false;
}
}
else if (delay > 0.5 && webLength != 0 && !isDown)
{
StartCicycleAnimation("SpiderOnWeb");
webLength--;
_pos.Y -= 25;
web.Height = webLength * 25;
web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2, Pos.Y - 25 * webLength));
delay = 0;
if (webLength == 0)
{
isDown = true;
}
}
else
{
Width = 112;
Height = 24;
}
}
base.Update(gameTime);
}
public override void Attack()
{ //48 72
}
public override void Draw(SpriteBatch spriteBatch)
{
if (GraphicsComponent.GetCurrentAnimation == "SpiderOnWeb")
{
GraphicsComponent.DrawAnimation(new Rectangle((int)Pos.X, (int)Pos.Y, 48, 72), spriteBatch);
}
else
{
base.Draw(spriteBatch);
}
} }
public override void Death() public override void Death()

View file

@ -0,0 +1,41 @@
using DangerousD.GameCore.Graphics;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
{
public class SpiderWeb : CoreEnemy
{
public SpiderWeb(Vector2 position) : base(position)
{
name = "Web";
monster_speed = 1;
Width = 16;
Height = 0;
acceleration = Vector2.Zero;
}
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "SpiderWeb" }, "SpiderWeb");
public override void Attack()
{
}
public override void Death()
{
}
public override void Move(GameTime gameTime)
{
}
}
}

View file

@ -14,9 +14,13 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
{ {
public Werewolf(Vector2 position) : base(position) public Werewolf(Vector2 position) : base(position)
{ {
name = "Wolf";
monster_speed = 1;
Width = 78;
Height = 96;
} }
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "WolfMoveRight", "WolfMoveLeft", "WolfJumpRight", "WolfJumpLeft" }, ""); protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "WolfMoveRight", "WolfMoveLeft", "WolfJumpRight", "WolfJumpLeft" }, "WolfMoveRight");
public override void Attack() public override void Attack()
{ {

View file

@ -23,4 +23,12 @@ public abstract class LivingEntity : Entity
} }
base.Update(gameTime); base.Update(gameTime);
} }
public virtual void StartCicycleAnimation(string animationName)
{
if (GraphicsComponent.GetCurrentAnimation != animationName)
{
GraphicsComponent.StartAnimation(animationName);
}
}
} }

View file

@ -2,7 +2,7 @@
using DangerousD.GameCore.GameObjects.MapObjects; using DangerousD.GameCore.GameObjects.MapObjects;
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework;
using DangerousD.GameCore.GameObjects.LivingEntities.Monsters; using DangerousD.GameCore.GameObjects.LivingEntities.Monsters;
using System.Collections.Generic;
namespace DangerousD.GameCore.Levels namespace DangerousD.GameCore.Levels
{ {
@ -10,17 +10,18 @@ namespace DangerousD.GameCore.Levels
{ {
public void InitLevel() public void InitLevel()
{ {
<<<<<<< HEAD
var Трава = new GrassBlock(new Vector2(0, 128));
var Death = new TestAnimationDeath(new Vector2(128, 128));
//var Zombie = new Zombie(new Vector2(256, 128));
var Frank = new Frank(new Vector2(384, 128));
var FlameSkull = new FlameSkull(new Vector2(512, 128));
=======
new Player(new Vector2(0,0)); new Player(new Vector2(0,0));
var Zombie = new Zombie(new Vector2(256, 128)); var Spider = new Spider(new Vector2(112, 0));
var Frank = new Frank(new Vector2(384, 128)); var Zombie = new Zombie(new Vector2(256, 0));
var Frank = new Frank(new Vector2(384, 0));
var FlameSkull = new FlameSkull(new Vector2(512, 0));
var Werewolf = new Werewolf(new Vector2(640, 0));
var Ghost = new Ghost(new Vector2(730, 0));
var FrankBalls = new FrankBalls(new Vector2(Frank.Pos.X, Frank.Pos.Y));
//Spider down-up
new GrassBlock(new Vector2(0, 224)); new GrassBlock(new Vector2(0, 224));
for (int i = 0; i < 50; i++) for (int i = 0; i < 50; i++)
@ -28,7 +29,6 @@ namespace DangerousD.GameCore.Levels
new GrassBlock(new Vector2(i*32, 256)); new GrassBlock(new Vector2(i*32, 256));
} }
new GrassBlock(new Vector2(500, 224)); new GrassBlock(new Vector2(500, 224));
>>>>>>> livingEntities
} }
} }
} }