Merge branch 'FixingDevelopment' into PlayerMovement
20
.run/ZoFo.run.xml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="ZoFo" type="DotNetProject" factoryName=".NET Project">
|
||||||
|
<option name="EXE_PATH" value="$PROJECT_DIR$/ZoFo/bin/Debug/net8.0/ZoFo" />
|
||||||
|
<option name="PROGRAM_PARAMETERS" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/ZoFo/bin/Debug/net8.0" />
|
||||||
|
<option name="PASS_PARENT_ENVS" value="1" />
|
||||||
|
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||||
|
<option name="USE_MONO" value="0" />
|
||||||
|
<option name="RUNTIME_ARGUMENTS" value="" />
|
||||||
|
<option name="PROJECT_PATH" value="$PROJECT_DIR$/ZoFo/ZoFo.csproj" />
|
||||||
|
<option name="PROJECT_EXE_PATH_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_ARGUMENTS_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" />
|
||||||
|
<option name="PROJECT_KIND" value="DotNetCore" />
|
||||||
|
<option name="PROJECT_TFM" value="net8.0" />
|
||||||
|
<method v="2">
|
||||||
|
<option name="Build" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
</component>
|
|
@ -1,13 +1,11 @@
|
||||||
using DangerousD.GameCore.Graphics;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework;
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using NativeFileDialogSharp;
|
using NativeFileDialogSharp;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection.Metadata;
|
using System.Reflection.Metadata;
|
||||||
using Zofo.GameCore.ZoFo_grafics;
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
namespace AnimationsFileCreator
|
namespace AnimationsFileCreator
|
||||||
{
|
{
|
||||||
class Program
|
class Program
|
||||||
|
|
79
MonogameLibrary/UI/Elements/ItemDisplayLabel.cs
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using MonogameLibrary.UI.Base;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using MonogameLibrary.UI.Enums;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using Microsoft.Xna.Framework.Content;
|
||||||
|
|
||||||
|
namespace MonogameLibrary.UI.Elements;
|
||||||
|
|
||||||
|
public class ItemDisplayLabel : DrawableUIElement
|
||||||
|
{
|
||||||
|
public int count;
|
||||||
|
public string itemTextureName;
|
||||||
|
private Texture2D itemTexture;
|
||||||
|
public Color fontColor1;
|
||||||
|
protected UIManager Manager;
|
||||||
|
public string fontName1;
|
||||||
|
public string text1;
|
||||||
|
public float scale1;
|
||||||
|
private DrawableUIElement icon;
|
||||||
|
|
||||||
|
|
||||||
|
public ItemDisplayLabel(UIManager manager) : base(manager)
|
||||||
|
{
|
||||||
|
Manager = manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize()
|
||||||
|
{
|
||||||
|
icon = new DrawableUIElement(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(rectangle.X + rectangle.Height / 3 / 2, rectangle.Y + rectangle.Height / 3 / 2, rectangle.Height / 3 * 2, rectangle.Height / 3 * 2),
|
||||||
|
mainColor = Color.White, textureName = itemTextureName
|
||||||
|
};
|
||||||
|
Label itemName = new Label(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(rectangle.X + rectangle.Height / 3 / 2 + rectangle.Height / 3 * 2, rectangle.Y + rectangle.Height / 3 / 2, rectangle.Width / 3, rectangle.Height / 3 * 2),
|
||||||
|
fontColor = fontColor1, text = text1, scale = scale1, fontName = fontName1, mainColor = Color.Transparent
|
||||||
|
};
|
||||||
|
Label itemCount = new Label(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(rectangle.X + rectangle.Width - (int)(rectangle.Height / 3 * 2.5), rectangle.Y + rectangle.Height / 3 / 2, rectangle.Height / 3 * 2, rectangle.Height / 3 * 2),
|
||||||
|
fontColor = fontColor1, text = count.ToString(), scale = scale1, fontName = fontName1, mainColor = Color.Transparent
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadTexture(ContentManager content)
|
||||||
|
{
|
||||||
|
icon.LoadTexture(content);
|
||||||
|
base.LoadTexture(content);
|
||||||
|
if (itemTextureName == "")
|
||||||
|
{
|
||||||
|
itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
|
||||||
|
itemTexture.SetData<Color>(new Color[] { mainColor });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
itemTexture = content.Load<Texture2D>(itemTextureName);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
|
||||||
|
itemTexture.SetData<Color>(new Color[] { mainColor });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch _spriteBatch)
|
||||||
|
{
|
||||||
|
base.Draw(_spriteBatch);
|
||||||
|
}
|
||||||
|
}
|
79
MonogameLibrary/UI/Elements/itemDisplayButton.cs
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using MonogameLibrary.UI.Base;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using MonogameLibrary.UI.Enums;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using Microsoft.Xna.Framework.Content;
|
||||||
|
|
||||||
|
namespace MonogameLibrary.UI.Elements;
|
||||||
|
|
||||||
|
public class ItemDisplayButton : DrawableUIElement
|
||||||
|
{
|
||||||
|
public int count;
|
||||||
|
public string itemTextureName;
|
||||||
|
private Texture2D itemTexture;
|
||||||
|
public Color fontColor1;
|
||||||
|
protected UIManager Manager;
|
||||||
|
public string fontName1;
|
||||||
|
public string text1;
|
||||||
|
public float scale1;
|
||||||
|
private DrawableUIElement icon;
|
||||||
|
|
||||||
|
|
||||||
|
public ItemDisplayButton(UIManager manager) : base(manager)
|
||||||
|
{
|
||||||
|
Manager = manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize()
|
||||||
|
{
|
||||||
|
icon = new DrawableUIElement(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(rectangle.X + rectangle.Height / 3 / 2, rectangle.Y + rectangle.Height / 3 / 2, rectangle.Height / 3 * 2, rectangle.Height / 3 * 2),
|
||||||
|
mainColor = Color.White, textureName = itemTextureName
|
||||||
|
};
|
||||||
|
Label itemName = new Label(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(rectangle.X + rectangle.Height / 3 / 2 + rectangle.Height / 3 * 2, rectangle.Y + rectangle.Height / 3 / 2, rectangle.Width / 3, rectangle.Height / 3 * 2),
|
||||||
|
fontColor = fontColor1, text = text1, scale = scale1, fontName = fontName1, mainColor = Color.Transparent
|
||||||
|
};
|
||||||
|
Label itemCount = new Label(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(rectangle.X + rectangle.Width - (int)(rectangle.Height / 3 * 2.5), rectangle.Y + rectangle.Height / 3 / 2, rectangle.Height / 3 * 2, rectangle.Height / 3 * 2),
|
||||||
|
fontColor = fontColor1, text = count.ToString(), scale = scale1, fontName = fontName1, mainColor = Color.Transparent
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadTexture(ContentManager content)
|
||||||
|
{
|
||||||
|
icon.LoadTexture(content);
|
||||||
|
base.LoadTexture(content);
|
||||||
|
if (itemTextureName == "")
|
||||||
|
{
|
||||||
|
itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
|
||||||
|
itemTexture.SetData<Color>(new Color[] { mainColor });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
itemTexture = content.Load<Texture2D>(itemTextureName);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
itemTexture = new Texture2D(Manager.GraphicsDevice, 1, 1);
|
||||||
|
itemTexture.SetData<Color>(new Color[] { mainColor });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch _spriteBatch)
|
||||||
|
{
|
||||||
|
base.Draw(_spriteBatch);
|
||||||
|
}
|
||||||
|
}
|
|
@ -85,21 +85,111 @@
|
||||||
/processorParam:Quality=Best
|
/processorParam:Quality=Best
|
||||||
/build:sounds/Zombi stoit.wav
|
/build:sounds/Zombi stoit.wav
|
||||||
|
|
||||||
#begin Textures/Animations/player_idle_rotate_weapon.animation
|
#begin Textures/Animations/player_down_idle.animation
|
||||||
/copy:Textures/Animations/player_idle_rotate_weapon.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
|
#begin Textures/Animations/player_idle_top_noweapon.animation
|
||||||
/copy: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
|
#begin Textures/Animations/player_idle_top-right_noweapon.animation
|
||||||
/copy: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
|
#begin Textures/Animations/player_running_top_rotate.animation
|
||||||
/copy: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
|
#begin Textures/Animations/running_top.animation
|
||||||
/copy: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
|
#begin Textures/Animations/testAnimationExample.animation
|
||||||
/copy:Textures/Animations/testAnimationExample.animation
|
/copy:Textures/Animations/testAnimationExample.animation
|
||||||
|
|
||||||
|
@ -355,7 +445,7 @@
|
||||||
/processorParam:TextureFormat=Color
|
/processorParam:TextureFormat=Color
|
||||||
/build:Textures/GUI/switch.png
|
/build:Textures/GUI/switch.png
|
||||||
|
|
||||||
#begin Textures/TileSetImages/TilesetFloor.png
|
#begin Textures/icons/12.png
|
||||||
/importer:TextureImporter
|
/importer:TextureImporter
|
||||||
/processor:TextureProcessor
|
/processor:TextureProcessor
|
||||||
/processorParam:ColorKeyColor=255,0,255,255
|
/processorParam:ColorKeyColor=255,0,255,255
|
||||||
|
@ -365,5 +455,221 @@
|
||||||
/processorParam:ResizeToPowerOfTwo=False
|
/processorParam:ResizeToPowerOfTwo=False
|
||||||
/processorParam:MakeSquare=False
|
/processorParam:MakeSquare=False
|
||||||
/processorParam:TextureFormat=Color
|
/processorParam:TextureFormat=Color
|
||||||
/build:Textures/TileSetImages/TilesetFloor.png
|
/build:Textures/icons/12.png
|
||||||
|
|
||||||
|
#begin Textures/icons/13.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/icons/13.png
|
||||||
|
|
||||||
|
#begin Textures/icons/14.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/icons/14.png
|
||||||
|
|
||||||
|
#begin Textures/icons/21.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/icons/21.png
|
||||||
|
|
||||||
|
#begin Textures/icons/22.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/icons/22.png
|
||||||
|
|
||||||
|
#begin Textures/icons/5.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/icons/5.png
|
||||||
|
|
||||||
|
#begin Textures/icons/6.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/icons/6.png
|
||||||
|
|
||||||
|
#begin Textures/icons/7.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/icons/7.png
|
||||||
|
|
||||||
|
#begin Textures/icons/8.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/icons/8.png
|
||||||
|
|
||||||
|
#begin Textures/icons/9.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/icons/9.png
|
||||||
|
|
||||||
|
#begin Textures/Test/pickaxe.webp
|
||||||
|
/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/Test/pickaxe.webp
|
||||||
|
|
||||||
|
#begin Textures/Test/rock.jpg
|
||||||
|
/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/Test/rock.jpg
|
||||||
|
|
||||||
|
#begin Textures/Test/steel.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/Test/steel.png
|
||||||
|
|
||||||
|
#begin Textures/Test/wood.jpg
|
||||||
|
/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/Test/wood.jpg
|
||||||
|
|
||||||
|
#begin Textures/TileSets/Tilelist1.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/Tilelist1.png
|
||||||
|
|
||||||
|
#begin Textures/TileSets/Tilelist2.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/Tilelist2.png
|
||||||
|
|
||||||
|
#begin Textures/TileSets/Tilelist3.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/Tilelist3.png
|
||||||
|
|
||||||
|
#begin Textures/TileSets/Tilelist4.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/Tilelist4.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
|
||||||
|
|
||||||
|
|
|
@ -3,24 +3,28 @@
|
||||||
"height": 4300,
|
"height": 4300,
|
||||||
"width": 2
|
"width": 2
|
||||||
},
|
},
|
||||||
"activeFile": "TileSets/TileSet 1.tsj",
|
"activeFile": "TileMaps/main.tmj",
|
||||||
"expandedProjectPaths": [
|
"expandedProjectPaths": [
|
||||||
".",
|
".",
|
||||||
"TileMaps",
|
"TileSets",
|
||||||
"TileSets"
|
"TileMaps"
|
||||||
],
|
],
|
||||||
"fileStates": {
|
"fileStates": {
|
||||||
"TileMaps/TileSets/TileSet 1.tsj": {
|
"TileMaps/TileSets/TileSet 1.tsj": {
|
||||||
"scaleInDock": 1
|
"scaleInDock": 1
|
||||||
},
|
},
|
||||||
"TileMaps/main.tmj": {
|
"TileMaps/main.tmj": {
|
||||||
"scale": 0.25,
|
"scale": 0.75,
|
||||||
"selectedLayer": 0,
|
"selectedLayer": 0,
|
||||||
"viewCenter": {
|
"viewCenter": {
|
||||||
"x": 3078,
|
"x": 578,
|
||||||
"y": 2164
|
"y": 482.66666666666674
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"TileSets/CollisionTileSet.tsj": {
|
||||||
|
"scaleInDock": 0.75,
|
||||||
|
"scaleInEditor": 1
|
||||||
|
},
|
||||||
"TileSets/TileSet 1.tsj": {
|
"TileSets/TileSet 1.tsj": {
|
||||||
"scaleInDock": 1,
|
"scaleInDock": 1,
|
||||||
"scaleInEditor": 1.5
|
"scaleInEditor": 1.5
|
||||||
|
@ -33,14 +37,15 @@
|
||||||
"last.imagePath": "D:/C#/Я смотрел ваши ХАКАТОНЫ/ZoFo/ZoFo/Content/Textures/TileSetImages",
|
"last.imagePath": "D:/C#/Я смотрел ваши ХАКАТОНЫ/ZoFo/ZoFo/Content/Textures/TileSetImages",
|
||||||
"openFiles": [
|
"openFiles": [
|
||||||
"TileSets/TileSet 1.tsj",
|
"TileSets/TileSet 1.tsj",
|
||||||
"TileSets/WallSet.tsj",
|
"TileMaps/main.tmj",
|
||||||
"TileMaps/main.tmj"
|
"TileSets/CollisionTileSet.tsj"
|
||||||
],
|
],
|
||||||
"project": "MapSession.tiled-project",
|
"project": "MapSession.tiled-project",
|
||||||
"recentFiles": [
|
"recentFiles": [
|
||||||
"TileSets/WallSet.tsj",
|
|
||||||
"TileMaps/main.tmj",
|
"TileMaps/main.tmj",
|
||||||
"TileSets/TileSet 1.tsj"
|
"TileSets/TileSet 1.tsj",
|
||||||
|
"TileSets/CollisionTileSet.tsj",
|
||||||
|
"TileSets/WallSet.tsj"
|
||||||
],
|
],
|
||||||
"tileset.lastUsedFormat": "json",
|
"tileset.lastUsedFormat": "json",
|
||||||
"tileset.margin": 2,
|
"tileset.margin": 2,
|
||||||
|
|
|
@ -5,44 +5,44 @@
|
||||||
{
|
{
|
||||||
"chunks":[
|
"chunks":[
|
||||||
{
|
{
|
||||||
"data":[24, 50, 51, 24, 24, 24, 28, 29, 24, 24, 28, 46, 29, 24, 24, 50,
|
"data":[28, 46, 29, 24, 24, 28, 46, 29, 24, 90, 24, 24, 50, 51, 24, 24,
|
||||||
24, 28, 46, 46, 29, 24, 50, 51, 24, 90, 25, 111, 23, 28, 29, 89,
|
50, 2, 32, 46, 29, 50, 2, 32, 29, 24, 90, 24, 89, 24, 24, 24,
|
||||||
29, 50, 2, 2, 51, 24, 24, 28, 29, 28, 10, 3, 23, 25, 23, 89,
|
89, 28, 10, 3, 23, 24, 24, 25, 23, 24, 24, 24, 28, 29, 89, 24,
|
||||||
23, 90, 24, 24, 24, 24, 24, 25, 23, 50, 32, 10, 32, 47, 23, 89,
|
24, 25, 23, 50, 32, 29, 24, 25, 23, 28, 29, 24, 50, 51, 28, 29,
|
||||||
51, 24, 24, 24, 28, 29, 24, 50, 51, 24, 50, 51, 50, 2, 51, 24,
|
24, 25, 23, 24, 50, 51, 24, 50, 51, 50, 51, 24, 24, 24, 50, 32,
|
||||||
28, 46, 29, 24, 50, 51, 24, 24, 24, 24, 28, 46, 46, 46, 29, 89,
|
24, 25, 23, 24, 24, 89, 24, 24, 24, 24, 24, 24, 24, 24, 28, 47,
|
||||||
50, 2, 51, 24, 24, 24, 24, 28, 29, 24, 50, 2, 2, 2, 51, 89,
|
24, 50, 32, 46, 29, 90, 24, 579, 29, 24, 89, 89, 24, 24, 25, 579,
|
||||||
24, 24, 28, 29, 24, 89, 24, 50, 32, 29, 24, 90, 24, 24, 24, 24,
|
29, 24, 25, 114, 45, 29, 24, 25, 23, 90, 24, 24, 24, 89, 50, 51,
|
||||||
24, 89, 25, 23, 24, 90, 24, 24, 50, 51, 24, 24, 24, 24, 24, 24,
|
51, 89, 50, 3, 115, 23, 24, 25, 23, 89, 28, 29, 24, 24, 24, 89,
|
||||||
89, 24, 25, 23, 24, 24, 24, 24, 24, 24, 24, 24, 28, 46, 29, 24,
|
24, 24, 24, 25, 111, 23, 90, 50, 51, 24, 50, 32, 46, 29, 24, 24,
|
||||||
24, 24, 25, 23, 24, 28, 46, 29, 24, 89, 28, 29, 25, 111, 45, 29,
|
24, 90, 24, 50, 2, 51, 28, 46, 46, 29, 24, 50, 2, 51, 24, 24,
|
||||||
24, 24, 50, 51, 89, 50, 3, 45, 29, 24, 50, 51, 50, 2, 3, 45,
|
24, 89, 24, 24, 28, 29, 50, 2, 2, 51, 24, 90, 24, 24, 89, 24,
|
||||||
24, 90, 24, 24, 24, 24, 50, 2, 32, 29, 24, 24, 24, 24, 25, 1,
|
46, 29, 28, 46, 10, 32, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24,
|
||||||
24, 89, 24, 24, 24, 24, 89, 24, 50, 51, 24, 24, 24, 24, 50, 32,
|
2, 51, 50, 2, 51, 50, 51, 24, 89, 24, 24, 90, 24, 24, 89, 90,
|
||||||
29, 90, 90, 24, 24, 89, 24, 24, 24, 24, 24, 24, 28, 29, 24, 50,
|
24, 28, 46, 29, 24, 24, 24, 24, 89, 24, 24, 24, 24, 24, 89, 24,
|
||||||
32, 29, 24, 24, 90, 24, 24, 24, 24, 24, 24, 24, 25, 45, 29, 24],
|
29, 50, 3, 23, 24, 90, 28, 29, 24, 24, 24, 24, 24, 90, 28, 46],
|
||||||
"height":16,
|
"height":16,
|
||||||
"width":16,
|
"width":16,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data":[51, 28, 46, 29, 24, 24, 24, 24, 24, 50, 2, 51, 24, 24, 24, 24,
|
"data":[90, 24, 24, 24, 24, 24, 24, 24, 24, 90, 24, 89, 24, 24, 24, 24,
|
||||||
24, 50, 2, 51, 28, 29, 24, 24, 24, 28, 29, 89, 24, 28, 46, 29,
|
28, 29, 24, 24, 24, 24, 24, 24, 90, 24, 89, 24, 24, 24, 24, 24,
|
||||||
89, 24, 90, 24, 50, 32, 29, 24, 28, 10, 51, 24, 24, 25, 1, 51,
|
50, 51, 24, 24, 89, 24, 24, 24, 24, 24, 24, 24, 24, 28, 29, 24,
|
||||||
90, 24, 24, 24, 28, 10, 51, 90, 25, 45, 46, 29, 24, 25, 23, 89,
|
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 23, 28,
|
||||||
24, 28, 29, 28, 10, 32, 29, 28, 10, 2, 2, 51, 24, 50, 51, 24,
|
46, 29, 24, 24, 24, 24, 24, 28, 29, 24, 24, 24, 90, 50, 32, 47,
|
||||||
24, 50, 32, 10, 51, 50, 51, 25, 45, 46, 29, 24, 24, 90, 24, 24,
|
115, 23, 24, 24, 24, 24, 24, 25, 23, 28, 29, 24, 24, 89, 50, 3,
|
||||||
24, 24, 50, 32, 46, 29, 24, 50, 2, 2, 32, 29, 24, 24, 24, 24,
|
3, 45, 46, 29, 24, 24, 24, 50, 51, 50, 51, 89, 24, 24, 28, 47,
|
||||||
24, 24, 24, 50, 2, 32, 29, 24, 24, 24, 50, 51, 24, 24, 24, 24,
|
50, 2, 2, 32, 29, 24, 24, 24, 90, 24, 24, 24, 24, 24, 25, 1,
|
||||||
24, 24, 24, 24, 24, 25, 23, 90, 24, 89, 24, 28, 29, 24, 24, 28,
|
24, 24, 24, 25, 23, 24, 24, 24, 89, 24, 24, 90, 24, 24, 50, 51,
|
||||||
28, 46, 29, 24, 24, 50, 51, 24, 24, 24, 24, 50, 32, 29, 24, 25,
|
89, 24, 24, 25, 23, 24, 24, 24, 24, 24, 28, 29, 24, 24, 24, 90,
|
||||||
50, 2, 51, 28, 29, 28, 46, 29, 24, 24, 89, 24, 25, 45, 46, 10,
|
24, 24, 24, 50, 32, 29, 24, 24, 28, 46, 47, 23, 24, 24, 24, 24,
|
||||||
29, 24, 24, 50, 32, 10, 2, 51, 24, 24, 24, 24, 50, 2, 2, 51,
|
24, 24, 24, 90, 50, 51, 90, 24, 50, 3, 1, 51, 28, 29, 28, 46,
|
||||||
51, 24, 28, 29, 50, 51, 28, 46, 29, 24, 24, 24, 24, 24, 90, 28,
|
24, 89, 28, 46, 46, 29, 24, 24, 24, 50, 51, 28, 10, 51, 50, 2,
|
||||||
29, 24, 25, 23, 24, 24, 50, 2, 32, 29, 24, 24, 89, 24, 89, 50,
|
24, 90, 25, 1, 2, 51, 28, 46, 46, 46, 46, 10, 51, 24, 24, 24,
|
||||||
51, 24, 50, 51, 24, 24, 24, 24, 50, 32, 29, 89, 90, 24, 24, 24,
|
24, 24, 50, 32, 29, 28, 10, 2, 2, 3, 1, 32, 29, 24, 24, 24,
|
||||||
24, 24, 24, 24, 24, 28, 29, 24, 24, 25, 23, 24, 24, 28, 46, 29],
|
29, 24, 24, 25, 45, 47, 23, 24, 24, 50, 51, 25, 45, 29, 24, 24],
|
||||||
"height":16,
|
"height":16,
|
||||||
"width":16,
|
"width":16,
|
||||||
"x":16,
|
"x":16,
|
||||||
|
@ -52,19 +52,19 @@
|
||||||
"data":[24, 24, 50, 51, 24, 50, 2, 51, 24, 28, 47, 1, 51, 25, 111, 45,
|
"data":[24, 24, 50, 51, 24, 50, 2, 51, 24, 28, 47, 1, 51, 25, 111, 45,
|
||||||
24, 24, 28, 29, 24, 24, 24, 28, 29, 25, 111, 23, 24, 50, 2, 2,
|
24, 24, 28, 29, 24, 24, 24, 28, 29, 25, 111, 23, 24, 50, 2, 2,
|
||||||
28, 46, 10, 51, 28, 29, 24, 25, 23, 50, 2, 51, 24, 24, 28, 29,
|
28, 46, 10, 51, 28, 29, 24, 25, 23, 50, 2, 51, 24, 24, 28, 29,
|
||||||
50, 2, 51, 90, 50, 32, 29, 50, 32, 46, 29, 24, 24, 24, 25, 23,
|
10, 2, 51, 90, 50, 32, 29, 50, 32, 46, 29, 24, 24, 24, 25, 23,
|
||||||
89, 24, 24, 24, 90, 50, 51, 24, 25, 114, 23, 24, 90, 24, 25, 23,
|
23, 24, 24, 24, 90, 50, 51, 24, 25, 114, 23, 24, 90, 24, 25, 23,
|
||||||
24, 28, 29, 24, 24, 28, 29, 89, 50, 2, 51, 24, 24, 24, 25, 23,
|
23, 28, 29, 24, 24, 28, 29, 89, 50, 2, 51, 24, 24, 24, 25, 23,
|
||||||
24, 50, 51, 28, 46, 10, 51, 24, 24, 24, 90, 24, 24, 24, 50, 32,
|
23, 50, 51, 28, 46, 10, 51, 24, 24, 24, 90, 24, 24, 24, 50, 32,
|
||||||
24, 24, 90, 50, 2, 32, 29, 28, 46, 29, 28, 46, 29, 24, 90, 50,
|
51, 24, 90, 50, 2, 32, 29, 28, 46, 29, 28, 46, 29, 24, 90, 50,
|
||||||
46, 29, 24, 90, 24, 25, 45, 47, 1, 51, 50, 2, 32, 46, 29, 89,
|
28, 29, 24, 90, 24, 25, 45, 47, 1, 51, 50, 2, 32, 46, 29, 89,
|
||||||
115, 45, 29, 24, 24, 50, 2, 2, 32, 29, 24, 24, 50, 3, 23, 24,
|
25, 45, 29, 24, 24, 50, 2, 2, 32, 29, 24, 24, 50, 3, 23, 24,
|
||||||
2, 2, 51, 24, 24, 24, 24, 24, 50, 32, 46, 29, 24, 50, 51, 24,
|
50, 2, 51, 24, 24, 24, 24, 24, 50, 32, 46, 29, 24, 50, 51, 24,
|
||||||
89, 24, 28, 29, 89, 24, 24, 24, 24, 25, 111, 23, 24, 28, 29, 24,
|
29, 24, 28, 29, 89, 24, 24, 24, 24, 25, 111, 23, 24, 28, 29, 24,
|
||||||
46, 29, 25, 23, 89, 28, 46, 29, 24, 25, 115, 23, 24, 25, 23, 24,
|
32, 29, 25, 23, 89, 28, 46, 29, 24, 25, 115, 23, 24, 25, 23, 24,
|
||||||
2, 32, 47, 45, 46, 10, 2, 32, 46, 10, 2, 51, 24, 25, 23, 89,
|
50, 32, 47, 45, 46, 10, 2, 32, 46, 10, 2, 51, 24, 25, 23, 89,
|
||||||
24, 50, 2, 3, 1, 32, 46, 10, 2, 51, 89, 24, 89, 50, 51, 24,
|
24, 50, 2, 3, 1, 32, 46, 10, 2, 51, 89, 24, 89, 50, 51, 24,
|
||||||
90, 28, 46, 47, 23, 50, 3, 23, 24, 24, 90, 24, 28, 46, 46, 29],
|
24, 28, 46, 47, 23, 50, 3, 23, 24, 24, 90, 24, 28, 46, 46, 29],
|
||||||
"height":16,
|
"height":16,
|
||||||
"width":16,
|
"width":16,
|
||||||
"x":32,
|
"x":32,
|
||||||
|
@ -181,7 +181,7 @@
|
||||||
"y":0
|
"y":0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data":[50, 51, 24, 24, 24, 24, 28, 46, 29, 24, 89, 28, 10, 2, 51, 28,
|
"data":[51, 24, 50, 51, 24, 24, 25, 45, 29, 24, 24, 28, 29, 24, 50, 3,
|
||||||
24, 24, 28, 29, 28, 29, 25, 111, 23, 90, 24, 25, 23, 24, 24, 25,
|
24, 24, 28, 29, 28, 29, 25, 111, 23, 90, 24, 25, 23, 24, 24, 25,
|
||||||
46, 46, 10, 51, 25, 23, 25, 115, 23, 90, 89, 50, 51, 24, 28, 47,
|
46, 46, 10, 51, 25, 23, 25, 115, 23, 90, 89, 50, 51, 24, 28, 47,
|
||||||
2, 2, 51, 24, 25, 23, 25, 111, 23, 24, 24, 24, 24, 24, 50, 2,
|
2, 2, 51, 24, 25, 23, 25, 111, 23, 24, 24, 24, 24, 24, 50, 2,
|
||||||
|
@ -203,7 +203,7 @@
|
||||||
"y":16
|
"y":16
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data":[29, 24, 24, 24, 24, 50, 51, 24, 24, 25, 45, 29, 24, 50, 2, 32,
|
"data":[23, 24, 24, 50, 2, 2, 51, 89, 24, 28, 46, 10, 2, 51, 24, 28,
|
||||||
23, 24, 28, 46, 46, 46, 46, 29, 28, 47, 1, 51, 90, 24, 24, 50,
|
23, 24, 28, 46, 46, 46, 46, 29, 28, 47, 1, 51, 90, 24, 24, 50,
|
||||||
23, 89, 50, 2, 3, 115, 1, 51, 50, 2, 51, 89, 24, 24, 24, 28,
|
23, 89, 50, 2, 3, 115, 1, 51, 50, 2, 51, 89, 24, 24, 24, 28,
|
||||||
51, 28, 29, 24, 50, 2, 51, 24, 28, 29, 90, 24, 28, 29, 28, 47,
|
51, 28, 29, 24, 50, 2, 51, 24, 28, 29, 90, 24, 28, 29, 28, 47,
|
||||||
|
@ -1087,137 +1087,49 @@
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
"height":16,
|
||||||
|
"width":16,
|
||||||
|
"x":0,
|
||||||
|
"y":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
"height":16,
|
"height":16,
|
||||||
"width":16,
|
"width":16,
|
||||||
"x":16,
|
"x":0,
|
||||||
"y":32
|
"y":16
|
||||||
},
|
|
||||||
{
|
|
||||||
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 582, 582, 582, 582, 582, 582, 582, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
"height":16,
|
|
||||||
"width":16,
|
|
||||||
"x":32,
|
|
||||||
"y":32
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
582, 582, 582, 582, 582, 582, 582, 0, 0, 0, 583, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 585, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0],
|
|
||||||
"height":16,
|
|
||||||
"width":16,
|
|
||||||
"x":48,
|
|
||||||
"y":32
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 580, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
"height":16,
|
|
||||||
"width":16,
|
|
||||||
"x":16,
|
|
||||||
"y":48
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
"height":16,
|
|
||||||
"width":16,
|
|
||||||
"x":32,
|
|
||||||
"y":48
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 585, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
581, 581, 581, 581, 581, 581, 581, 0, 0, 0, 585, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
"height":16,
|
|
||||||
"width":16,
|
|
||||||
"x":48,
|
|
||||||
"y":48
|
|
||||||
}],
|
}],
|
||||||
"height":48,
|
"height":64,
|
||||||
"id":2,
|
"id":2,
|
||||||
"name":"Collidable ",
|
"name":"Collidable ",
|
||||||
"opacity":1,
|
"opacity":1,
|
||||||
"startx":16,
|
"startx":0,
|
||||||
"starty":16,
|
"starty":0,
|
||||||
"type":"tilelayer",
|
"type":"tilelayer",
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"width":80,
|
"width":64,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
}],
|
}],
|
||||||
|
|
|
@ -9,16 +9,31 @@
|
||||||
"tiledversion":"1.10.2",
|
"tiledversion":"1.10.2",
|
||||||
"tileheight":128,
|
"tileheight":128,
|
||||||
"tiles":[
|
"tiles":[
|
||||||
|
{
|
||||||
|
"id":0,
|
||||||
|
"type":"Tiles"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":1,
|
||||||
|
"type":"Tiles"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":2,
|
||||||
|
"type":"Tiles"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":3,
|
||||||
|
"type":"Tiles"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id":4,
|
"id":4,
|
||||||
"type":"Tile"
|
"type":"Tiles"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":5,
|
"id":5,
|
||||||
"objectgroup":
|
"objectgroup":
|
||||||
{
|
{
|
||||||
"draworder":"index",
|
"draworder":"index",
|
||||||
"id":2,
|
|
||||||
"name":"",
|
"name":"",
|
||||||
"objects":[
|
"objects":[
|
||||||
{
|
{
|
||||||
|
@ -48,14 +63,14 @@
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
}
|
},
|
||||||
|
"type":"StopObject"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":6,
|
"id":6,
|
||||||
"objectgroup":
|
"objectgroup":
|
||||||
{
|
{
|
||||||
"draworder":"index",
|
"draworder":"index",
|
||||||
"id":4,
|
|
||||||
"name":"",
|
"name":"",
|
||||||
"objects":[
|
"objects":[
|
||||||
{
|
{
|
||||||
|
@ -74,14 +89,51 @@
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
}
|
},
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":7,
|
||||||
|
"objectgroup":
|
||||||
|
{
|
||||||
|
"draworder":"index",
|
||||||
|
"name":"",
|
||||||
|
"objects":[
|
||||||
|
{
|
||||||
|
"height":128,
|
||||||
|
"id":1,
|
||||||
|
"name":"",
|
||||||
|
"rotation":0,
|
||||||
|
"type":"",
|
||||||
|
"visible":true,
|
||||||
|
"width":36,
|
||||||
|
"x":0,
|
||||||
|
"y":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"height":36.6666666666667,
|
||||||
|
"id":2,
|
||||||
|
"name":"",
|
||||||
|
"rotation":0,
|
||||||
|
"type":"",
|
||||||
|
"visible":true,
|
||||||
|
"width":128.666666666667,
|
||||||
|
"x":0,
|
||||||
|
"y":91.3333333333333
|
||||||
|
}],
|
||||||
|
"opacity":1,
|
||||||
|
"type":"objectgroup",
|
||||||
|
"visible":true,
|
||||||
|
"x":0,
|
||||||
|
"y":0
|
||||||
|
},
|
||||||
|
"type":"StopObject"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":8,
|
"id":8,
|
||||||
"objectgroup":
|
"objectgroup":
|
||||||
{
|
{
|
||||||
"draworder":"index",
|
"draworder":"index",
|
||||||
"id":2,
|
|
||||||
"name":"",
|
"name":"",
|
||||||
"objects":[
|
"objects":[
|
||||||
{
|
{
|
||||||
|
@ -100,14 +152,14 @@
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
}
|
},
|
||||||
|
"type":"StopObject"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":9,
|
"id":9,
|
||||||
"objectgroup":
|
"objectgroup":
|
||||||
{
|
{
|
||||||
"draworder":"index",
|
"draworder":"index",
|
||||||
"id":2,
|
|
||||||
"name":"",
|
"name":"",
|
||||||
"objects":[
|
"objects":[
|
||||||
{
|
{
|
||||||
|
@ -126,14 +178,14 @@
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
}
|
},
|
||||||
|
"type":"StopObject"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":10,
|
"id":10,
|
||||||
"objectgroup":
|
"objectgroup":
|
||||||
{
|
{
|
||||||
"draworder":"index",
|
"draworder":"index",
|
||||||
"id":2,
|
|
||||||
"name":"",
|
"name":"",
|
||||||
"objects":[
|
"objects":[
|
||||||
{
|
{
|
||||||
|
@ -163,14 +215,14 @@
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
}
|
},
|
||||||
|
"type":"StopObject"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":11,
|
"id":11,
|
||||||
"objectgroup":
|
"objectgroup":
|
||||||
{
|
{
|
||||||
"draworder":"index",
|
"draworder":"index",
|
||||||
"id":2,
|
|
||||||
"name":"",
|
"name":"",
|
||||||
"objects":[
|
"objects":[
|
||||||
{
|
{
|
||||||
|
@ -189,14 +241,14 @@
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
}
|
},
|
||||||
|
"type":"StopObject"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":12,
|
"id":12,
|
||||||
"objectgroup":
|
"objectgroup":
|
||||||
{
|
{
|
||||||
"draworder":"index",
|
"draworder":"index",
|
||||||
"id":2,
|
|
||||||
"name":"",
|
"name":"",
|
||||||
"objects":[
|
"objects":[
|
||||||
{
|
{
|
||||||
|
@ -226,7 +278,156 @@
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"x":0,
|
"x":0,
|
||||||
"y":0
|
"y":0
|
||||||
}
|
},
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":13,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":14,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":15,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":16,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":17,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":18,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":19,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":20,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":21,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":22,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":23,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":24,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":25,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":26,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":27,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":28,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":29,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":30,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":31,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":32,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":33,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":34,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":35,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":36,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":37,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":38,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":39,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":40,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":41,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":42,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":43,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":44,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":45,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":46,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":47,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":48,
|
||||||
|
"type":"StopObject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":49,
|
||||||
|
"type":"StopObject"
|
||||||
}],
|
}],
|
||||||
"tilewidth":128,
|
"tilewidth":128,
|
||||||
"type":"tileset",
|
"type":"tileset",
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
20
ZoFo/Content/Textures/Animations/player_down_idle.animation
Normal 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"
|
||||||
|
}
|
|
@ -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"
|
||||||
|
|
||||||
|
}
|
|
@ -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"
|
||||||
|
|
||||||
|
}
|
|
@ -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"
|
||||||
|
|
||||||
|
}
|
|
@ -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"
|
||||||
|
|
||||||
|
}
|
|
@ -1 +0,0 @@
|
||||||
{"id":"player_idle_rotate_weapon","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"}
|
|
|
@ -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"
|
||||||
|
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
21
ZoFo/Content/Textures/Animations/player_left_idle.animation
Normal 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"
|
||||||
|
|
||||||
|
}
|
20
ZoFo/Content/Textures/Animations/player_look_down.animation
Normal file
|
@ -0,0 +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"
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_down_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":512,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_left","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"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_left_down","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":580,"Width":92,"Height":116},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
|
@ -0,0 +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"
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_left_up","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"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_left_up_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":896,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
|
@ -0,0 +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"
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_right","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"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_right_down","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":348,"Width":92,"Height":116},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_right_down_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":384,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_right_up","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"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_right_up_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":128,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_right_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":256,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_up","textureName":"Textures/AnimationTextures/Character/hr-level1_idle","startSpriteRectangle":{"X":0,"Y":0,"Width":92,"Height":116},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"player_look_up_weapon","textureName":"Textures/AnimationTextures/Character/hr-level1_idle_gun","startSpriteRectangle":{"X":0,"Y":0,"Width":110,"Height":128},"frameSecond":[{"Item1":0,"Item2":5}],"textureFrameInterval":0,"framesCount":22,"isCycle":true,"offset":"0, 0"}
|
21
ZoFo/Content/Textures/Animations/player_right_idle.animation
Normal 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"
|
||||||
|
|
||||||
|
}
|
|
@ -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"
|
||||||
|
|
||||||
|
}
|
|
@ -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"
|
||||||
|
|
||||||
|
}
|
21
ZoFo/Content/Textures/Animations/player_top_mining.animation
Normal 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"
|
||||||
|
|
||||||
|
}
|
21
ZoFo/Content/Textures/Animations/testAnimation.animation
Normal 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"
|
||||||
|
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
|
Before Width: | Height: | Size: 648 KiB After Width: | Height: | Size: 9.2 MiB |
Before Width: | Height: | Size: 4.6 MiB After Width: | Height: | Size: 5.7 MiB |
Before Width: | Height: | Size: 508 KiB After Width: | Height: | Size: 7.1 MiB |
BIN
ZoFo/Content/Textures/Test/pickaxe.webp
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
ZoFo/Content/Textures/Test/rock.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
ZoFo/Content/Textures/Test/steel.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
ZoFo/Content/Textures/Test/wood.jpg
Normal file
After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 769 KiB After Width: | Height: | Size: 769 KiB |
Before Width: | Height: | Size: 578 KiB After Width: | Height: | Size: 578 KiB |
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 2.1 MiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 399 KiB After Width: | Height: | Size: 399 KiB |
|
@ -13,12 +13,17 @@ using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using ZoFo.GameCore.GameObjects.Entities;
|
using ZoFo.GameCore.GameObjects.Entities;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Net;
|
||||||
using ZoFo.GameCore.GameManagers;
|
using ZoFo.GameCore.GameManagers;
|
||||||
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer;
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer;
|
||||||
using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player;
|
using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using ZoFo.GameCore.GUI;
|
using ZoFo.GameCore.GUI;
|
||||||
|
using ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables;
|
||||||
|
using ZoFo.GameCore.GameObjects.MapObjects.StopObjects;
|
||||||
|
using ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies;
|
||||||
namespace ZoFo.GameCore
|
namespace ZoFo.GameCore
|
||||||
{
|
{
|
||||||
public class Client
|
public class Client
|
||||||
|
@ -28,6 +33,8 @@ namespace ZoFo.GameCore
|
||||||
ClientNetworkManager networkManager;
|
ClientNetworkManager networkManager;
|
||||||
|
|
||||||
public bool IsConnected { get { return networkManager.IsConnected; } }
|
public bool IsConnected { get { return networkManager.IsConnected; } }
|
||||||
|
public IPEndPoint InfoConnect => networkManager.InfoConnect;
|
||||||
|
|
||||||
public Client()
|
public Client()
|
||||||
{
|
{
|
||||||
networkManager = new ClientNetworkManager();
|
networkManager = new ClientNetworkManager();
|
||||||
|
@ -35,16 +42,21 @@ namespace ZoFo.GameCore
|
||||||
|
|
||||||
// Подписка на действия инпутменеджера.
|
// Подписка на действия инпутменеджера.
|
||||||
// Отправляются данные апдейтса с обновлением инпута
|
// Отправляются данные апдейтса с обновлением инпута
|
||||||
AppManager.Instance.InputManager.ActionEvent += () => networkManager.AddData(new UpdateInput(){
|
AppManager.Instance.InputManager.ActionEvent += () =>
|
||||||
|
{
|
||||||
|
networkManager.AddData(new UpdateInput()
|
||||||
|
{
|
||||||
InputMovementDirection = AppManager.Instance.InputManager.InputMovementDirection,
|
InputMovementDirection = AppManager.Instance.InputManager.InputMovementDirection,
|
||||||
InputAttackDirection = AppManager.Instance.InputManager.InputAttackDirection
|
InputAttackDirection = AppManager.Instance.InputManager.InputAttackDirection
|
||||||
});
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnDataSend(string data)
|
public void OnDataSend(string data)
|
||||||
{
|
{
|
||||||
List<UpdateData> updateDatas = JsonSerializer.Deserialize<List<UpdateData>>(data);
|
List<UpdateData> updateDatas = JsonSerializer.Deserialize<List<UpdateData>>(data);
|
||||||
// тут будет switch
|
// тут будет switch
|
||||||
|
AppManager.Instance.debugHud.Log(data);
|
||||||
foreach (var item in updateDatas)
|
foreach (var item in updateDatas)
|
||||||
{
|
{
|
||||||
GotData(item);
|
GotData(item);
|
||||||
|
@ -63,6 +75,8 @@ namespace ZoFo.GameCore
|
||||||
|
|
||||||
List<MapObject> mapObjects = new List<MapObject>();
|
List<MapObject> mapObjects = new List<MapObject>();
|
||||||
List<GameObject> gameObjects = new List<GameObject>();
|
List<GameObject> gameObjects = new List<GameObject>();
|
||||||
|
List<Player> players = new List<Player>();
|
||||||
|
List<StopObject> stopObjects = new List<StopObject>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Клиент должен обнговлять игру анимаций
|
/// Клиент должен обнговлять игру анимаций
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -71,6 +85,7 @@ namespace ZoFo.GameCore
|
||||||
{
|
{
|
||||||
for (int i = 0; i < gameObjects.Count; i++)
|
for (int i = 0; i < gameObjects.Count; i++)
|
||||||
{
|
{
|
||||||
|
AppManager.Instance.debugHud.Set("GameTime", gameTime.TotalGameTime.ToString());
|
||||||
gameObjects[i].UpdateAnimations();
|
gameObjects[i].UpdateAnimations();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,6 +95,10 @@ namespace ZoFo.GameCore
|
||||||
{
|
{
|
||||||
mapObjects[i].Draw(spriteBatch);
|
mapObjects[i].Draw(spriteBatch);
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < stopObjects.Count; i++)
|
||||||
|
{
|
||||||
|
stopObjects[i].Draw(spriteBatch);
|
||||||
|
}
|
||||||
for (int i = 0; i < gameObjects.Count; i++)
|
for (int i = 0; i < gameObjects.Count; i++)
|
||||||
{
|
{
|
||||||
gameObjects[i].Draw(spriteBatch);
|
gameObjects[i].Draw(spriteBatch);
|
||||||
|
@ -98,12 +117,33 @@ namespace ZoFo.GameCore
|
||||||
(update as UpdateTileCreated).tileSetName
|
(update as UpdateTileCreated).tileSetName
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
else if (update is UpdateStopObjectCreated)
|
||||||
|
{
|
||||||
|
stopObjects.Add(
|
||||||
|
new StopObject(
|
||||||
|
(update as UpdateStopObjectCreated).Position,
|
||||||
|
(update as UpdateStopObjectCreated).Size.ToVector2(),
|
||||||
|
(update as UpdateStopObjectCreated).sourceRectangle,
|
||||||
|
(update as UpdateStopObjectCreated).tileSetName,
|
||||||
|
(update as UpdateStopObjectCreated).collisions
|
||||||
|
));
|
||||||
|
}
|
||||||
else if (update is UpdateGameObjectCreated)
|
else if (update is UpdateGameObjectCreated)
|
||||||
{
|
{
|
||||||
|
GameObject created_gameObject;
|
||||||
if ((update as UpdateGameObjectCreated).GameObjectType == "EntittyForAnimationTests")
|
if ((update as UpdateGameObjectCreated).GameObjectType == "EntittyForAnimationTests")
|
||||||
gameObjects.Add(new EntittyForAnimationTests((update as UpdateGameObjectCreated).position));
|
gameObjects.Add(new EntittyForAnimationTests((update as UpdateGameObjectCreated).position));
|
||||||
if ((update as UpdateGameObjectCreated).GameObjectType == "Player")
|
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 Zombie((update as UpdateGameObjectCreated).position));
|
||||||
|
|
||||||
|
|
||||||
(gameObjects.Last() as Entity).SetIdByClient((update as UpdateGameObjectCreated).IdEntity);
|
(gameObjects.Last() as Entity).SetIdByClient((update as UpdateGameObjectCreated).IdEntity);
|
||||||
//var a = Assembly.GetAssembly(typeof(GameObject));
|
//var a = Assembly.GetAssembly(typeof(GameObject));
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Content;
|
using Microsoft.Xna.Framework.Content;
|
||||||
|
@ -9,20 +10,118 @@ using Microsoft.Xna.Framework.Graphics;
|
||||||
using Microsoft.Xna.Framework.Input;
|
using Microsoft.Xna.Framework.Input;
|
||||||
using MonogameLibrary.UI.Base;
|
using MonogameLibrary.UI.Base;
|
||||||
using MonogameLibrary.UI.Elements;
|
using MonogameLibrary.UI.Elements;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.GameManagers.ItemManager;
|
||||||
|
|
||||||
|
|
||||||
namespace ZoFo.GameCore.GUI;
|
namespace ZoFo.GameCore.GUI;
|
||||||
|
|
||||||
public class BaseGUI : AbstractGUI
|
public class BaseGUI : AbstractGUI
|
||||||
{
|
{
|
||||||
|
private DrawableUIElement menuBackground;
|
||||||
|
private List<ItemDisplayLabel> ItemDisplayButtonsList;
|
||||||
|
private int buttonIndex = 0;
|
||||||
|
private string textureName;
|
||||||
|
|
||||||
protected override void CreateUI()
|
protected override void CreateUI()
|
||||||
{
|
{
|
||||||
// int width = AppManager.Instance.inGameHUDHelperResolution.X;
|
ItemDisplayButtonsList = new List<ItemDisplayLabel>();
|
||||||
// int height = AppManager.Instance.inGameHUDHelperResolution.Y;
|
int width = AppManager.Instance.CurentScreenResolution.X;
|
||||||
|
int height = AppManager.Instance.CurentScreenResolution.Y;
|
||||||
|
Dictionary<string, int> playerItems = AppManager.Instance.playerData.items;
|
||||||
|
Dictionary<string, ItemInfo> items = AppManager.Instance.ItemManager.tagItemPairs;
|
||||||
|
|
||||||
|
menuBackground = new DrawableUIElement(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White,
|
||||||
|
textureName = "Textures\\GUI\\background\\base"
|
||||||
|
};
|
||||||
|
Elements.Add(menuBackground);
|
||||||
|
menuBackground.LoadTexture(AppManager.Instance.Content);
|
||||||
|
|
||||||
|
Elements.Add(new Label(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 15, (int)(width / 4), (int)(height / 20)),
|
||||||
|
text = "Base", fontColor = Color.Black, mainColor = Color.Transparent, scale = 0.9f,
|
||||||
|
fontName = "Fonts\\Font"
|
||||||
|
});
|
||||||
|
|
||||||
|
DrawableUIElement baseHudBack = new DrawableUIElement(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(width / 2 - (int)(width / 1.5) / 2, height / 2 - (int)(height / 1.5) / 2,
|
||||||
|
(int)(width / 1.5), (int)(height / 1.5)),
|
||||||
|
mainColor = Color.LightGray
|
||||||
|
};
|
||||||
|
Elements.Add(baseHudBack);
|
||||||
|
|
||||||
|
//player itams
|
||||||
|
foreach (var item in playerItems)
|
||||||
|
{
|
||||||
|
textureName = AppManager.Instance.ItemManager.GetItemInfo(item.Key).textureName;
|
||||||
|
var temp = new ItemDisplayLabel(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(width / 2 - (int)(width / 1.5) / 2 + height / 80,
|
||||||
|
height / 2 - (int)(height / 1.5) / 2 + height / 80 + (height / 20 + height / 80) * (buttonIndex),
|
||||||
|
(int)(width / 5), (int)(height / 20)),
|
||||||
|
text1 = item.Key,
|
||||||
|
scale1 = 0.4f,
|
||||||
|
count = item.Value,
|
||||||
|
itemTextureName = textureName,
|
||||||
|
fontColor1 = Color.White,
|
||||||
|
mainColor = Color.Gray,
|
||||||
|
fontName1 = "Fonts\\Font3"
|
||||||
|
};
|
||||||
|
Elements.Add(temp);
|
||||||
|
temp.Initialize();
|
||||||
|
temp.LoadTexture(AppManager.Instance.Content);
|
||||||
|
ItemDisplayButtonsList.Add(temp);
|
||||||
|
|
||||||
|
buttonIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// craftable items
|
||||||
|
buttonIndex = 0;
|
||||||
|
foreach (var item in items)
|
||||||
|
{
|
||||||
|
ItemInfo itemInfo = AppManager.Instance.ItemManager.GetItemInfo(item.Key);
|
||||||
|
|
||||||
|
if (itemInfo.isCraftable)
|
||||||
|
{
|
||||||
|
var temp = new ItemDisplayLabel(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(width / 2 - (int)(width / 1.5) / 2 + height / 40 + width / 5,
|
||||||
|
height / 2 - (int)(height / 1.5) / 2 + height / 80 +
|
||||||
|
(height / 20 + height / 80) * (buttonIndex),
|
||||||
|
(int)(width / 5), (int)(height / 20)),
|
||||||
|
text1 = item.Key,
|
||||||
|
scale1 = 0.4f,
|
||||||
|
count = 0,
|
||||||
|
itemTextureName = itemInfo.textureName,
|
||||||
|
fontColor1 = Color.White,
|
||||||
|
mainColor = Color.Gray,
|
||||||
|
fontName1 = "Fonts\\Font3"
|
||||||
|
};
|
||||||
|
Elements.Add(temp);
|
||||||
|
temp.Initialize();
|
||||||
|
temp.LoadTexture(AppManager.Instance.Content);
|
||||||
|
ItemDisplayButtonsList.Add(temp);
|
||||||
|
|
||||||
|
buttonIndex++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button bTExit = new Button(Manager)
|
||||||
|
{
|
||||||
|
fontName = "Fonts\\Font3", scale = 0.4f, text = "<-", fontColor = Color.Black,
|
||||||
|
mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40),
|
||||||
|
textureName = "Textures\\GUI\\checkboxs_off"
|
||||||
|
};
|
||||||
|
Elements.Add(bTExit);
|
||||||
|
bTExit.LeftButtonPressed += () => { AppManager.Instance.SetGUI(new MainMenuGUI()); };
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Update(GameTime gameTime)
|
public override void Update(GameTime gameTime)
|
||||||
{
|
{
|
||||||
|
base.Update(gameTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,34 +9,27 @@ using Microsoft.Xna.Framework.Graphics;
|
||||||
using Microsoft.Xna.Framework.Input;
|
using Microsoft.Xna.Framework.Input;
|
||||||
using MonogameLibrary.UI.Base;
|
using MonogameLibrary.UI.Base;
|
||||||
using MonogameLibrary.UI.Elements;
|
using MonogameLibrary.UI.Elements;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
|
||||||
namespace ZoFo.GameCore.GUI;
|
namespace ZoFo.GameCore.GUI;
|
||||||
|
|
||||||
public class HUD : AbstractGUI
|
public class HUD : AbstractGUI
|
||||||
{
|
{
|
||||||
|
|
||||||
private GraphicsDevice graphicsDevice;
|
|
||||||
public virtual void Initialize()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void LoadContent()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void Update(GameTime gameTime)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void Draw(SpriteBatch spriteBatch)
|
|
||||||
{
|
|
||||||
//Manager.Draw(spriteBatch);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void CreateUI()
|
protected override void CreateUI()
|
||||||
{
|
{
|
||||||
|
int width = AppManager.Instance.CurentScreenResolution.X;
|
||||||
|
int height = AppManager.Instance.CurentScreenResolution.Y;
|
||||||
|
|
||||||
|
Button pauseButton = new Button(Manager)
|
||||||
|
{ fontName = "Fonts\\Font3", scale = 0.4f, text = "| |", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures\\GUI\\checkboxs_off"};
|
||||||
|
Elements.Add(pauseButton);
|
||||||
|
pauseButton.LeftButtonPressed += () =>
|
||||||
|
{
|
||||||
|
AppManager.Instance.SetGUI(new PauseGUI());
|
||||||
|
};
|
||||||
|
}
|
||||||
|
public override void Update(GameTime gameTime)
|
||||||
|
{
|
||||||
|
base.Update(gameTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -44,9 +44,23 @@ public class MainMenuGUI : AbstractGUI
|
||||||
AppManager.Instance.SetGUI(new SelectModeMenu());
|
AppManager.Instance.SetGUI(new SelectModeMenu());
|
||||||
};
|
};
|
||||||
Elements.Add(playButton);
|
Elements.Add(playButton);
|
||||||
Button optionButton = new Button(Manager)
|
Button baseButton = new Button(Manager)
|
||||||
{
|
{
|
||||||
rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 2, (int)(width / 5), (int)(height / 20)),
|
rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 2, (int)(width / 5), (int)(height / 20)),
|
||||||
|
text = "Base",
|
||||||
|
scale = 0.2f,
|
||||||
|
fontColor = Color.White,
|
||||||
|
mainColor = Color.Gray,
|
||||||
|
fontName = "Fonts\\Font"
|
||||||
|
};
|
||||||
|
baseButton.LeftButtonPressed += () =>
|
||||||
|
{
|
||||||
|
AppManager.Instance.SetGUI(new BaseGUI());
|
||||||
|
};
|
||||||
|
Elements.Add(baseButton);
|
||||||
|
Button optionButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 3, (int)(width / 5), (int)(height / 20)),
|
||||||
text = "Options",
|
text = "Options",
|
||||||
scale = 0.2f,
|
scale = 0.2f,
|
||||||
fontColor = Color.White,
|
fontColor = Color.White,
|
||||||
|
@ -61,7 +75,7 @@ public class MainMenuGUI : AbstractGUI
|
||||||
Elements.Add(optionButton);
|
Elements.Add(optionButton);
|
||||||
Button exitButton = new Button(Manager)
|
Button exitButton = new Button(Manager)
|
||||||
{
|
{
|
||||||
rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 3, (int)(width / 5), (int)(height / 20)),
|
rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 4, (int)(width / 5), (int)(height / 20)),
|
||||||
text = "Exit",
|
text = "Exit",
|
||||||
scale = 0.2f,
|
scale = 0.2f,
|
||||||
fontColor = Color.White,
|
fontColor = Color.White,
|
||||||
|
|
|
@ -40,6 +40,7 @@ public class OptionsGUI : AbstractGUI
|
||||||
var slider_OverallVolume = new Slider(Manager)
|
var slider_OverallVolume = new Slider(Manager)
|
||||||
{ rectangle = new Rectangle(width / 2, height / 3, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
|
{ rectangle = new Rectangle(width / 2, height / 3, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
|
||||||
slider_OverallVolume.SetValue(AppManager.Instance.SettingsManager.MainVolume);
|
slider_OverallVolume.SetValue(AppManager.Instance.SettingsManager.MainVolume);
|
||||||
|
label_OverallVolume_Percent.text = Math.Round(slider_OverallVolume.GetSliderValue * 100) + "%";
|
||||||
slider_OverallVolume.SliderChanged += (newVal) =>
|
slider_OverallVolume.SliderChanged += (newVal) =>
|
||||||
{
|
{
|
||||||
label_OverallVolume_Percent.text = Math.Round(slider_OverallVolume.GetSliderValue * 100) + "%";
|
label_OverallVolume_Percent.text = Math.Round(slider_OverallVolume.GetSliderValue * 100) + "%";
|
||||||
|
@ -60,6 +61,7 @@ public class OptionsGUI : AbstractGUI
|
||||||
var slider_MusicVolume = new Slider(Manager)
|
var slider_MusicVolume = new Slider(Manager)
|
||||||
{ rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 1, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
|
{ rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 1, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
|
||||||
slider_MusicVolume.SetValue(AppManager.Instance.SettingsManager.MusicVolume);
|
slider_MusicVolume.SetValue(AppManager.Instance.SettingsManager.MusicVolume);
|
||||||
|
label_MusicVolume_Percent.text = Math.Round(slider_MusicVolume.GetSliderValue * 100) + "%";
|
||||||
slider_MusicVolume.SliderChanged += (newVal) =>
|
slider_MusicVolume.SliderChanged += (newVal) =>
|
||||||
{
|
{
|
||||||
label_MusicVolume_Percent.text = Math.Round(slider_MusicVolume.GetSliderValue * 100) + "%";
|
label_MusicVolume_Percent.text = Math.Round(slider_MusicVolume.GetSliderValue * 100) + "%";
|
||||||
|
@ -80,6 +82,7 @@ public class OptionsGUI : AbstractGUI
|
||||||
var slider_EffectsVolume = new Slider(Manager)
|
var slider_EffectsVolume = new Slider(Manager)
|
||||||
{ rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 2, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
|
{ rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 2, width / 10, height / 20), indentation = 7, textureName = "Textures/GUI/Switch_backgrownd", MinValue = 0, MaxValue = 1 };
|
||||||
slider_EffectsVolume.SetValue(AppManager.Instance.SettingsManager.SoundEffectsVolume);
|
slider_EffectsVolume.SetValue(AppManager.Instance.SettingsManager.SoundEffectsVolume);
|
||||||
|
label_EffectsVolume_Percent.text = Math.Round(slider_EffectsVolume.GetSliderValue * 100) + "%";
|
||||||
slider_EffectsVolume.SliderChanged += (newVal) =>
|
slider_EffectsVolume.SliderChanged += (newVal) =>
|
||||||
{
|
{
|
||||||
label_EffectsVolume_Percent.text = Math.Round(slider_EffectsVolume.GetSliderValue * 100) + "%";
|
label_EffectsVolume_Percent.text = Math.Round(slider_EffectsVolume.GetSliderValue * 100) + "%";
|
||||||
|
|
57
ZoFo/GameCore/GUI/PauseGUI.cs
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Xml;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Content;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using Microsoft.Xna.Framework.Input;
|
||||||
|
using MonogameLibrary.UI.Base;
|
||||||
|
using MonogameLibrary.UI.Elements;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GUI;
|
||||||
|
|
||||||
|
public class PauseGUI : AbstractGUI
|
||||||
|
{
|
||||||
|
protected override void CreateUI()
|
||||||
|
{
|
||||||
|
int width = AppManager.Instance.CurentScreenResolution.X;
|
||||||
|
int height = AppManager.Instance.CurentScreenResolution.Y;
|
||||||
|
|
||||||
|
Button continueButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + height / 20 + height / 40, (int)(width / 5), (int)(height / 20)),
|
||||||
|
text = "Continue",
|
||||||
|
scale = 0.2f,
|
||||||
|
fontColor = Color.White,
|
||||||
|
mainColor = Color.Gray,
|
||||||
|
fontName = "Fonts\\Font"
|
||||||
|
};
|
||||||
|
continueButton.LeftButtonPressed += () =>
|
||||||
|
{
|
||||||
|
AppManager.Instance.SetGUI(new HUD());
|
||||||
|
};
|
||||||
|
Elements.Add(continueButton);
|
||||||
|
Button exitButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(width / 2 - (int)(width / 10), height / 3 + (height / 20 + height / 40) * 2, (int)(width / 5), (int)(height / 20)),
|
||||||
|
text = "Exit",
|
||||||
|
scale = 0.2f,
|
||||||
|
fontColor = Color.White,
|
||||||
|
mainColor = Color.Gray,
|
||||||
|
fontName = "Fonts\\Font"
|
||||||
|
};
|
||||||
|
exitButton.LeftButtonPressed += () =>
|
||||||
|
{
|
||||||
|
AppManager.Instance.SetGUI(new MainMenuGUI());
|
||||||
|
};
|
||||||
|
Elements.Add(exitButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Update(GameTime gameTime)
|
||||||
|
{
|
||||||
|
base.Update(gameTime);
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,25 +26,27 @@ public class SelectingServerGUI : AbstractGUI
|
||||||
Elements.Add(menuBackground);
|
Elements.Add(menuBackground);
|
||||||
menuBackground.LoadTexture(AppManager.Instance.Content);
|
menuBackground.LoadTexture(AppManager.Instance.Content);
|
||||||
|
|
||||||
Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = "Select server", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font"});
|
Elements.Add(new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = "Select server", fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font" });
|
||||||
|
|
||||||
TextBox ipBox = new TextBox(Manager)
|
TextBox ipBox = new TextBox(Manager)
|
||||||
{
|
{
|
||||||
rectangle = new Rectangle(width / 4 - (width / 4) / 2, height / 4, (int)(width / 4), (int)(height / 20)),
|
rectangle = new Rectangle(width / 4 - (width / 4) / 2, height / 4, (int)(width / 4), (int)(height / 20)),
|
||||||
text = "ip",
|
text = "ip",
|
||||||
scale = 0.2f,
|
scale = 0.5f,
|
||||||
fontColor = Color.White,
|
fontColor = Color.White,
|
||||||
mainColor = Color.Gray,
|
mainColor = Color.Gray,
|
||||||
textAligment = MonogameLibrary.UI.Enums.TextAligment.Left,
|
textAligment = MonogameLibrary.UI.Enums.TextAligment.Left,
|
||||||
fontName = "Fonts/Font"
|
fontName = "Fonts/Font3"
|
||||||
};
|
};
|
||||||
ipBox.TextChanged += input => {
|
ipBox.TextChanged += input =>
|
||||||
|
{
|
||||||
if (input == "ip")
|
if (input == "ip")
|
||||||
{
|
{
|
||||||
ipBox.text = ""; ipBox.fontColor = Color.White;
|
ipBox.text = ""; ipBox.fontColor = Color.White;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
ipBox.StopChanging += input => {
|
ipBox.StopChanging += input =>
|
||||||
|
{
|
||||||
if (input.Length == 0)
|
if (input.Length == 0)
|
||||||
{
|
{
|
||||||
ipBox.fontColor = Color.White;
|
ipBox.fontColor = Color.White;
|
||||||
|
@ -68,12 +70,21 @@ public class SelectingServerGUI : AbstractGUI
|
||||||
Client client = new Client();
|
Client client = new Client();
|
||||||
var endpoint = ipBox.text.Split(':');
|
var endpoint = ipBox.text.Split(':');
|
||||||
int port;
|
int port;
|
||||||
|
try
|
||||||
|
{
|
||||||
if (int.TryParse(endpoint[1], out port))
|
if (int.TryParse(endpoint[1], out port))
|
||||||
{
|
{
|
||||||
client.JoinRoom(endpoint[0], port);
|
client.JoinRoom(endpoint[0], port);
|
||||||
AppManager.Instance.SetClient(client);
|
AppManager.Instance.SetClient(client);
|
||||||
AppManager.Instance.SetGUI(new WaitingForPlayersGUI(false));
|
AppManager.Instance.SetGUI(new WaitingForPlayersGUI(false));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
|
||||||
|
// throw;
|
||||||
|
}
|
||||||
|
|
||||||
// ваш код здесь
|
// ваш код здесь
|
||||||
};
|
};
|
||||||
Elements.Add(joinButton);
|
Elements.Add(joinButton);
|
||||||
|
@ -91,8 +102,11 @@ public class SelectingServerGUI : AbstractGUI
|
||||||
|
|
||||||
// host
|
// host
|
||||||
Server server = new Server(); //Server Logic MultiPlayer
|
Server server = new Server(); //Server Logic MultiPlayer
|
||||||
server.CreateRoom(5);
|
Client client = new Client();
|
||||||
|
server.CreateRoom(2);
|
||||||
|
client.JoinYourself(server.MyIp.Port);
|
||||||
AppManager.Instance.SetServer(server);
|
AppManager.Instance.SetServer(server);
|
||||||
|
AppManager.Instance.SetClient(client);
|
||||||
string key = server.MyIp.ToString();
|
string key = server.MyIp.ToString();
|
||||||
AppManager.Instance.debugHud.Set(key, "MultiPlayer");
|
AppManager.Instance.debugHud.Set(key, "MultiPlayer");
|
||||||
// ваш код здесь
|
// ваш код здесь
|
||||||
|
@ -101,7 +115,7 @@ public class SelectingServerGUI : AbstractGUI
|
||||||
Elements.Add(hostButton);
|
Elements.Add(hostButton);
|
||||||
|
|
||||||
Button bTExit = new Button(Manager)
|
Button bTExit = new Button(Manager)
|
||||||
{ fontName = "Fonts/Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures/GUI/checkboxs_off"};
|
{ fontName = "Fonts/Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures/GUI/checkboxs_off" };
|
||||||
Elements.Add(bTExit);
|
Elements.Add(bTExit);
|
||||||
bTExit.LeftButtonPressed += () =>
|
bTExit.LeftButtonPressed += () =>
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,11 +31,15 @@ public class WaitingForPlayersGUI : AbstractGUI
|
||||||
menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures/GUI/background/Waiting" };
|
menuBackground = new DrawableUIElement(Manager) { rectangle = new Rectangle(0, 0, width, height), mainColor = Color.White, textureName = "Textures/GUI/background/Waiting" };
|
||||||
Elements.Add(menuBackground);
|
Elements.Add(menuBackground);
|
||||||
menuBackground.LoadTexture(AppManager.Instance.Content);
|
menuBackground.LoadTexture(AppManager.Instance.Content);
|
||||||
|
// string pcIp =
|
||||||
|
|
||||||
// string pcIp =
|
// string pcIp =
|
||||||
ip = new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = AppManager.Instance.server.MyIp.ToString(), fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font3" };
|
ip = new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = AppManager.Instance.server.MyIp.ToString(), fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts/Font3" };
|
||||||
Elements.Add(ip);
|
Elements.Add(ip);
|
||||||
if (isHost)
|
if (isHost)
|
||||||
{
|
{
|
||||||
|
ip = new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = AppManager.Instance.server.MyIp.ToString(), fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font3" };
|
||||||
|
Elements.Add(ip);
|
||||||
Button startButton = new Button(Manager)
|
Button startButton = new Button(Manager)
|
||||||
{
|
{
|
||||||
rectangle = new Rectangle(width / 2 - (width / 15) / 2, height / 2 + height / 4, (int)(width / 15), (int)(height / 20)),
|
rectangle = new Rectangle(width / 2 - (width / 15) / 2, height / 2 + height / 4, (int)(width / 15), (int)(height / 20)),
|
||||||
|
@ -48,11 +52,31 @@ public class WaitingForPlayersGUI : AbstractGUI
|
||||||
startButton.LeftButtonPressed += () =>
|
startButton.LeftButtonPressed += () =>
|
||||||
{
|
{
|
||||||
// start
|
// start
|
||||||
|
AppManager.Instance.ChangeState(GameState.HostPlaying);
|
||||||
// ваш код здесь
|
// ваш код здесь
|
||||||
};
|
};
|
||||||
Elements.Add(startButton);
|
Elements.Add(startButton);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
ip = new Label(Manager) { rectangle = new Rectangle(width / 2 - (int)(width / 8), height / 7, (int)(width / 4), (int)(height / 20)), text = AppManager.Instance.client.InfoConnect.ToString(), fontColor = Color.White, mainColor = Color.Transparent, scale = 0.9f, fontName = "Fonts\\Font3" };
|
||||||
|
Elements.Add(ip);
|
||||||
|
Button waitButton = new Button(Manager)
|
||||||
|
{
|
||||||
|
rectangle = new Rectangle(width / 2 - (width / 15) / 2, height / 2 + height / 4, (int)(width / 15), (int)(height / 20)),
|
||||||
|
text = "WAITING",
|
||||||
|
scale = 0.3f,
|
||||||
|
fontColor = Color.White,
|
||||||
|
mainColor = Color.Gray,
|
||||||
|
fontName = "Fonts/Font"
|
||||||
|
};
|
||||||
|
waitButton.LeftButtonPressed += () =>
|
||||||
|
{
|
||||||
|
// start
|
||||||
|
AppManager.Instance.ChangeState(GameState.ClientPlaying);
|
||||||
|
// ваш код здесь
|
||||||
|
};
|
||||||
|
Elements.Add(waitButton);
|
||||||
|
}
|
||||||
|
|
||||||
Button bTExit = new Button(Manager)
|
Button bTExit = new Button(Manager)
|
||||||
{ fontName = "Fonts/Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures/GUI/checkboxs_off"};
|
{ fontName = "Fonts/Font3", scale = 0.4f, text = "<-", fontColor = Color.Black, mainColor = Color.Transparent, rectangle = new Rectangle(width / 30, height / 30, width / 40, width / 40), textureName = "Textures/GUI/checkboxs_off"};
|
||||||
|
|
|
@ -28,9 +28,10 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
public GameState gamestate;
|
public GameState gamestate;
|
||||||
public AbstractGUI currentGUI;
|
public AbstractGUI currentGUI;
|
||||||
public DebugHUD debugHud;
|
public DebugHUD debugHud;
|
||||||
public Point CurentScreenResolution = new Point(1920, 1080);
|
public Point CurentScreenResolution;
|
||||||
public Client client;
|
public Client client;
|
||||||
public Server server;
|
public Server server;
|
||||||
|
public PlayerData playerData;
|
||||||
|
|
||||||
|
|
||||||
#region Managers
|
#region Managers
|
||||||
|
@ -47,13 +48,16 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
public AppManager()
|
public AppManager()
|
||||||
{
|
{
|
||||||
_graphics = new GraphicsDeviceManager(this);
|
_graphics = new GraphicsDeviceManager(this);
|
||||||
|
CurentScreenResolution = new Point(GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width, GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height);
|
||||||
SetResolution(CurentScreenResolution.X, CurentScreenResolution.Y);
|
SetResolution(CurentScreenResolution.X, CurentScreenResolution.Y);
|
||||||
// FulscrreenSwitch();
|
//FulscrreenSwitch();
|
||||||
|
|
||||||
|
|
||||||
Content.RootDirectory = "Content";
|
Content.RootDirectory = "Content";
|
||||||
IsMouseVisible = true;
|
IsMouseVisible = true;
|
||||||
|
|
||||||
|
playerData = new PlayerData();
|
||||||
|
ItemManager = new ItemManager.ItemManager();
|
||||||
Instance = this;
|
Instance = this;
|
||||||
InputManager = new InputManager();
|
InputManager = new InputManager();
|
||||||
SettingsManager = new SettingsManager();
|
SettingsManager = new SettingsManager();
|
||||||
|
@ -71,7 +75,9 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
protected override void Initialize()
|
protected override void Initialize()
|
||||||
{
|
{
|
||||||
currentGUI.Initialize();
|
currentGUI.Initialize();
|
||||||
|
|
||||||
debugHud.Initialize();
|
debugHud.Initialize();
|
||||||
|
ItemManager.Initialize();
|
||||||
|
|
||||||
|
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
@ -82,6 +88,10 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
_spriteBatch = new SpriteBatch(GraphicsDevice);
|
_spriteBatch = new SpriteBatch(GraphicsDevice);
|
||||||
debugHud.LoadContent();
|
debugHud.LoadContent();
|
||||||
currentGUI.LoadContent();
|
currentGUI.LoadContent();
|
||||||
|
ItemManager.LoadItemTextures();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
animationBuilder = new AnimationBuilder();
|
animationBuilder = new AnimationBuilder();
|
||||||
animationBuilder.LoadAnimations();
|
animationBuilder.LoadAnimations();
|
||||||
GameObject.debugTexture = new Texture2D(GraphicsDevice, 1, 1);
|
GameObject.debugTexture = new Texture2D(GraphicsDevice, 1, 1);
|
||||||
|
@ -94,7 +104,7 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
Keyboard.GetState().IsKeyDown(Keys.Escape)) { server.CloseConnection(); Exit(); }
|
Keyboard.GetState().IsKeyDown(Keys.Escape)) { server.CloseConnection(); Exit(); }
|
||||||
|
|
||||||
|
|
||||||
debugHud.Set("key", "value");
|
// debugHud.Set("key", "value");
|
||||||
|
|
||||||
InputManager.Update();
|
InputManager.Update();
|
||||||
currentGUI.Update(gameTime);
|
currentGUI.Update(gameTime);
|
||||||
|
@ -107,7 +117,7 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
client.Update(gameTime);
|
client.Update(gameTime);
|
||||||
break;
|
break;
|
||||||
case GameState.ClientPlaying:
|
case GameState.ClientPlaying:
|
||||||
server.Update(gameTime);
|
client.Update(gameTime);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -121,7 +131,6 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
GraphicsDevice.Clear(Color.CornflowerBlue);
|
GraphicsDevice.Clear(Color.CornflowerBlue);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Pointwrap
|
// Pointwrap
|
||||||
_spriteBatch.Begin(samplerState: SamplerState.PointWrap);
|
_spriteBatch.Begin(samplerState: SamplerState.PointWrap);
|
||||||
switch (gamestate)
|
switch (gamestate)
|
||||||
|
|
|
@ -26,7 +26,7 @@ namespace ZoFo.GameCore.GameManagers.CollisionManager
|
||||||
{
|
{
|
||||||
this.gameObject = gameObject;
|
this.gameObject = gameObject;
|
||||||
|
|
||||||
hasCollision = hasCollision;
|
this.hasCollision = hasCollision;
|
||||||
this.isTrigger = isTrigger;
|
this.isTrigger = isTrigger;
|
||||||
if (hasCollision)
|
if (hasCollision)
|
||||||
this.stopRectangle = collisionRectangle.Value;
|
this.stopRectangle = collisionRectangle.Value;
|
||||||
|
|
|
@ -44,9 +44,12 @@ namespace ZoFo.GameCore.GameManagers.CollisionManager
|
||||||
|
|
||||||
foreach (var item in ObjectsWithCollisions)//фильтрация
|
foreach (var item in ObjectsWithCollisions)//фильтрация
|
||||||
{
|
{
|
||||||
if (Math.Abs(item.stopRectangle.X - entity.collisionComponent.stopRectangle.X) < 550
|
if (item == componentOfEntity) continue;
|
||||||
&& Math.Abs(item.stopRectangle.Y - entity.collisionComponent.stopRectangle.Y) < 550
|
|
||||||
&& tryingRectX.Intersects(item.stopRectangle))
|
Rectangle rectChecking = item.stopRectangle.SetOrigin(item.gameObject.position);
|
||||||
|
if (Math.Abs(item.gameObject.position.X - componentOfEntity.gameObject.position.X) < 550
|
||||||
|
&& Math.Abs(item.gameObject.position.Y - componentOfEntity.gameObject.position.Y) < 550
|
||||||
|
&& tryingRectX.Intersects(rectChecking))
|
||||||
|
|
||||||
{
|
{
|
||||||
collidedX = true;// меняем значение соприкосновения на true
|
collidedX = true;// меняем значение соприкосновения на true
|
||||||
|
@ -75,9 +78,11 @@ namespace ZoFo.GameCore.GameManagers.CollisionManager
|
||||||
|
|
||||||
foreach (var item in ObjectsWithCollisions)//фильтрация
|
foreach (var item in ObjectsWithCollisions)//фильтрация
|
||||||
{
|
{
|
||||||
if (Math.Abs(item.stopRectangle.X - entity.collisionComponent.stopRectangle.X) < 550
|
if (item == componentOfEntity) continue;
|
||||||
&& Math.Abs(item.stopRectangle.Y - entity.collisionComponent.stopRectangle.Y) < 550
|
Rectangle rectChecking = item.stopRectangle.SetOrigin(item.gameObject.position);
|
||||||
&& tryingRectY.Intersects(item.stopRectangle))
|
if (Math.Abs(item.gameObject.position.X - componentOfEntity.gameObject.position.X) < 550
|
||||||
|
&& Math.Abs(item.gameObject.position.Y - componentOfEntity.gameObject.position.Y) < 550
|
||||||
|
&& tryingRectY.Intersects(rectChecking))
|
||||||
|
|
||||||
{
|
{
|
||||||
collidedY = true;// меняем значение соприкосновения на true
|
collidedY = true;// меняем значение соприкосновения на true
|
||||||
|
@ -135,4 +140,14 @@ namespace ZoFo.GameCore.GameManagers.CollisionManager
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public static class ExtentionClass
|
||||||
|
{
|
||||||
|
public static Rectangle SetOrigin(this Rectangle rectangle, Vector2 origin)
|
||||||
|
{
|
||||||
|
rectangle.X = (int)origin.X;
|
||||||
|
rectangle.Y = (int)origin.Y;
|
||||||
|
return rectangle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,10 +11,10 @@ namespace ZoFo.GameCore.GameManagers.ItemManager
|
||||||
{
|
{
|
||||||
//поля
|
//поля
|
||||||
string tag;
|
string tag;
|
||||||
string textureName;
|
public string textureName;
|
||||||
Texture2D itemTexture;
|
Texture2D itemTexture;
|
||||||
bool isCraftable;
|
public bool isCraftable;
|
||||||
Dictionary<string, int> resourcesNeededToCraft;
|
public Dictionary<string, int> resourcesNeededToCraft;
|
||||||
public ItemInfo (string tag)
|
public ItemInfo (string tag)
|
||||||
{
|
{
|
||||||
this.tag = tag;
|
this.tag = tag;
|
||||||
|
|
|
@ -9,24 +9,30 @@ namespace ZoFo.GameCore.GameManagers.ItemManager
|
||||||
public class ItemManager
|
public class ItemManager
|
||||||
{
|
{
|
||||||
//поля
|
//поля
|
||||||
Dictionary<string, ItemInfo> tagItemPairs;
|
public Dictionary<string, ItemInfo> tagItemPairs;
|
||||||
//методы
|
//методы
|
||||||
ItemInfo GetItemInfo(string tag)
|
public ItemInfo GetItemInfo(string tag)
|
||||||
{
|
{
|
||||||
return tagItemPairs.GetValueOrDefault(tag);
|
return tagItemPairs[tag];
|
||||||
}
|
}
|
||||||
void LoadItemTextures()
|
public void LoadItemTextures()
|
||||||
{
|
{
|
||||||
foreach (var item in tagItemPairs)
|
foreach (var item in tagItemPairs)
|
||||||
{
|
{
|
||||||
item.Value.LoadTexture();
|
item.Value.LoadTexture();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
tagItemPairs.Add("wood", new ItemInfo("wood","wood",false,null));
|
tagItemPairs = new Dictionary<string, ItemInfo>();
|
||||||
tagItemPairs.Add("rock", new ItemInfo("rock", "rock", false, null));
|
tagItemPairs.Add("wood", new ItemInfo("wood","Textures\\Test\\wood",false,null));
|
||||||
tagItemPairs.Add("steel", new ItemInfo("steel", "steel", false, null));
|
tagItemPairs.Add("rock", new ItemInfo("rock", "Textures\\Test\\rock", false, null));
|
||||||
|
tagItemPairs.Add("steel", new ItemInfo("steel", "Textures\\Test\\steel", false, null));
|
||||||
|
tagItemPairs.Add("pickaxe", new ItemInfo("steel", "Textures\\Test\\pickaxe", true, new Dictionary<string, int>()
|
||||||
|
{
|
||||||
|
{"wood", 2},
|
||||||
|
{"Steel", 3}
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,16 +9,42 @@ namespace ZoFo.GameCore.GameManagers.ItemManager
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс хранит информацю о количестве ресурсов у игрока
|
/// Класс хранит информацю о количестве ресурсов у игрока
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal class PlayerData
|
public class PlayerData
|
||||||
{
|
{
|
||||||
Dictionary<string, int> items;
|
public PlayerData()
|
||||||
|
{
|
||||||
|
LoadPlayerData();
|
||||||
|
}
|
||||||
|
public Dictionary<string, int> items;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Принимает тэг и крафтит этот объект
|
/// Принимает тэг и крафтит этот объект
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="itemTag"></param>
|
/// <param name="itemTag"></param>
|
||||||
public void CraftItem(string itemTag)
|
public bool CraftItem(string itemTag)
|
||||||
|
{
|
||||||
|
Dictionary<string, int> needToCraft = AppManager.Instance.ItemManager.GetItemInfo(itemTag).resourcesNeededToCraft;
|
||||||
|
foreach (var item in needToCraft)
|
||||||
|
{
|
||||||
|
if (items[item.Key] < item.Value)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var item in needToCraft)
|
||||||
|
{
|
||||||
|
items[item.Key] -= item.Value;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadPlayerData()
|
||||||
{
|
{
|
||||||
//TODO
|
//TODO
|
||||||
|
items = new Dictionary<string, int>();
|
||||||
|
items.Add("wood", 2);
|
||||||
|
items.Add("steel", 110);
|
||||||
|
items.Add("rock", 6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,9 @@ namespace ZoFo.GameCore.GameManagers.MapManager.MapElements
|
||||||
{
|
{
|
||||||
public class Object
|
public class Object
|
||||||
{
|
{
|
||||||
public int Height { get; set; }
|
public double Height { get; set; }
|
||||||
public int Width { get; set; }
|
public double Width { get; set; }
|
||||||
public int X { get; set; }
|
public double X { get; set; }
|
||||||
public int Y { get; set; }
|
public double Y { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,6 @@ namespace ZoFo.GameCore.GameManagers.MapManager.MapElements
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public string Type { get; set; }
|
public string Type { get; set; }
|
||||||
public List<ObjectGroup> Objectgroup { get; set; }
|
public ObjectGroup Objectgroup { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,8 @@ namespace ZoFo.GameCore.GameManagers.MapManager
|
||||||
{
|
{
|
||||||
public class MapManager
|
public class MapManager
|
||||||
{
|
{
|
||||||
|
|
||||||
private static readonly string _templatePath = "Content/MapData/TileMaps/{0}.tmj";
|
private static readonly string _templatePath = "Content/MapData/TileMaps/{0}.tmj";
|
||||||
|
|
||||||
//private static readonly float _scale = 1.0f;
|
//private static readonly float _scale = 1.0f;
|
||||||
private List<TileSet> _tileSets = new List<TileSet>();
|
private List<TileSet> _tileSets = new List<TileSet>();
|
||||||
|
|
||||||
|
@ -32,7 +32,8 @@ namespace ZoFo.GameCore.GameManagers.MapManager
|
||||||
{
|
{
|
||||||
PropertyNameCaseInsensitive = true
|
PropertyNameCaseInsensitive = true
|
||||||
};
|
};
|
||||||
TileMap tileMap = JsonSerializer.Deserialize<TileMap>(File.ReadAllText(string.Format(_templatePath, mapName)), options);
|
TileMap tileMap =
|
||||||
|
JsonSerializer.Deserialize<TileMap>(File.ReadAllText(string.Format(_templatePath, mapName)), options);
|
||||||
|
|
||||||
// Загрузка TileSet-ов по TileSetInfo
|
// Загрузка TileSet-ов по TileSetInfo
|
||||||
List<TileSet> tileSets = new List<TileSet>();
|
List<TileSet> tileSets = new List<TileSet>();
|
||||||
|
@ -42,6 +43,7 @@ namespace ZoFo.GameCore.GameManagers.MapManager
|
||||||
tileSet.FirstGid = tileSetInfo.FirstGid;
|
tileSet.FirstGid = tileSetInfo.FirstGid;
|
||||||
tileSets.Add(tileSet);
|
tileSets.Add(tileSet);
|
||||||
}
|
}
|
||||||
|
tileSets.Reverse();
|
||||||
|
|
||||||
foreach (var layer in tileMap.Layers)
|
foreach (var layer in tileMap.Layers)
|
||||||
{
|
{
|
||||||
|
@ -51,37 +53,45 @@ namespace ZoFo.GameCore.GameManagers.MapManager
|
||||||
{
|
{
|
||||||
foreach (var tileSet in tileSets)
|
foreach (var tileSet in tileSets)
|
||||||
{
|
{
|
||||||
if (tileSet.FirstGid - chunk.Data[i] <= 0)
|
if (tileSet.FirstGid <= chunk.Data[i])
|
||||||
{
|
{
|
||||||
int number = chunk.Data[i] - tileSet.FirstGid;
|
int number = chunk.Data[i] - tileSet.FirstGid;
|
||||||
|
|
||||||
int relativeColumn = number % tileSet.Columns;
|
int relativeColumn = number % tileSet.Columns;
|
||||||
int relativeRow = number / tileSet.Columns; // относительно левого угла чанка
|
int relativeRow = number / tileSet.Columns; // относительно левого угла чанка
|
||||||
|
|
||||||
Rectangle sourceRectangle = new Rectangle(relativeColumn * tileSet.TileWidth, relativeRow * tileSet.TileHeight,
|
Rectangle sourceRectangle = new Rectangle(relativeColumn * tileSet.TileWidth,
|
||||||
|
relativeRow * tileSet.TileHeight,
|
||||||
tileSet.TileWidth, tileSet.TileHeight);
|
tileSet.TileWidth, tileSet.TileHeight);
|
||||||
|
|
||||||
Vector2 position = new Vector2((i % chunk.Width) * tileSet.TileWidth + chunk.X * tileSet.TileWidth,
|
Vector2 position = new Vector2(
|
||||||
|
(i % chunk.Width) * tileSet.TileWidth + chunk.X * tileSet.TileWidth,
|
||||||
(i / chunk.Height) * tileSet.TileHeight + chunk.Y * tileSet.TileHeight);
|
(i / chunk.Height) * tileSet.TileHeight + chunk.Y * tileSet.TileHeight);
|
||||||
|
|
||||||
Tile tile = tileSet.Tiles[i]; // По факту может быть StopObjectom, но на уровне Tiled это все в первую очередь Tile
|
Tile tile = tileSet.Tiles[number]; // По факту может быть StopObjectom, но на уровне Tiled это все в первую очередь Tile
|
||||||
|
|
||||||
switch (tile.Type)
|
switch (tile.Type)
|
||||||
{
|
{
|
||||||
case "Tile":
|
case "Tile":
|
||||||
AppManager.Instance.server.RegisterGameObject(new MapObject(position, new Vector2(tileSet.TileWidth, tileSet.TileHeight),
|
AppManager.Instance.server.RegisterGameObject(new MapObject(position,
|
||||||
sourceRectangle, "Textures/TileSetImages/" + Path.GetFileName(tileSet.Image).Replace(".png", "")));
|
new Vector2(tileSet.TileWidth, tileSet.TileHeight),
|
||||||
|
sourceRectangle,
|
||||||
|
"Textures/TileSets/" +
|
||||||
|
Path.GetFileName(tileSet.Image).Replace(".png", "")));
|
||||||
break;
|
break;
|
||||||
case "StopObject":
|
case "StopObject":
|
||||||
var collisionRectangles = LoadRectangles(tile); // Грузит коллизии обьектов
|
var collisionRectangles = LoadRectangles(tile); // Грузит коллизии обьектов
|
||||||
AppManager.Instance.server.RegisterGameObject(new StopObject(position, new Vector2(tileSet.TileWidth, tileSet.TileHeight),
|
AppManager.Instance.server.RegisterGameObject(new StopObject(position/4,//TODO
|
||||||
sourceRectangle, "Textures/TileSetImages/" + Path.GetFileName(tileSet.Image).Replace(".png", ""), collisionRectangles.ToArray()));
|
new Vector2(tileSet.TileWidth, tileSet.TileHeight),
|
||||||
// TODO: изменить конструктор, засунув коллизии.
|
sourceRectangle,
|
||||||
|
"Textures/TileSets/" +
|
||||||
|
Path.GetFileName(tileSet.Image).Replace(".png", ""),
|
||||||
|
collisionRectangles.ToArray()));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,15 +122,19 @@ namespace ZoFo.GameCore.GameManagers.MapManager
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="tile"></param>
|
/// <param name="tile"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private List<Rectangle> LoadRectangles(Tile tile) {
|
private List<Rectangle> LoadRectangles(Tile tile)
|
||||||
|
{
|
||||||
|
if (tile.Objectgroup == null)
|
||||||
|
{
|
||||||
|
return new List<Rectangle>();
|
||||||
|
}
|
||||||
|
|
||||||
List<Rectangle> collisionRectangles = new List<Rectangle>();
|
List<Rectangle> collisionRectangles = new List<Rectangle>();
|
||||||
foreach (var objectGroup in tile.Objectgroup)
|
foreach (var obj in tile.Objectgroup.Objects)
|
||||||
{
|
{
|
||||||
foreach (var obj in objectGroup.Objects)
|
collisionRectangles.Add(new Rectangle((int)obj.X, (int)obj.Y, (int)obj.Width, (int)obj.Height));
|
||||||
{
|
|
||||||
collisionRectangles.Add(new Rectangle(obj.X, obj.Y, obj.Width, obj.Height));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return collisionRectangles;
|
return collisionRectangles;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Data.SqlTypes;
|
using System.Data.SqlTypes;
|
||||||
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Security.Cryptography.X509Certificates;
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
@ -98,8 +99,15 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
public static IPAddress GetIp()
|
public static IPAddress GetIp()
|
||||||
{
|
{
|
||||||
string hostName = Dns.GetHostName(); // Retrive the Name of HOST
|
string hostName = Dns.GetHostName(); // Retrive the Name of HOST
|
||||||
//string myIP = Dns.GetHostByName(hostName).AddressList[1].ToString();// Get the IP
|
var ipList = Dns.GetHostByName(hostName).AddressList;
|
||||||
return IPAddress.Parse("127.0.0.1");
|
foreach (var ip in ipList)
|
||||||
|
{
|
||||||
|
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
|
||||||
|
{
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return IPAddress.Loopback;
|
||||||
}
|
}
|
||||||
|
|
||||||
//поток 2
|
//поток 2
|
||||||
|
@ -108,7 +116,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
while(socket.Connected)
|
while(socket.Connected)
|
||||||
{
|
{
|
||||||
byte[] bytes = new byte[2048];
|
byte[] bytes = new byte[2048];
|
||||||
var countAnsw = socket.Receive(bytes);
|
var countAnsw = socket.Receive(bytes); //Вылетает если кто то закрыл
|
||||||
string update = Encoding.UTF8.GetString(bytes, 0, countAnsw); // обновление отосланные сервером
|
string update = Encoding.UTF8.GetString(bytes, 0, countAnsw); // обновление отосланные сервером
|
||||||
GetDataSent(update);
|
GetDataSent(update);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,8 +37,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void Init()
|
private void Init()
|
||||||
{
|
{
|
||||||
ip = GetIp();
|
endPoint = new IPEndPoint(GetIp(), port);
|
||||||
endPoint = new IPEndPoint(ip, port);
|
|
||||||
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||||
managerThread = new Dictionary<Socket, Thread>();
|
managerThread = new Dictionary<Socket, Thread>();
|
||||||
clients = new List<Socket>();
|
clients = new List<Socket>();
|
||||||
|
@ -54,9 +53,15 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
public static IPAddress GetIp()
|
public static IPAddress GetIp()
|
||||||
{
|
{
|
||||||
string hostName = Dns.GetHostName(); // Retrive the Name of HOST
|
string hostName = Dns.GetHostName(); // Retrive the Name of HOST
|
||||||
//var ipList =Dns.GetHostByName(hostName).AddressList;
|
var ipList = Dns.GetHostByName(hostName).AddressList;
|
||||||
//string myIP = ipList[ipList.Count()-1].ToString();// Get the IP
|
foreach (var ip in ipList)
|
||||||
return IPAddress.Parse("127.0.0.1");
|
{
|
||||||
|
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
|
||||||
|
{
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return IPAddress.Loopback;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -71,7 +76,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
}
|
}
|
||||||
updates.Clear();
|
updates.Clear();
|
||||||
return; //TODO TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK
|
return; //TODO TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK
|
||||||
|
//Что это?
|
||||||
//по 10 паков за раз TODO FIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXIT
|
//по 10 паков за раз TODO FIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXITFIXIT
|
||||||
List<UpdateData> datasToSend = new List<UpdateData>();
|
List<UpdateData> datasToSend = new List<UpdateData>();
|
||||||
for (int i = 0; i < 5 && i<updates.Count; i++)
|
for (int i = 0; i < 5 && i<updates.Count; i++)
|
||||||
|
@ -143,13 +148,16 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
for (int i = 0; i < playNumber; i++)
|
for (int i = 0; i < playNumber; i++)
|
||||||
{
|
{
|
||||||
Socket client = socket.Accept();
|
Socket client = socket.Accept();
|
||||||
|
AppManager.Instance.debugHud.Log($"Connect {client.LocalEndPoint.ToString()}");
|
||||||
Thread thread = new Thread(StartListening);
|
Thread thread = new Thread(StartListening);
|
||||||
thread.IsBackground = true;
|
thread.IsBackground = true;
|
||||||
thread.Start(client);
|
thread.Start(client);
|
||||||
managerThread.Add(client, thread);
|
managerThread.Add(client, thread);
|
||||||
clients.Add(client); //добавляем клиентов в лист
|
clients.Add(client);
|
||||||
|
//AppManager.Instance.ChangeState(GameState.HostPlaying);
|
||||||
|
//добавляем клиентов в лист
|
||||||
}
|
}
|
||||||
|
AppManager.Instance.ChangeState(GameState.HostPlaying);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UpdateInteraction : UpdateData
|
public class UpdateInteraction : UpdateData
|
||||||
{
|
{
|
||||||
|
public UpdateInteraction() { UpdateType = "UpdateInteraction"; }
|
||||||
public UpdateInteraction(int id)
|
public UpdateInteraction(int id)
|
||||||
{
|
{
|
||||||
IdEntity = id;
|
IdEntity = id;
|
||||||
|
|
|
@ -9,6 +9,6 @@ public class UpdateInteractionReady(int idEntity, bool isReady)
|
||||||
: UpdateData
|
: UpdateData
|
||||||
{
|
{
|
||||||
public int IdEntity { get; set; } = idEntity;
|
public int IdEntity { get; set; } = idEntity;
|
||||||
public string UpdateType { get; set; }
|
public string UpdateType { get; set; } = "UpdateInteractionReady";
|
||||||
public bool IsReady { get; set; } = isReady;
|
public bool IsReady { get; set; } = isReady;
|
||||||
}
|
}
|
|
@ -11,6 +11,12 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UpdateLoot : UpdateData
|
public class UpdateLoot : UpdateData
|
||||||
{
|
{
|
||||||
|
public string lootName;
|
||||||
public UpdateLoot() { UpdateType = "UpdateLoot"; }
|
public UpdateLoot() { UpdateType = "UpdateLoot"; }
|
||||||
|
public UpdateLoot(string lootName)
|
||||||
|
{
|
||||||
|
UpdateType = "UpdateLoot";
|
||||||
|
this.lootName = lootName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,4 +23,17 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
|
||||||
public Rectangle sourceRectangle { get; set; }
|
public Rectangle sourceRectangle { get; set; }
|
||||||
public string tileSetName { get; set; }
|
public string tileSetName { get; set; }
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// При создании тайла TODO move to another file
|
||||||
|
/// </summary>
|
||||||
|
public class UpdateStopObjectCreated : UpdateData
|
||||||
|
{
|
||||||
|
public UpdateStopObjectCreated() { UpdateType = "UpdateStopObjectCreated"; }
|
||||||
|
public Texture2D TextureTile { get; set; }
|
||||||
|
public Vector2 Position { get; set; }
|
||||||
|
public Point Size { get; set; }
|
||||||
|
public Rectangle sourceRectangle { get; set; }
|
||||||
|
public string tileSetName { get; set; }
|
||||||
|
public Rectangle[] collisions { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ using System.Linq;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Microsoft.Xna.Framework.Media;
|
using Microsoft.Xna.Framework.Media;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using ZoFo.GameCore.GUI;
|
||||||
|
|
||||||
namespace ZoFo.GameCore.GameManagers
|
namespace ZoFo.GameCore.GameManagers
|
||||||
{
|
{
|
||||||
|
@ -38,7 +39,7 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
string[] soundFiles = k.Select(x => x.Split("\\").Last().Split("/").Last().Replace(".xnb", "")).ToArray();// папка со звуками там где exe
|
string[] soundFiles = k.Select(x => x.Split("\\").Last().Split("/").Last().Replace(".xnb", "")).ToArray();// папка со звуками там где exe
|
||||||
foreach (var soundFile in soundFiles)
|
foreach (var soundFile in soundFiles)
|
||||||
{
|
{
|
||||||
Sounds.Add(soundFile, AppManager.Instance.Content.Load<SoundEffect>("sounds//" + soundFile));
|
Sounds.Add(soundFile, AppManager.Instance.Content.Load<SoundEffect>(Path.Combine("sounds", soundFile)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,10 @@ namespace ZoFo.GameCore.GameObjects.Entities
|
||||||
{
|
{
|
||||||
|
|
||||||
//public override GraphicsComponent graphicsComponent { get; } = new GraphicsComponent(new List<string> { "тут пишите название анимации" }, "сдублируйте " +
|
//public override GraphicsComponent graphicsComponent { get; } = new GraphicsComponent(new List<string> { "тут пишите название анимации" }, "сдублируйте " +
|
||||||
public override GraphicsComponent graphicsComponent { get; } = new GraphicsComponent(new List<string> { "player_running_top_rotate" }, "player_running_top_rotate");
|
|
||||||
|
|
||||||
|
public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List<string> { "player_idle_rotate_weapon" }, "player_idle_rotate_weapon");
|
||||||
|
|
||||||
public EntittyForAnimationTests(Vector2 position) : base(position)
|
public EntittyForAnimationTests(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0,16*12, 16 * 16);
|
graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0,16*12, 16 * 16);
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables
|
||||||
|
{
|
||||||
|
class Ammo:Collectable
|
||||||
|
{
|
||||||
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("Textures/icons/8");
|
||||||
|
public Ammo(Vector2 position) : base(position)
|
||||||
|
{
|
||||||
|
graphicsComponent.ObjectDrawRectangle.Width = 20;
|
||||||
|
graphicsComponent.ObjectDrawRectangle.Height = 20;
|
||||||
|
}
|
||||||
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
|
{
|
||||||
|
AppManager.Instance.server.AddData(new UpdateLoot("Ammo"));
|
||||||
|
AppManager.Instance.server.DeleteObject(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables
|
||||||
|
{
|
||||||
|
class Antiradine:Collectable
|
||||||
|
{
|
||||||
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("Antiradine");
|
||||||
|
public Antiradine(Vector2 position) : base(position)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
|
{
|
||||||
|
AppManager.Instance.server.AddData(new UpdateLoot("Antiradine"));
|
||||||
|
AppManager.Instance.server.DeleteObject(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables
|
||||||
|
{
|
||||||
|
public class BottleOfWater : Collectable
|
||||||
|
{
|
||||||
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("BottleOfWater");
|
||||||
|
public BottleOfWater(Vector2 position) : base(position)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
|
{
|
||||||
|
AppManager.Instance.server.AddData(new UpdateLoot("BottleOfWater"));
|
||||||
|
AppManager.Instance.server.DeleteObject(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZoFo.GameCore.Graphics;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables
|
||||||
|
{
|
||||||
|
public class Peeble:Collectable
|
||||||
|
{
|
||||||
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("Peeble");
|
||||||
|
|
||||||
|
public Peeble(Vector2 position) : base(position)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
|
{
|
||||||
|
AppManager.Instance.server.AddData(new UpdateLoot("Peeble"));
|
||||||
|
AppManager.Instance.server.DeleteObject(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables
|
||||||
|
{
|
||||||
|
class PureBottleOfWater:Collectable
|
||||||
|
{
|
||||||
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("PureBottleOfWater");
|
||||||
|
|
||||||
|
public PureBottleOfWater(Vector2 position) : base(position)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
|
{
|
||||||
|
AppManager.Instance.server.AddData(new UpdateLoot("PureBottleOfWater"));
|
||||||
|
AppManager.Instance.server.DeleteObject(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables
|
||||||
|
{
|
||||||
|
class RottenFlesh:Collectable
|
||||||
|
{
|
||||||
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("RottenFlesh");
|
||||||
|
public RottenFlesh(Vector2 position) : base(position)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
|
{
|
||||||
|
AppManager.Instance.server.AddData(new UpdateLoot("RottenFlesh"));
|
||||||
|
AppManager.Instance.server.DeleteObject(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables
|
||||||
|
{
|
||||||
|
class Steel:Collectable
|
||||||
|
{
|
||||||
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("Steel");
|
||||||
|
|
||||||
|
public Steel(Vector2 position) : base(position)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
|
{
|
||||||
|
AppManager.Instance.server.AddData(new UpdateLoot("Steel"));
|
||||||
|
AppManager.Instance.server.DeleteObject(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,14 +1,23 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
|
||||||
using ZoFo.GameCore.Graphics;
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables;
|
namespace ZoFo.GameCore.GameObjects.Entities.Interactables.Collectables;
|
||||||
|
|
||||||
public class Wood : Collectable
|
public class Wood : Collectable
|
||||||
{
|
{
|
||||||
public override GraphicsComponent graphicsComponent { get; } = new(new List<string> { "Wood" }, "Wood");
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("Wood");
|
||||||
|
|
||||||
public Wood(Vector2 position) : base(position)
|
public Wood(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
|
{
|
||||||
|
AppManager.Instance.server.AddData(new UpdateLoot("Wood"));
|
||||||
|
AppManager.Instance.server.DeleteObject(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,16 +9,16 @@ public class Door : Interactable
|
||||||
{
|
{
|
||||||
public bool isOpened;
|
public bool isOpened;
|
||||||
|
|
||||||
public override GraphicsComponent graphicsComponent { get; } = new(new List<string> { "DoorInteraction" }, "DoorInteraction");
|
public override StaticGraphicsComponent graphicsComponent { get; } = new("DoorInteraction");
|
||||||
|
|
||||||
public Door(Vector2 position) : base(position)
|
public Door(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
graphicsComponent.OnAnimationEnd += _ => { isOpened = !isOpened; };
|
//graphicsComponent.OnAnimationEnd += _ => { isOpened = !isOpened; };//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - SD
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnInteraction(object sender, CollisionComponent e)
|
public override void OnInteraction(object sender, CollisionComponent e)
|
||||||
{
|
{
|
||||||
graphicsComponent.AnimationSelect("DoorInteraction", isOpened);
|
//graphicsComponent.AnimationSelect("DoorInteraction", isOpened);
|
||||||
graphicsComponent.AnimationStep();
|
//graphicsComponent.AnimationStep();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@ namespace ZoFo.GameCore.GameObjects.Entities.Interactables;
|
||||||
|
|
||||||
public class Interactable : Entity
|
public class Interactable : Entity
|
||||||
{
|
{
|
||||||
public override GraphicsComponent graphicsComponent => throw new System.NotImplementedException();
|
public override StaticGraphicsComponent graphicsComponent => throw new System.NotImplementedException();
|
||||||
|
|
||||||
public Interactable(Vector2 position) : base(position)
|
public Interactable(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,7 +8,14 @@ using Microsoft.Xna.Framework.Content;
|
||||||
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies;
|
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies;
|
||||||
public class Enemy : LivingEntity
|
public class Enemy : LivingEntity
|
||||||
{
|
{
|
||||||
|
protected float speed;
|
||||||
|
protected int health;
|
||||||
public Enemy(Vector2 position) : base(position)
|
public Enemy(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
|
}
|
||||||
|
public override void Update()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies
|
||||||
|
{
|
||||||
|
class Zombie : Enemy
|
||||||
|
{
|
||||||
|
public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent("Textures/icons/8");
|
||||||
|
public Zombie(Vector2 position) : base(position)
|
||||||
|
{
|
||||||
|
health = 5;
|
||||||
|
speed =2;
|
||||||
|
collisionComponent.stopRectangle = new Rectangle(0, 0, 100, 100);
|
||||||
|
graphicsComponent.ObjectDrawRectangle = new Rectangle(0, 0, 100, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Update()
|
||||||
|
{
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
velocity = Vector2.Zero;
|
||||||
|
}
|
||||||
|
//position.X += velocity.X*t;
|
||||||
|
//position.Y += velocity.Y * t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,12 +6,13 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player
|
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player
|
||||||
{
|
{
|
||||||
internal class LootData
|
class LootData
|
||||||
{
|
{
|
||||||
public Dictionary<string, int> loots;
|
public Dictionary<string, int> loots;
|
||||||
public void AddLoot(object lootObject, int quantity)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
public void AddLoot(string lootName, int quantity)
|
||||||
|
{
|
||||||
|
loots.Add(lootName, quantity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using Microsoft.Xna.Framework.Input;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.Xna.Framework.Input;
|
||||||
using ZoFo.GameCore.GameManagers;
|
using ZoFo.GameCore.GameManagers;
|
||||||
using ZoFo.GameCore.GameManagers.CollisionManager;
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer;
|
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer;
|
||||||
|
@ -21,14 +21,14 @@ public class Player : LivingEntity
|
||||||
public bool IsTryingToShoot { get; set; }
|
public bool IsTryingToShoot { get; set; }
|
||||||
private float speed;
|
private float speed;
|
||||||
private int health;
|
private int health;
|
||||||
public override GraphicsComponent graphicsComponent { get; } = new GraphicsComponent(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)
|
public Player(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
//InputWeaponRotation = new Vector2(0, 0);
|
//InputWeaponRotation = new Vector2(0, 0);
|
||||||
//InputPlayerRotation = new Vector2(0, 0);
|
//InputPlayerRotation = new Vector2(0, 0);
|
||||||
|
graphicsComponent.ObjectDrawRectangle = new Rectangle(0, 0, 100, 100);
|
||||||
collisionComponent.stopRectangle = new Rectangle(0, 0, 100, 100);
|
collisionComponent.stopRectangle = new Rectangle(0, 0, 100, 100);
|
||||||
graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0,100,100);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ public abstract class GameObject
|
||||||
public Vector2 position;
|
public Vector2 position;
|
||||||
|
|
||||||
public Vector2 rotation; //вектор направления объекта
|
public Vector2 rotation; //вектор направления объекта
|
||||||
public abstract GraphicsComponent graphicsComponent { get; }
|
public virtual GraphicsComponent graphicsComponent { get; }
|
||||||
|
|
||||||
#region ServerSide
|
#region ServerSide
|
||||||
public GameObject(Vector2 position)
|
public GameObject(Vector2 position)
|
||||||
|
@ -81,7 +81,7 @@ public abstract class GameObject
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual void Draw(SpriteBatch spriteBatch)
|
public virtual void Draw(SpriteBatch spriteBatch)
|
||||||
{
|
{
|
||||||
graphicsComponent.DrawAnimation(graphicsComponent.ObjectDrawRectangle, spriteBatch);
|
graphicsComponent.Draw(graphicsComponent.ObjectDrawRectangle, spriteBatch);
|
||||||
//debug
|
//debug
|
||||||
DrawDebugRectangle(spriteBatch, graphicsComponent.ObjectDrawRectangle);
|
DrawDebugRectangle(spriteBatch, graphicsComponent.ObjectDrawRectangle);
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,8 @@ namespace ZoFo.GameCore.GameObjects.MapObjects
|
||||||
{
|
{
|
||||||
public virtual bool IsColliderOn { get; protected set; } = true;//Who added that?
|
public virtual bool IsColliderOn { get; protected set; } = true;//Who added that?
|
||||||
public Rectangle sourceRectangle;
|
public Rectangle sourceRectangle;
|
||||||
public override GraphicsComponent graphicsComponent { get; } = new();
|
public override GraphicsComponent graphicsComponent { get; }
|
||||||
|
= new StaticGraphicsComponent();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Создается простой объект на карте - no animations, только где, насколько крупно рисовать, по какой сорс ректанглу рисовать и из какой текстуры
|
/// Создается простой объект на карте - no animations, только где, насколько крупно рисовать, по какой сорс ректанглу рисовать и из какой текстуры
|
||||||
|
@ -27,15 +28,16 @@ namespace ZoFo.GameCore.GameObjects.MapObjects
|
||||||
/// <param name="textureName"></param>
|
/// <param name="textureName"></param>
|
||||||
public MapObject(Vector2 position, Vector2 size, Rectangle sourceRectangle, string textureName) : base(position)
|
public MapObject(Vector2 position, Vector2 size, Rectangle sourceRectangle, string textureName) : base(position)
|
||||||
{
|
{
|
||||||
|
(graphicsComponent as StaticGraphicsComponent)._textureName = textureName;
|
||||||
|
(graphicsComponent as StaticGraphicsComponent).BuildComponent(textureName);
|
||||||
|
(graphicsComponent as StaticGraphicsComponent).ObjectDrawRectangle = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y);
|
||||||
|
(graphicsComponent as StaticGraphicsComponent).LoadContent();
|
||||||
this.sourceRectangle = sourceRectangle;
|
this.sourceRectangle = sourceRectangle;
|
||||||
graphicsComponent.ObjectDrawRectangle = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y);
|
|
||||||
graphicsComponent.BuildComponent(textureName);
|
|
||||||
graphicsComponent.LoadContent();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
public override void Draw(SpriteBatch spriteBatch)
|
public override void Draw(SpriteBatch spriteBatch)
|
||||||
{
|
{
|
||||||
graphicsComponent.DrawAnimation(graphicsComponent.ObjectDrawRectangle, spriteBatch, sourceRectangle);
|
graphicsComponent.Draw(graphicsComponent.ObjectDrawRectangle, spriteBatch, sourceRectangle);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +1,32 @@
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
using ZoFo.GameCore.GameManagers.CollisionManager;
|
using ZoFo.GameCore.GameManagers.CollisionManager;
|
||||||
|
|
||||||
namespace ZoFo.GameCore.GameObjects.MapObjects.StopObjects;
|
namespace ZoFo.GameCore.GameObjects.MapObjects.StopObjects;
|
||||||
|
|
||||||
public class StopObject : MapObject
|
public class StopObject : MapObject
|
||||||
{
|
{
|
||||||
CollisionComponent[] collisionComponent;
|
public CollisionComponent[] collisionComponents;
|
||||||
|
|
||||||
|
|
||||||
public StopObject(Vector2 position, Vector2 size, Rectangle sourceRectangle, string textureName, Rectangle[] collisions) : base(position, size, sourceRectangle, textureName)
|
public StopObject(Vector2 position, Vector2 size, Rectangle sourceRectangle, string textureName, Rectangle[] collisions) : base(position, size, sourceRectangle, textureName)
|
||||||
{
|
{
|
||||||
collisionComponent = new CollisionComponent[collisions.Length];
|
|
||||||
for (int i = 0; i < collisionComponent.Length; i++)
|
collisionComponents = new CollisionComponent[collisions.Length];
|
||||||
|
for (int i = 0; i < collisionComponents.Length; i++)
|
||||||
{
|
{
|
||||||
collisionComponent[i] = new CollisionComponent(this, true, collisions[i]);
|
collisionComponents[i] = new CollisionComponent(this, true, new Rectangle(0,0, (int)size.X, (int)size.Y)/*collisions[i]*/);
|
||||||
}
|
}
|
||||||
|
//REDO
|
||||||
// TODO: Написать коллизию, пусть тразмер будет чисто таким же как и текстурка.
|
// TODO: Написать коллизию, пусть тразмер будет чисто таким же как и текстурка.
|
||||||
// Поменяйте уровень защиты конструктора, после снимите в MapManager комментарий в методе LoadMap с создания StopObject-а
|
// Поменяйте уровень защиты конструктора, после снимите в MapManager комментарий в методе LoadMap с создания StopObject-а
|
||||||
}
|
}
|
||||||
|
public override void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
base.Draw(spriteBatch);
|
||||||
|
DrawDebugRectangle(spriteBatch, new Rectangle((int)position.X, (int)position.Y, collisionComponents[0].stopRectangle.Width, collisionComponents[0].stopRectangle.Height));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
247
ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs
Normal file
|
@ -0,0 +1,247 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using ZoFo.GameCore.GameManagers;
|
||||||
|
using ZoFo.GameCore.GUI;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.Graphics
|
||||||
|
{
|
||||||
|
|
||||||
|
public class AnimatedGraphicsComponent : GraphicsComponent
|
||||||
|
{
|
||||||
|
|
||||||
|
public event Action<string> actionOfAnimationEnd;
|
||||||
|
public List<AnimationContainer> animations;
|
||||||
|
private List<Texture2D> textures;
|
||||||
|
private List<string> texturesNames;
|
||||||
|
private AnimationContainer currentAnimation;
|
||||||
|
static public int Camera_XW=800;
|
||||||
|
static public int Camera_YH = 400;
|
||||||
|
static public Vector2 CameraSize = new Vector2(1800, 960);
|
||||||
|
public int parentId;
|
||||||
|
public AnimationContainer CurrentAnimation
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return currentAnimation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string LastAnimation { get; set; }
|
||||||
|
public string GetCurrentAnimation
|
||||||
|
{
|
||||||
|
get { return currentAnimation.Id; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private AnimationContainer neitralAnimation;
|
||||||
|
//private SpriteBatch _spriteBatch;
|
||||||
|
|
||||||
|
private int currentFrame;
|
||||||
|
public int CurrentFrame
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return currentFrame;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Needed to ckeck whether the frame has changed since last update call
|
||||||
|
private int lastUpdateCallFrame;
|
||||||
|
public int LastUpdateCallFrame
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return lastUpdateCallFrame;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public int CurrentFrameInterval { get => interval; }
|
||||||
|
public void Force_Set_CurrentFrameInterval(int newFrameInterval) { }
|
||||||
|
private int interval;
|
||||||
|
private int lastInterval;
|
||||||
|
private Rectangle sourceRectangle;
|
||||||
|
public AnimatedGraphicsComponent(List<string> animationsId, string neitralAnimationId)
|
||||||
|
{
|
||||||
|
//this._spriteBatch = _spriteBatch;
|
||||||
|
currentFrame = 0;
|
||||||
|
lastInterval = 1;
|
||||||
|
LoadAnimations(animationsId, neitralAnimationId);
|
||||||
|
currentAnimation = neitralAnimation;
|
||||||
|
SetInterval();
|
||||||
|
buildSourceRectangle();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AnimatedGraphicsComponent(string textureName)
|
||||||
|
{
|
||||||
|
animations = new List<AnimationContainer>();
|
||||||
|
textures = new List<Texture2D>();
|
||||||
|
var texture = AppManager.Instance.Content.Load<Texture2D>(textureName);
|
||||||
|
textures.Add(texture);
|
||||||
|
AnimationContainer animationContainer = new AnimationContainer();
|
||||||
|
animationContainer.StartSpriteRectangle = new Rectangle(0, 0, texture.Width, texture.Height);
|
||||||
|
animationContainer.TextureFrameInterval = 0;
|
||||||
|
animationContainer.TextureName = texture.Name;
|
||||||
|
animationContainer.IsCycle = true;
|
||||||
|
animationContainer.FramesCount = 1;
|
||||||
|
animationContainer.FrameTime = new List<Tuple<int, int>>() { new Tuple<int, int>(0, 10) };
|
||||||
|
animationContainer.Id = texture.Name;
|
||||||
|
currentAnimation = animationContainer;
|
||||||
|
neitralAnimation = animationContainer;
|
||||||
|
animations.Add(animationContainer);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadAnimations(List<string> animationsId, string neitralAnimationId)
|
||||||
|
{
|
||||||
|
animations = new List<AnimationContainer>();
|
||||||
|
foreach (var id in animationsId)
|
||||||
|
{
|
||||||
|
animations.Add(AppManager.Instance.animationBuilder.Animations.Find(x => x.Id == id));
|
||||||
|
if (id == neitralAnimationId)
|
||||||
|
{
|
||||||
|
neitralAnimation = animations.Last();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadContent()
|
||||||
|
{
|
||||||
|
textures = new List<Texture2D>();
|
||||||
|
texturesNames = new List<string>();
|
||||||
|
|
||||||
|
foreach (var animation in animations)
|
||||||
|
{
|
||||||
|
if (!texturesNames.Contains(animation.TextureName))
|
||||||
|
{
|
||||||
|
texturesNames.Add(animation.TextureName);
|
||||||
|
textures.Add(AppManager.Instance.Content.Load<Texture2D>(animation.TextureName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StartAnimation(string startedanimationId)
|
||||||
|
{
|
||||||
|
currentFrame = 0;
|
||||||
|
currentAnimation = animations.Find(x => x.Id == startedanimationId);
|
||||||
|
|
||||||
|
buildSourceRectangle();
|
||||||
|
SetInterval();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopAnimation()
|
||||||
|
{
|
||||||
|
currentFrame = 0;
|
||||||
|
interval = 0;
|
||||||
|
currentAnimation = neitralAnimation;
|
||||||
|
buildSourceRectangle();
|
||||||
|
SetInterval();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Update()
|
||||||
|
{
|
||||||
|
lastUpdateCallFrame = currentFrame;
|
||||||
|
if (interval == 0)
|
||||||
|
{
|
||||||
|
currentFrame++;
|
||||||
|
if (currentAnimation.FramesCount <= currentFrame)
|
||||||
|
{
|
||||||
|
if (!currentAnimation.IsCycle)
|
||||||
|
{
|
||||||
|
if (actionOfAnimationEnd != null)
|
||||||
|
{
|
||||||
|
actionOfAnimationEnd(currentAnimation.Id);
|
||||||
|
}
|
||||||
|
currentAnimation = neitralAnimation;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
currentFrame = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
buildSourceRectangle();
|
||||||
|
SetInterval();
|
||||||
|
}
|
||||||
|
|
||||||
|
interval--;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch)
|
||||||
|
{
|
||||||
|
Texture2D texture = textures[texturesNames.FindIndex(x => x == currentAnimation.TextureName)];
|
||||||
|
float scale;
|
||||||
|
if (currentAnimation.Offset.X != 0)
|
||||||
|
{
|
||||||
|
destinationRectangle.X -= (int)currentAnimation.Offset.X;
|
||||||
|
scale = destinationRectangle.Height / sourceRectangle.Height;
|
||||||
|
destinationRectangle.Width = (int)(sourceRectangle.Width * scale);
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (currentAnimation.Offset.Y != 0)
|
||||||
|
{
|
||||||
|
destinationRectangle.Y -= (int)currentAnimation.Offset.Y;
|
||||||
|
scale = destinationRectangle.Width / sourceRectangle.Width;
|
||||||
|
destinationRectangle.Height = (int)(sourceRectangle.Height * scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
destinationRectangle.X -= CameraPosition.X;
|
||||||
|
destinationRectangle.Y -= CameraPosition.Y;
|
||||||
|
|
||||||
|
destinationRectangle = Scaling(destinationRectangle);
|
||||||
|
_spriteBatch.Draw(texture,
|
||||||
|
destinationRectangle, sourceRectangle, Color.White);
|
||||||
|
}
|
||||||
|
public override void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle)
|
||||||
|
{
|
||||||
|
Texture2D texture = textures[texturesNames.FindIndex(x => x == currentAnimation.TextureName)];
|
||||||
|
float scale;
|
||||||
|
if (currentAnimation.Offset.X != 0)
|
||||||
|
{
|
||||||
|
destinationRectangle.X -= (int)currentAnimation.Offset.X;
|
||||||
|
scale = destinationRectangle.Height / sourceRectangle.Height;
|
||||||
|
destinationRectangle.Width = (int)(sourceRectangle.Width * scale);
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (currentAnimation.Offset.Y != 0)
|
||||||
|
{
|
||||||
|
destinationRectangle.Y -= (int)currentAnimation.Offset.Y;
|
||||||
|
scale = destinationRectangle.Width / sourceRectangle.Width;
|
||||||
|
destinationRectangle.Height = (int)(sourceRectangle.Height * scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
destinationRectangle.X -= CameraPosition.X;
|
||||||
|
destinationRectangle.Y -= CameraPosition.Y;
|
||||||
|
|
||||||
|
destinationRectangle = Scaling(destinationRectangle);
|
||||||
|
_spriteBatch.Draw(texture,
|
||||||
|
destinationRectangle, sourceRectangle, Color.White);
|
||||||
|
}
|
||||||
|
private void buildSourceRectangle()
|
||||||
|
{
|
||||||
|
sourceRectangle = new Rectangle();
|
||||||
|
if (currentAnimation == null)
|
||||||
|
{
|
||||||
|
currentAnimation = neitralAnimation;
|
||||||
|
}
|
||||||
|
sourceRectangle.X = currentAnimation.StartSpriteRectangle.X + currentFrame *
|
||||||
|
(currentAnimation.StartSpriteRectangle.Width + currentAnimation.TextureFrameInterval);
|
||||||
|
sourceRectangle.Y = currentAnimation.StartSpriteRectangle.Y;
|
||||||
|
sourceRectangle.Height = currentAnimation.StartSpriteRectangle.Height;
|
||||||
|
sourceRectangle.Width = currentAnimation.StartSpriteRectangle.Width;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetInterval()
|
||||||
|
{
|
||||||
|
Tuple<int, int> i = currentAnimation.FrameTime.Find(x => x.Item1 == currentFrame);
|
||||||
|
if (i != null)
|
||||||
|
{
|
||||||
|
interval = i.Item2;
|
||||||
|
lastInterval = interval;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
interval = lastInterval;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,6 +16,8 @@ namespace ZoFo.GameCore.Graphics
|
||||||
|
|
||||||
StreamReader reader;
|
StreamReader reader;
|
||||||
foreach (var fileName in animationFilesNames)
|
foreach (var fileName in animationFilesNames)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
if (!fileName.EndsWith(".animation")) continue;
|
if (!fileName.EndsWith(".animation")) continue;
|
||||||
reader = new StreamReader(fileName);
|
reader = new StreamReader(fileName);
|
||||||
|
@ -24,6 +26,12 @@ namespace ZoFo.GameCore.Graphics
|
||||||
Animations.Add(animation);
|
Animations.Add(animation);
|
||||||
reader.Close();
|
reader.Close();
|
||||||
}
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,255 +1,20 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using ZoFo.GameCore.GameManagers;
|
|
||||||
|
|
||||||
namespace ZoFo.GameCore.Graphics
|
namespace ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
public abstract class GraphicsComponent
|
||||||
{
|
{
|
||||||
|
|
||||||
public class GraphicsComponent
|
|
||||||
{
|
|
||||||
public Rectangle ObjectDrawRectangle;
|
public Rectangle ObjectDrawRectangle;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public event Action<string> OnAnimationEnd;
|
|
||||||
private List<AnimationContainer> animations;
|
|
||||||
private List<Texture2D> textures;
|
|
||||||
public List<string> texturesNames; //rethink public and following that errors
|
|
||||||
private AnimationContainer currentAnimation;
|
|
||||||
public static int scaling = 1;
|
public static int scaling = 1;
|
||||||
|
|
||||||
public bool animating = true;
|
|
||||||
private int step = 1;
|
|
||||||
|
|
||||||
public AnimationContainer CurrentAnimation
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return currentAnimation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public string LastAnimation { get; set; }
|
|
||||||
public string GetCurrentAnimation
|
|
||||||
{
|
|
||||||
get { return currentAnimation.Id; }
|
|
||||||
}
|
|
||||||
|
|
||||||
private AnimationContainer idleAnimation;
|
|
||||||
//private SpriteBatch _spriteBatch;
|
|
||||||
|
|
||||||
private int currentFrame;
|
|
||||||
public int CurrentFrame
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return currentFrame;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private int interval;
|
|
||||||
private int lastInterval;
|
|
||||||
private Rectangle sourceRectangle;
|
|
||||||
public GraphicsComponent(List<string> animationsId, string neitralAnimationId)
|
|
||||||
{
|
|
||||||
//this._spriteBatch = _spriteBatch;
|
|
||||||
currentFrame = 0;
|
|
||||||
lastInterval = 1;
|
|
||||||
LoadAnimations(animationsId, neitralAnimationId);
|
|
||||||
currentAnimation = idleAnimation;
|
|
||||||
SetInterval();
|
|
||||||
buildSourceRectangle();
|
|
||||||
}
|
|
||||||
|
|
||||||
public string mainTextureName;//TODO костыль - пофиксить
|
public string mainTextureName;//TODO костыль - пофиксить
|
||||||
public GraphicsComponent(string textureName)
|
|
||||||
{
|
|
||||||
BuildComponent(textureName);
|
|
||||||
}
|
|
||||||
public GraphicsComponent()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
public void BuildComponent(string textureName)
|
|
||||||
{
|
|
||||||
mainTextureName = textureName;
|
|
||||||
//texturesNames.Add(textureName);//Added by SD
|
|
||||||
animations = new List<AnimationContainer>();
|
|
||||||
textures = new List<Texture2D>();
|
|
||||||
var texture = AppManager.Instance.Content.Load<Texture2D>(textureName);
|
|
||||||
textures.Add(texture);
|
|
||||||
AnimationContainer animationContainer = new AnimationContainer();
|
|
||||||
animationContainer.StartSpriteRectangle = new Rectangle(0, 0, texture.Width, texture.Height);
|
|
||||||
animationContainer.TextureFrameInterval = 0;
|
|
||||||
animationContainer.TextureName = texture.Name;
|
|
||||||
animationContainer.IsCycle = true;
|
|
||||||
animationContainer.FramesCount = 1;
|
|
||||||
animationContainer.FrameTime = new List<Tuple<int, int>>() { new Tuple<int, int>(0, 10) };
|
|
||||||
animationContainer.Id = texture.Name;
|
|
||||||
currentAnimation = animationContainer;
|
|
||||||
idleAnimation = animationContainer;
|
|
||||||
animations.Add(animationContainer);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void LoadAnimations(List<string> animationsId, string neitralAnimationId)
|
public abstract void LoadContent();
|
||||||
{
|
public abstract void Update();
|
||||||
animations = new List<AnimationContainer>();
|
public abstract void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch);
|
||||||
foreach (var id in animationsId)
|
public abstract void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle);
|
||||||
{
|
|
||||||
animations.Add(AppManager.Instance.animationBuilder.Animations.Find(x => x.Id == id));
|
|
||||||
if (id == neitralAnimationId)
|
|
||||||
{
|
|
||||||
idleAnimation = animations.Last();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LoadContent()
|
protected Rectangle Scaling(Rectangle destinationRectangle)
|
||||||
{
|
|
||||||
textures = new List<Texture2D>();
|
|
||||||
texturesNames = new List<string>();
|
|
||||||
|
|
||||||
if (animations is null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var animation in animations)
|
|
||||||
{
|
|
||||||
if (!texturesNames.Contains(animation.TextureName))
|
|
||||||
{
|
|
||||||
texturesNames.Add(animation.TextureName);
|
|
||||||
textures.Add(AppManager.Instance.Content.Load<Texture2D>(animation.TextureName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AnimationSelect(string animationId, bool reverse = false)
|
|
||||||
{
|
|
||||||
currentAnimation = animations.Find(x => x.Id == animationId);
|
|
||||||
if (reverse)
|
|
||||||
{
|
|
||||||
currentFrame = currentAnimation.FramesCount;
|
|
||||||
step = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
step = 1;
|
|
||||||
currentFrame = 1;
|
|
||||||
}
|
|
||||||
buildSourceRectangle();
|
|
||||||
SetInterval();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StartAnimation()
|
|
||||||
{
|
|
||||||
animating = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AnimationStep()
|
|
||||||
{
|
|
||||||
currentFrame += step;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetFrame(int frame)
|
|
||||||
{
|
|
||||||
currentFrame = frame;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StopAnimation()
|
|
||||||
{
|
|
||||||
currentFrame = 0;
|
|
||||||
interval = 0;
|
|
||||||
currentAnimation = idleAnimation;
|
|
||||||
buildSourceRectangle();
|
|
||||||
SetInterval();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AnimationEnd()
|
|
||||||
{
|
|
||||||
if (!currentAnimation.IsCycle)
|
|
||||||
{
|
|
||||||
if (OnAnimationEnd != null)
|
|
||||||
{
|
|
||||||
OnAnimationEnd(currentAnimation.Id);
|
|
||||||
}
|
|
||||||
currentAnimation = idleAnimation;
|
|
||||||
animating = false;
|
|
||||||
}
|
|
||||||
currentFrame = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update()
|
|
||||||
{
|
|
||||||
if (currentAnimation.FramesCount <= currentFrame || currentFrame < 0)
|
|
||||||
{
|
|
||||||
AnimationEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!animating)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (interval == 0)
|
|
||||||
{
|
|
||||||
currentFrame += step;
|
|
||||||
buildSourceRectangle();
|
|
||||||
SetInterval();
|
|
||||||
}
|
|
||||||
|
|
||||||
interval--;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void DrawAnimation(Rectangle destinationRectangle, SpriteBatch _spriteBatch)
|
|
||||||
{
|
|
||||||
Texture2D texture = textures[texturesNames.FindIndex(x => x == currentAnimation.TextureName)];
|
|
||||||
float scale;
|
|
||||||
if (currentAnimation.Offset.X != 0)
|
|
||||||
{
|
|
||||||
destinationRectangle.X -= (int)currentAnimation.Offset.X;
|
|
||||||
scale = destinationRectangle.Height / sourceRectangle.Height;
|
|
||||||
destinationRectangle.Width = (int)(sourceRectangle.Width * scale);
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (currentAnimation.Offset.Y != 0)
|
|
||||||
{
|
|
||||||
destinationRectangle.Y -= (int)currentAnimation.Offset.Y;
|
|
||||||
scale = destinationRectangle.Width / sourceRectangle.Width;
|
|
||||||
destinationRectangle.Height = (int)(sourceRectangle.Height * scale);
|
|
||||||
}
|
|
||||||
|
|
||||||
destinationRectangle.X -= CameraPosition.X;
|
|
||||||
destinationRectangle.Y -= CameraPosition.Y;
|
|
||||||
|
|
||||||
destinationRectangle = Scaling(destinationRectangle);
|
|
||||||
_spriteBatch.Draw(texture,
|
|
||||||
destinationRectangle, sourceRectangle, Color.White);
|
|
||||||
}
|
|
||||||
public void DrawAnimation(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle)
|
|
||||||
{
|
|
||||||
Texture2D texture = textures[texturesNames.FindIndex(x => x == currentAnimation.TextureName)];
|
|
||||||
float scale;
|
|
||||||
if (currentAnimation.Offset.X != 0)
|
|
||||||
{
|
|
||||||
destinationRectangle.X -= (int)currentAnimation.Offset.X;
|
|
||||||
scale = destinationRectangle.Height / sourceRectangle.Height;
|
|
||||||
destinationRectangle.Width = (int)(sourceRectangle.Width * scale);
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (currentAnimation.Offset.Y != 0)
|
|
||||||
{
|
|
||||||
destinationRectangle.Y -= (int)currentAnimation.Offset.Y;
|
|
||||||
scale = destinationRectangle.Width / sourceRectangle.Width;
|
|
||||||
destinationRectangle.Height = (int)(sourceRectangle.Height * scale);
|
|
||||||
}
|
|
||||||
|
|
||||||
destinationRectangle.X -= CameraPosition.X;
|
|
||||||
destinationRectangle.Y -= CameraPosition.Y;
|
|
||||||
|
|
||||||
destinationRectangle = Scaling(destinationRectangle);
|
|
||||||
_spriteBatch.Draw(texture,
|
|
||||||
destinationRectangle, sourceRectangle, Color.White);
|
|
||||||
}
|
|
||||||
private Rectangle Scaling(Rectangle destinationRectangle)
|
|
||||||
{
|
{
|
||||||
destinationRectangle.X *= scaling;
|
destinationRectangle.X *= scaling;
|
||||||
destinationRectangle.Y *= scaling;
|
destinationRectangle.Y *= scaling;
|
||||||
|
@ -257,33 +22,7 @@ namespace ZoFo.GameCore.Graphics
|
||||||
destinationRectangle.Height *= scaling;
|
destinationRectangle.Height *= scaling;
|
||||||
return destinationRectangle;
|
return destinationRectangle;
|
||||||
}
|
}
|
||||||
private void buildSourceRectangle()
|
|
||||||
{
|
|
||||||
sourceRectangle = new Rectangle();
|
|
||||||
if (currentAnimation == null)
|
|
||||||
{
|
|
||||||
currentAnimation = idleAnimation;
|
|
||||||
}
|
|
||||||
sourceRectangle.X = currentAnimation.StartSpriteRectangle.X + currentFrame *
|
|
||||||
(currentAnimation.StartSpriteRectangle.Width + currentAnimation.TextureFrameInterval);
|
|
||||||
sourceRectangle.Y = currentAnimation.StartSpriteRectangle.Y;
|
|
||||||
sourceRectangle.Height = currentAnimation.StartSpriteRectangle.Height;
|
|
||||||
sourceRectangle.Width = currentAnimation.StartSpriteRectangle.Width;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetInterval()
|
|
||||||
{
|
|
||||||
Tuple<int, int> i = currentAnimation.FrameTime.Find(x => x.Item1 == currentFrame);
|
|
||||||
if (i != null)
|
|
||||||
{
|
|
||||||
interval = i.Item2;
|
|
||||||
lastInterval = interval;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
interval = lastInterval;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public static void SetCameraPosition(Vector2 playerPosition)
|
public static void SetCameraPosition(Vector2 playerPosition)
|
||||||
{
|
{
|
||||||
CameraPosition = (playerPosition).ToPoint();
|
CameraPosition = (playerPosition).ToPoint();
|
||||||
|
@ -314,5 +53,4 @@ namespace ZoFo.GameCore.Graphics
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
public static Point CameraPosition = new Point(0, 0);
|
public static Point CameraPosition = new Point(0, 0);
|
||||||
}
|
|
||||||
}
|
}
|
16
ZoFo/GameCore/Graphics/IGraphicsComponent.cs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
|
||||||
|
namespace ZoFo.GameCore.Graphics;
|
||||||
|
|
||||||
|
public interface IGraphicsComponent
|
||||||
|
{
|
||||||
|
public Rectangle ObjectDrawRectangle { get; set; }
|
||||||
|
public static int scaling = 1;
|
||||||
|
public string mainTextureName { get; set; }//TODO костыль - пофиксить
|
||||||
|
|
||||||
|
public abstract void LoadContent();
|
||||||
|
public abstract void Update();
|
||||||
|
public abstract void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch);
|
||||||
|
public abstract void Draw(Rectangle destinationRectangle, SpriteBatch _spriteBatch, Rectangle sourceRectangle);
|
||||||
|
}
|