Player List Added + animations

This commit is contained in:
SergoDobro 2024-08-18 15:15:14 +03:00
parent 21a84ec5fa
commit 0336c3095b
25 changed files with 539 additions and 43 deletions

View file

@ -85,18 +85,111 @@
/processorParam:Quality=Best
/build:sounds/Zombi stoit.wav
#begin Textures/Animations/player_down_idle.animation
/copy:Textures/Animations/player_down_idle.animation
#begin Textures/Animations/player_down-left_idle.animation
/copy:Textures/Animations/player_down-left_idle.animation
#begin Textures/Animations/player_down-right_idle.animation
/copy:Textures/Animations/player_down-right_idle.animation
#begin Textures/Animations/player_idle_down_mining.animation
/copy:Textures/Animations/player_idle_down_mining.animation
#begin Textures/Animations/player_idle_down-left_mining.animation
/copy:Textures/Animations/player_idle_down-left_mining.animation
#begin Textures/Animations/player_idle_left_mining.animation
/copy:Textures/Animations/player_idle_left_mining.animation
#begin Textures/Animations/player_idle_rights_mining.animation
/copy:Textures/Animations/player_idle_rights_mining.animation
#begin Textures/Animations/player_idle_top_noweapon.animation
/copy:Textures/Animations/player_idle_top_noweapon.animation
#begin Textures/Animations/player_idle_top-left_mining.animation
/copy:Textures/Animations/player_idle_top-left_mining.animation
#begin Textures/Animations/player_idle_top-right_noweapon.animation
/copy:Textures/Animations/player_idle_top-right_noweapon.animation
#begin Textures/Animations/player_idle_top-rights_mining.animation
/copy:Textures/Animations/player_idle_top-rights_mining.animation
#begin Textures/Animations/player_left_idle.animation
/copy:Textures/Animations/player_left_idle.animation
#begin Textures/Animations/player_look_down_weapon.animation
/copy:Textures/Animations/player_look_down_weapon.animation
#begin Textures/Animations/player_look_down.animation
/copy:Textures/Animations/player_look_down.animation
#begin Textures/Animations/player_look_left_down_weapon.animation
/copy:Textures/Animations/player_look_left_down_weapon.animation
#begin Textures/Animations/player_look_left_down.animation
/copy:Textures/Animations/player_look_left_down.animation
#begin Textures/Animations/player_look_left_up_weapon.animation
/copy:Textures/Animations/player_look_left_up_weapon.animation
#begin Textures/Animations/player_look_left_up.animation
/copy:Textures/Animations/player_look_left_up.animation
#begin Textures/Animations/player_look_left_weapon.animation
/copy:Textures/Animations/player_look_left_weapon.animation
#begin Textures/Animations/player_look_left.animation
/copy:Textures/Animations/player_look_left.animation
#begin Textures/Animations/player_look_right_down_weapon.animation
/copy:Textures/Animations/player_look_right_down_weapon.animation
#begin Textures/Animations/player_look_right_down.animation
/copy:Textures/Animations/player_look_right_down.animation
#begin Textures/Animations/player_look_right_up_weapon.animation
/copy:Textures/Animations/player_look_right_up_weapon.animation
#begin Textures/Animations/player_look_right_up.animation
/copy:Textures/Animations/player_look_right_up.animation
#begin Textures/Animations/player_look_right_weapon.animation
/copy:Textures/Animations/player_look_right_weapon.animation
#begin Textures/Animations/player_look_right.animation
/copy:Textures/Animations/player_look_right.animation
#begin Textures/Animations/player_look_up_weapon.animation
/copy:Textures/Animations/player_look_up_weapon.animation
#begin Textures/Animations/player_look_up.animation
/copy:Textures/Animations/player_look_up.animation
#begin Textures/Animations/player_right_idle.animation
/copy:Textures/Animations/player_right_idle.animation
#begin Textures/Animations/player_running_top_rotate.animation
/copy:Textures/Animations/player_running_top_rotate.animation
#begin Textures/Animations/player_top_mining.animation
/copy:Textures/Animations/player_top_mining.animation
#begin Textures/Animations/player_top-left_idle.animation
/copy:Textures/Animations/player_top-left_idle.animation
#begin Textures/Animations/player_top-right_idle.animation
/copy:Textures/Animations/player_top-right_idle.animation
#begin Textures/Animations/running_top.animation
/copy:Textures/Animations/running_top.animation
#begin Textures/Animations/testAnimation.animation
/copy:Textures/Animations/testAnimation.animation
#begin Textures/Animations/testAnimationExample.animation
/copy:Textures/Animations/testAnimationExample.animation
@ -580,15 +673,3 @@
/processorParam:TextureFormat=Color
/build:Textures/TileSets/TilesetFloor.png
#begin Textures/TileSets/TilesetFloor.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Textures/TileSets/TilesetFloor.png

View file

@ -0,0 +1,21 @@
{
"id": "player_down-left_idle",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 560,
"Width": 92,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,20 @@
{
"id": "player_down-right_idle",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 358,
"Width": 92,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,20 @@
{
"id": "player_down_idle",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 464,
"Width": 92,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_idle_down-left_mining",
"textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
"startSpriteRectangle": {
"X": 0,
"Y": 776,
"Width": 196,
"Height": 194
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 13,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_idle_down_mining",
"textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
"startSpriteRectangle": {
"X": 0,
"Y": 582,
"Width": 196,
"Height": 194
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 13,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_idle_left_mining",
"textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
"startSpriteRectangle": {
"X": 0,
"Y": 1358,
"Width": 196,
"Height": 194
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 13,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_idle_rights_mining",
"textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
"startSpriteRectangle": {
"X": 0,
"Y": 388,
"Width": 196,
"Height": 194
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 13,
"isCycle": false,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_idle_top-left_mining",
"textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
"startSpriteRectangle": {
"X": 0,
"Y": 1552,
"Width": 196,
"Height": 194
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 13,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,20 @@
{
"id": "player_idle_top-rights_mining",
"textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
"startSpriteRectangle": {
"X": 0,
"Y": 194,
"Width": 196,
"Height": 194
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 13,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_left_idle",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 696,
"Width": 92,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -1 +1,20 @@
{"id":"player_look_down","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":464,"Width":92,"Height":116},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
{
"id": "player_look_down",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 464,
"Width": 92,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -1 +1,20 @@
{"id":"player_look_left_down_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":640,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
{
"id": "player_look_left_down_weapon",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle_gun",
"startSpriteRectangle": {
"X": 0,
"Y": 640,
"Width": 110,
"Height": 128
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -1 +1,20 @@
{"id":"player_look_left_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":768,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
{
"id": "player_look_left_weapon",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle_gun",
"startSpriteRectangle": {
"X": 0,
"Y": 768,
"Width": 110,
"Height": 128
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_right_idle",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 232,
"Width": 92,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_top-left_idle",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 812,
"Width": 92,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_top-right_idle",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 116,
"Width": 92,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 22,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "player_top_mining",
"textureName": "Textures/AnimationTextures/Character/hr-level1_mining_tool-1",
"startSpriteRectangle": {
"X": 0,
"Y": 0,
"Width": 196,
"Height": 194
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 13,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -0,0 +1,21 @@
{
"id": "testAnimation",
"textureName": "Textures/AnimationTextures/Character/hr-level1_idle",
"startSpriteRectangle": {
"X": 0,
"Y": 0,
"Width": 53,
"Height": 116
},
"frameSecond": [
{
"Item1": 0,
"Item2": 5
}
],
"textureFrameInterval": 0,
"framesCount": 11,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -1 +1,20 @@
{"id":"testAnimationExample","textureName":"Textures/AnimationTextures/unicorn","startSpriteRectangle":{"X":0,"Y":0,"Width":400,"Height":400},"frameSecond":[{"Item1":0,"Item2":1}],"textureFrameInterval":1,"framesCount":1,"isCycle":true,"offset":"0, 0"}
{
"id": "testAnimationExample",
"textureName": "Textures/AnimationTextures/unicorn",
"startSpriteRectangle": {
"X": 0,
"Y": 0,
"Width": 400,
"Height": 400
},
"frameSecond": [
{
"Item1": 0,
"Item2": 1
}
],
"textureFrameInterval": 1,
"framesCount": 1,
"isCycle": true,
"offset": "0, 0"
}

View file

@ -42,10 +42,14 @@ namespace ZoFo.GameCore
// Подписка на действия инпутменеджера.
// Отправляются данные апдейтса с обновлением инпута
AppManager.Instance.InputManager.ActionEvent += () => networkManager.AddData(new UpdateInput(){
InputMovementDirection = AppManager.Instance.InputManager.InputMovementDirection,
InputAttackDirection = AppManager.Instance.InputManager.InputAttackDirection
});
AppManager.Instance.InputManager.ActionEvent += () =>
{
networkManager.AddData(new UpdateInput()
{
InputMovementDirection = AppManager.Instance.InputManager.InputMovementDirection,
InputAttackDirection = AppManager.Instance.InputManager.InputAttackDirection
});
};
}
public void OnDataSend(string data)
@ -71,6 +75,7 @@ namespace ZoFo.GameCore
List<MapObject> mapObjects = new List<MapObject>();
List<GameObject> gameObjects = new List<GameObject>();
List<Player> players = new List<Player>();
List<StopObject> stopObjects = new List<StopObject>();
/// <summary>
/// Клиент должен обнговлять игру анимаций
@ -125,12 +130,18 @@ namespace ZoFo.GameCore
}
else if (update is UpdateGameObjectCreated)
{
GameObject created_gameObject;
if ((update as UpdateGameObjectCreated).GameObjectType == "EntittyForAnimationTests")
gameObjects.Add(new EntittyForAnimationTests((update as UpdateGameObjectCreated).position));
if ((update as UpdateGameObjectCreated).GameObjectType == "Player")
gameObjects.Add(new Player((update as UpdateGameObjectCreated).position));
{
created_gameObject = new Player((update as UpdateGameObjectCreated).position);
players.Add(created_gameObject as Player);
gameObjects.Add(created_gameObject);
}
if ((update as UpdateGameObjectCreated).GameObjectType == "Ammo")
gameObjects.Add(new Ammo((update as UpdateGameObjectCreated).position)) if ((update as UpdateGameObjectCreated).GameObjectType == "Zombie")
gameObjects.Add(new Ammo((update as UpdateGameObjectCreated).position));
if ((update as UpdateGameObjectCreated).GameObjectType == "Zombie")
gameObjects.Add(new Zombie((update as UpdateGameObjectCreated).position));

View file

@ -11,7 +11,7 @@ namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies
{
class Zombie : Enemy
{
public override GraphicsComponent graphicsComponent { get; } = new("Textures/icons/8");
public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent("Textures/icons/8");
public Zombie(Vector2 position) : base(position)
{
health = 5;
@ -22,7 +22,9 @@ namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies
public override void Update()
{
Vector2 duration = Vector2.Normalize(new Vector2(600 - position.X, 500 - position.Y));
Vector2 duration = Vector2.Normalize(
AppManager.Instance.server.players[0].position - position
);
velocity=new Vector2(duration.X * speed, duration.Y*speed);
if(position.X>595 && 605>position.X && position.Y>495 && 505>position.Y)
{

View file

@ -21,7 +21,7 @@ public class Player : LivingEntity
public bool IsTryingToShoot { get; set; }
private float speed;
private int health;
public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List<string> { "player_running_top_rotate" }, "player_running_top_rotate");
public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List<string> { "player_look_down" }, "player_look_down");
private LootData lootData;
public Player(Vector2 position) : base(position)
{

View file

@ -17,12 +17,20 @@ namespace ZoFo.GameCore.Graphics
StreamReader reader;
foreach (var fileName in animationFilesNames)
{
if (!fileName.EndsWith(".animation")) continue;
reader = new StreamReader(fileName);
string json = reader.ReadToEnd();
AnimationContainer animation = JsonConvert.DeserializeObject<AnimationContainer>(json);
Animations.Add(animation);
reader.Close();
try
{
if (!fileName.EndsWith(".animation")) continue;
reader = new StreamReader(fileName);
string json = reader.ReadToEnd();
AnimationContainer animation = JsonConvert.DeserializeObject<AnimationContainer>(json);
Animations.Add(animation);
reader.Close();
}
catch
{
}
}
}

View file

@ -124,6 +124,7 @@ namespace ZoFo.GameCore
collisionManager = new CollisionManager();
gameObjects = new List<GameObject>();
entities = new List<Entity>();
players = new List<Player>();
new MapManager().LoadMap();
AppManager.Instance.server.RegisterGameObject(new EntittyForAnimationTests(new Vector2(0, 0)));
@ -143,8 +144,9 @@ namespace ZoFo.GameCore
networkManager.CloseConnection();
}
private List<GameObject> gameObjects = new List<GameObject>();
private List<Entity> entities; //entity
public List<GameObject> gameObjects;
public List<Entity> entities; //entity
public List<Player> players;
public void Update(GameTime gameTime)
{
if (ticks == 3) //ОБРАБАТЫВАЕТСЯ 20 РАЗ В СЕКУНДУ
@ -198,11 +200,11 @@ namespace ZoFo.GameCore
});//TODO
return;
}
if (gameObject is Entity)
if (gameObject is Entity entity)
{
AddData(new UpdateGameObjectCreated() { GameObjectType = gameObject.GetType().Name, IdEntity = (gameObject as Entity).Id,
AddData(new UpdateGameObjectCreated() { GameObjectType = gameObject.GetType().Name, IdEntity = entity.Id,
position = gameObject.position});
collisionManager.Register((gameObject as Entity).collisionComponent);
collisionManager.Register(entity.collisionComponent);
}
else
AddData(new UpdateGameObjectCreated() { GameObjectType = gameObject.GetType().Name,
@ -210,6 +212,10 @@ namespace ZoFo.GameCore
});
if (gameObject is Player)
{
players.Add(gameObject as Player);
}
////var elems = gameObject.GetType().GetProperties(System.Reflection.BindingFlags.Public);
////if (elems.Count()>0) TODO
////{