Merge branch 'refs/heads/Development' into Interactable

This commit is contained in:
Mootfrost777 2024-08-16 23:44:17 +03:00
commit 7bce47259c
50 changed files with 1018 additions and 126 deletions

View file

@ -24,6 +24,10 @@ namespace MonogameLibrary.UI.Elements
private bool isChecked;
HoverState hoverState = HoverState.None;
public bool GetChecked { get { return isChecked; } }
public void SetIsChecked(bool isChecked)
{
this.isChecked=isChecked;
}
public bool InteractUpdate(MouseState mouseState, MouseState prevmouseState)
{
if (rectangle.Intersects(new Rectangle(mouseState.Position, Point.Zero)))

View file

@ -34,6 +34,63 @@
/processorParam:TextureFormat=Compressed
/build:Fonts/Font3.spritefont
#begin MapData/TileMaps/main.tmj
/copy:MapData/TileMaps/main.tmj
#begin MapData/TileMaps/main.tmx
/copy:MapData/TileMaps/main.tmx
#begin MapData/TileSets/TileSet 1.tsj
/copy:MapData/TileSets/TileSet 1.tsj
#begin sounds/Loot.wav
/importer:WavImporter
/processor:SoundEffectProcessor
/processorParam:Quality=Best
/build:sounds/Loot.wav
#begin sounds/Odevanie odezdi.wav
/importer:WavImporter
/processor:SoundEffectProcessor
/processorParam:Quality=Best
/build:sounds/Odevanie odezdi.wav
#begin sounds/Pieot wodichky.wav
/importer:WavImporter
/processor:SoundEffectProcessor
/processorParam:Quality=Best
/build:sounds/Pieot wodichky.wav
#begin sounds/Sshetchik geigera.wav
/importer:WavImporter
/processor:SoundEffectProcessor
/processorParam:Quality=Best
/build:sounds/Sshetchik geigera.wav
#begin sounds/Tabletki 2.wav
/importer:WavImporter
/processor:SoundEffectProcessor
/processorParam:Quality=Best
/build:sounds/Tabletki 2.wav
#begin sounds/Tabletki.mp3
/importer:Mp3Importer
/processor:SongProcessor
/processorParam:Quality=Best
/build:sounds/Tabletki.mp3
#begin sounds/Zombi napal.wav
/importer:WavImporter
/processor:SoundEffectProcessor
/processorParam:Quality=Best
/build:sounds/Zombi napal.wav
#begin sounds/Zombi stoit.wav
/importer:WavImporter
/processor:SoundEffectProcessor
/processorParam:Quality=Best
/build:sounds/Zombi stoit.wav
#begin Textures/GUI/background/base.png
/importer:TextureImporter
/processor:TextureProcessor
@ -166,3 +223,15 @@
/processorParam:TextureFormat=Color
/build:Textures/GUI/switch.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;Textures/TileSets/TileSet 1.png

View file

@ -0,0 +1,167 @@
{ "compressionlevel":-1,
"height":20,
"infinite":true,
"layers":[
{
"chunks":[
{
"data":[24, 24, 24, 28, 29, 24, 24, 24, 28, 46, 29, 24, 25, 115, 45, 46,
24, 24, 24, 25, 23, 24, 24, 24, 50, 2, 51, 24, 50, 2, 2, 2,
24, 24, 24, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28,
28, 29, 24, 28, 10, 32, 29, 24, 24, 28, 46, 29, 24, 24, 24, 50,
47, 23, 24, 50, 32, 10, 32, 46, 29, 50, 2, 51, 24, 24, 24, 24,
1, 32, 29, 90, 25, 23, 50, 2, 32, 29, 24, 90, 28, 29, 24, 24,
51, 50, 32, 29, 50, 51, 90, 24, 25, 45, 46, 29, 25, 23, 24, 90,
24, 24, 50, 32, 46, 29, 24, 28, 10, 2, 2, 51, 50, 51, 24, 90,
24, 24, 24, 50, 2, 32, 46, 10, 32, 29, 24, 90, 24, 24, 24, 90,
29, 24, 89, 24, 24, 50, 3, 23, 50, 32, 46, 46, 46, 46, 29, 24,
51, 24, 24, 28, 29, 24, 25, 23, 24, 25, 1, 2, 3, 111, 45, 29,
24, 90, 24, 50, 51, 24, 25, 23, 28, 47, 23, 89, 50, 3, 115, 23,
24, 24, 24, 24, 24, 89, 50, 32, 47, 1, 51, 24, 24, 50, 2, 51,
28, 29, 24, 24, 24, 24, 28, 10, 2, 51, 24, 24, 24, 24, 24, 28,
10, 32, 29, 24, 24, 24, 25, 23, 28, 29, 90, 24, 24, 90, 24, 50,
32, 10, 51, 24, 24, 24, 50, 32, 10, 32, 29, 24, 90, 28, 29, 24],
"height":16,
"width":16,
"x":-16,
"y":-16
},
{
"data":[10, 51, 24, 90, 24, 25, 23, 28, 29, 24, 24, 24, 24, 24, 24, 24,
51, 24, 28, 29, 24, 50, 32, 10, 51, 24, 24, 24, 24, 24, 24, 24,
29, 28, 10, 32, 46, 29, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24,
51, 25, 23, 50, 2, 32, 29, 25, 23, 24, 24, 28, 29, 24, 90, 24,
24, 25, 23, 24, 24, 25, 23, 50, 51, 24, 24, 50, 32, 29, 24, 90,
24, 50, 32, 29, 90, 25, 45, 29, 24, 24, 24, 24, 50, 51, 24, 89,
24, 89, 50, 51, 24, 25, 114, 23, 24, 24, 24, 24, 24, 24, 24, 24,
24, 24, 28, 29, 24, 50, 2, 51, 24, 24, 90, 28, 29, 24, 24, 28,
24, 24, 25, 23, 89, 24, 24, 24, 28, 46, 29, 25, 23, 24, 24, 50,
28, 46, 10, 51, 24, 28, 46, 29, 25, 111, 45, 10, 51, 28, 29, 24,
50, 2, 51, 24, 24, 25, 115, 45, 10, 3, 1, 51, 24, 25, 23, 24,
24, 24, 24, 24, 24, 50, 2, 2, 32, 10, 51, 24, 90, 25, 23, 24,
24, 24, 24, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 25, 23, 24,
46, 29, 24, 24, 24, 24, 24, 89, 24, 24, 24, 28, 46, 47, 23, 90,
2, 32, 29, 24, 24, 28, 46, 46, 29, 24, 24, 25, 1, 3, 23, 89,
24, 50, 32, 29, 24, 25, 1, 3, 23, 24, 89, 50, 32, 10, 51, 24],
"height":16,
"width":16,
"x":0,
"y":-16
},
{
"data":[24, 24, 24, 24, 90, 24, 89, 24, 89, 24, 50, 51, 89, 24, 24, 24,
24, 28, 29, 28, 29, 24, 24, 24, 24, 28, 29, 24, 24, 24, 28, 29,
24, 25, 23, 50, 51, 24, 24, 28, 29, 50, 51, 24, 24, 24, 25, 45,
90, 50, 51, 28, 29, 24, 24, 25, 23, 24, 24, 28, 29, 24, 50, 3,
24, 24, 28, 10, 51, 90, 90, 50, 51, 24, 24, 50, 51, 24, 24, 50,
24, 24, 25, 45, 29, 24, 28, 29, 24, 24, 24, 24, 24, 28, 29, 24,
90, 24, 50, 2, 51, 28, 10, 51, 90, 24, 28, 29, 24, 25, 45, 46,
29, 90, 24, 24, 24, 50, 51, 24, 24, 28, 10, 32, 46, 10, 3, 1,
32, 29, 24, 90, 24, 24, 24, 24, 28, 47, 23, 50, 2, 51, 50, 51,
25, 23, 24, 24, 28, 46, 46, 46, 47, 114, 45, 29, 24, 24, 24, 24,
50, 32, 29, 24, 50, 3, 111, 111, 115, 111, 1, 32, 29, 24, 24, 24,
24, 50, 51, 24, 28, 10, 2, 2, 2, 2, 32, 10, 51, 24, 24, 89,
24, 24, 89, 90, 25, 23, 24, 24, 24, 24, 50, 32, 46, 46, 29, 89,
24, 24, 24, 90, 25, 23, 89, 24, 28, 29, 90, 50, 2, 2, 51, 24,
24, 24, 24, 28, 10, 51, 24, 28, 47, 45, 29, 24, 24, 24, 24, 24,
24, 24, 24, 25, 23, 24, 90, 50, 2, 2, 32, 46, 46, 46, 46, 46],
"height":16,
"width":16,
"x":16,
"y":-16
},
{
"data":[10, 32, 46, 29, 24, 24, 24, 25, 23, 50, 32, 29, 24, 50, 32, 46,
51, 50, 2, 32, 29, 24, 24, 25, 45, 29, 25, 23, 24, 24, 25, 1,
24, 24, 24, 25, 23, 28, 46, 10, 2, 51, 50, 51, 24, 24, 50, 51,
90, 89, 90, 50, 51, 50, 2, 51, 24, 24, 28, 29, 90, 24, 24, 24,
90, 28, 46, 29, 90, 24, 24, 24, 90, 24, 50, 51, 90, 24, 90, 28,
29, 50, 2, 51, 24, 24, 24, 89, 24, 24, 24, 24, 24, 89, 24, 50,
23, 24, 24, 28, 46, 29, 90, 90, 24, 89, 24, 28, 29, 24, 24, 24,
32, 46, 29, 25, 115, 45, 29, 24, 90, 24, 24, 25, 23, 24, 24, 28,
10, 2, 32, 47, 115, 1, 51, 24, 24, 24, 24, 25, 23, 24, 28, 10,
32, 29, 50, 2, 2, 51, 24, 24, 24, 24, 24, 25, 23, 28, 10, 51,
50, 51, 89, 24, 24, 89, 24, 28, 29, 24, 24, 50, 32, 10, 32, 46,
24, 24, 90, 90, 28, 46, 29, 50, 51, 24, 24, 24, 25, 23, 25, 115,
24, 90, 24, 24, 50, 2, 32, 29, 24, 24, 90, 24, 25, 45, 10, 2,
24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 24, 28, 10, 3, 23, 24,
90, 24, 24, 24, 24, 89, 90, 50, 32, 29, 90, 50, 51, 50, 32, 46,
46, 29, 24, 90, 24, 24, 24, 24, 50, 51, 28, 29, 24, 24, 50, 2],
"height":16,
"width":16,
"x":-16,
"y":0
},
{
"data":[46, 46, 10, 32, 46, 47, 23, 25, 23, 89, 24, 24, 25, 23, 90, 24,
2, 2, 32, 47, 1, 2, 51, 25, 23, 24, 28, 29, 50, 32, 29, 24,
24, 90, 50, 3, 23, 24, 28, 10, 51, 28, 47, 45, 29, 25, 23, 28,
24, 24, 24, 50, 51, 28, 47, 23, 24, 50, 3, 114, 45, 10, 51, 50,
29, 24, 24, 89, 24, 25, 114, 45, 46, 46, 10, 2, 2, 32, 29, 89,
51, 24, 24, 24, 24, 50, 3, 111, 115, 115, 23, 24, 24, 50, 32, 29,
24, 28, 29, 24, 24, 24, 25, 1, 2, 2, 51, 90, 24, 90, 50, 51,
29, 50, 32, 29, 28, 29, 25, 23, 24, 24, 89, 28, 29, 24, 24, 24,
51, 24, 50, 51, 50, 32, 10, 32, 46, 29, 24, 50, 51, 24, 90, 24,
24, 24, 24, 24, 89, 50, 32, 10, 2, 32, 46, 29, 89, 28, 29, 24,
29, 90, 24, 24, 24, 24, 50, 51, 28, 10, 3, 23, 28, 10, 51, 24,
23, 89, 24, 24, 90, 24, 24, 24, 50, 32, 10, 51, 50, 51, 24, 24,
51, 24, 24, 24, 24, 24, 24, 24, 24, 50, 32, 46, 46, 29, 28, 46,
24, 24, 24, 90, 24, 24, 24, 24, 24, 24, 50, 3, 1, 32, 47, 115,
46, 29, 24, 89, 24, 24, 24, 89, 24, 24, 24, 25, 45, 10, 3, 111,
2, 51, 28, 29, 28, 29, 24, 28, 46, 46, 46, 10, 2, 51, 50, 2],
"height":16,
"width":16,
"x":0,
"y":0
},
{
"data":[28, 29, 28, 10, 32, 46, 29, 24, 24, 28, 10, 2, 2, 2, 2, 2,
50, 51, 50, 51, 25, 115, 45, 46, 29, 50, 51, 24, 24, 24, 24, 24,
29, 24, 89, 24, 50, 3, 115, 114, 23, 24, 24, 24, 24, 24, 24, 24,
51, 90, 24, 89, 24, 50, 2, 2, 51, 24, 89, 24, 24, 28, 46, 29,
24, 90, 24, 24, 89, 24, 90, 28, 29, 24, 24, 24, 28, 10, 2, 51,
24, 24, 24, 24, 28, 29, 90, 50, 51, 28, 29, 24, 25, 23, 24, 24,
28, 29, 24, 24, 50, 32, 29, 28, 29, 50, 51, 89, 50, 32, 29, 24,
50, 51, 24, 24, 24, 50, 32, 10, 51, 24, 89, 24, 24, 25, 23, 24,
24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 24, 24, 24, 50, 51, 24,
90, 24, 24, 24, 24, 24, 24, 25, 45, 29, 24, 24, 24, 89, 28, 29,
24, 24, 24, 24, 28, 29, 24, 25, 1, 51, 24, 24, 24, 24, 50, 32,
28, 29, 28, 29, 50, 32, 46, 10, 51, 28, 29, 24, 24, 24, 24, 50,
47, 45, 10, 51, 24, 50, 2, 32, 46, 47, 23, 24, 89, 90, 24, 24,
111, 115, 23, 24, 24, 90, 24, 50, 2, 2, 32, 29, 24, 89, 28, 46,
1, 2, 51, 28, 46, 46, 29, 24, 28, 29, 50, 32, 29, 28, 47, 111,
51, 24, 24, 50, 3, 114, 23, 24, 50, 32, 46, 47, 23, 25, 111, 111],
"height":16,
"width":16,
"x":16,
"y":0
}],
"class":"Tile",
"height":48,
"id":1,
"name":"\u0421\u043b\u043e\u0439 \u0442\u0430\u0439\u043b\u043e\u0432 1",
"opacity":1,
"startx":-16,
"starty":-32,
"type":"tilelayer",
"visible":true,
"width":48,
"x":0,
"y":0
}],
"nextlayerid":2,
"nextobjectid":1,
"orientation":"orthogonal",
"renderorder":"right-down",
"tiledversion":"1.10.2",
"tileheight":16,
"tilesets":[
{
"firstgid":1,
"source":"TileSets\/TileSet 1.tsj"
}],
"tilewidth":16,
"type":"map",
"version":"1.10",
"width":30
}

View file

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.10" tiledversion="1.10.2" orientation="orthogonal" renderorder="right-down" width="30" height="20" tilewidth="16" tileheight="16" infinite="1" nextlayerid="2" nextobjectid="1">
<tileset firstgid="1" source="../TileSets/TileSet 1.tsj"/>
<layer id="1" name="Слой тайлов 1" width="30" height="20">
<data encoding="csv">
<chunk x="-16" y="-16" width="16" height="16">
24,24,24,28,29,24,24,24,28,46,29,24,25,115,45,46,
24,24,24,25,23,24,24,24,50,2,51,24,50,2,2,2,
24,24,24,50,32,29,24,24,24,24,24,24,24,24,24,28,
28,29,24,28,10,32,29,24,24,28,46,29,24,24,24,50,
47,23,24,50,32,10,32,46,29,50,2,51,24,24,24,24,
1,32,29,90,25,23,50,2,32,29,24,90,28,29,24,24,
51,50,32,29,50,51,90,24,25,45,46,29,25,23,24,90,
24,24,50,32,46,29,24,28,10,2,2,51,50,51,24,90,
24,24,24,50,2,32,46,10,32,29,24,90,24,24,24,90,
29,24,89,24,24,50,3,23,50,32,46,46,46,46,29,24,
51,24,24,28,29,24,25,23,24,25,1,2,3,111,45,29,
24,90,24,50,51,24,25,23,28,47,23,89,50,3,115,23,
24,24,24,24,24,89,50,32,47,1,51,24,24,50,2,51,
28,29,24,24,24,24,28,10,2,51,24,24,24,24,24,28,
10,32,29,24,24,24,25,23,28,29,90,24,24,90,24,50,
32,10,51,24,24,24,50,32,10,32,29,24,90,28,29,24
</chunk>
<chunk x="0" y="-16" width="16" height="16">
10,51,24,90,24,25,23,28,29,24,24,24,24,24,24,24,
51,24,28,29,24,50,32,10,51,24,24,24,24,24,24,24,
29,28,10,32,46,29,50,32,29,24,24,24,24,24,24,24,
51,25,23,50,2,32,29,25,23,24,24,28,29,24,90,24,
24,25,23,24,24,25,23,50,51,24,24,50,32,29,24,90,
24,50,32,29,90,25,45,29,24,24,24,24,50,51,24,89,
24,89,50,51,24,25,114,23,24,24,24,24,24,24,24,24,
24,24,28,29,24,50,2,51,24,24,90,28,29,24,24,28,
24,24,25,23,89,24,24,24,28,46,29,25,23,24,24,50,
28,46,10,51,24,28,46,29,25,111,45,10,51,28,29,24,
50,2,51,24,24,25,115,45,10,3,1,51,24,25,23,24,
24,24,24,24,24,50,2,2,32,10,51,24,90,25,23,24,
24,24,24,24,24,24,24,24,50,51,24,24,24,25,23,24,
46,29,24,24,24,24,24,89,24,24,24,28,46,47,23,90,
2,32,29,24,24,28,46,46,29,24,24,25,1,3,23,89,
24,50,32,29,24,25,1,3,23,24,89,50,32,10,51,24
</chunk>
<chunk x="16" y="-16" width="16" height="16">
24,24,24,24,90,24,89,24,89,24,50,51,89,24,24,24,
24,28,29,28,29,24,24,24,24,28,29,24,24,24,28,29,
24,25,23,50,51,24,24,28,29,50,51,24,24,24,25,45,
90,50,51,28,29,24,24,25,23,24,24,28,29,24,50,3,
24,24,28,10,51,90,90,50,51,24,24,50,51,24,24,50,
24,24,25,45,29,24,28,29,24,24,24,24,24,28,29,24,
90,24,50,2,51,28,10,51,90,24,28,29,24,25,45,46,
29,90,24,24,24,50,51,24,24,28,10,32,46,10,3,1,
32,29,24,90,24,24,24,24,28,47,23,50,2,51,50,51,
25,23,24,24,28,46,46,46,47,114,45,29,24,24,24,24,
50,32,29,24,50,3,111,111,115,111,1,32,29,24,24,24,
24,50,51,24,28,10,2,2,2,2,32,10,51,24,24,89,
24,24,89,90,25,23,24,24,24,24,50,32,46,46,29,89,
24,24,24,90,25,23,89,24,28,29,90,50,2,2,51,24,
24,24,24,28,10,51,24,28,47,45,29,24,24,24,24,24,
24,24,24,25,23,24,90,50,2,2,32,46,46,46,46,46
</chunk>
<chunk x="-16" y="0" width="16" height="16">
10,32,46,29,24,24,24,25,23,50,32,29,24,50,32,46,
51,50,2,32,29,24,24,25,45,29,25,23,24,24,25,1,
24,24,24,25,23,28,46,10,2,51,50,51,24,24,50,51,
90,89,90,50,51,50,2,51,24,24,28,29,90,24,24,24,
90,28,46,29,90,24,24,24,90,24,50,51,90,24,90,28,
29,50,2,51,24,24,24,89,24,24,24,24,24,89,24,50,
23,24,24,28,46,29,90,90,24,89,24,28,29,24,24,24,
32,46,29,25,115,45,29,24,90,24,24,25,23,24,24,28,
10,2,32,47,115,1,51,24,24,24,24,25,23,24,28,10,
32,29,50,2,2,51,24,24,24,24,24,25,23,28,10,51,
50,51,89,24,24,89,24,28,29,24,24,50,32,10,32,46,
24,24,90,90,28,46,29,50,51,24,24,24,25,23,25,115,
24,90,24,24,50,2,32,29,24,24,90,24,25,45,10,2,
24,24,24,24,24,24,50,32,29,24,24,28,10,3,23,24,
90,24,24,24,24,89,90,50,32,29,90,50,51,50,32,46,
46,29,24,90,24,24,24,24,50,51,28,29,24,24,50,2
</chunk>
<chunk x="0" y="0" width="16" height="16">
46,46,10,32,46,47,23,25,23,89,24,24,25,23,90,24,
2,2,32,47,1,2,51,25,23,24,28,29,50,32,29,24,
24,90,50,3,23,24,28,10,51,28,47,45,29,25,23,28,
24,24,24,50,51,28,47,23,24,50,3,114,45,10,51,50,
29,24,24,89,24,25,114,45,46,46,10,2,2,32,29,89,
51,24,24,24,24,50,3,111,115,115,23,24,24,50,32,29,
24,28,29,24,24,24,25,1,2,2,51,90,24,90,50,51,
29,50,32,29,28,29,25,23,24,24,89,28,29,24,24,24,
51,24,50,51,50,32,10,32,46,29,24,50,51,24,90,24,
24,24,24,24,89,50,32,10,2,32,46,29,89,28,29,24,
29,90,24,24,24,24,50,51,28,10,3,23,28,10,51,24,
23,89,24,24,90,24,24,24,50,32,10,51,50,51,24,24,
51,24,24,24,24,24,24,24,24,50,32,46,46,29,28,46,
24,24,24,90,24,24,24,24,24,24,50,3,1,32,47,115,
46,29,24,89,24,24,24,89,24,24,24,25,45,10,3,111,
2,51,28,29,28,29,24,28,46,46,46,10,2,51,50,2
</chunk>
<chunk x="16" y="0" width="16" height="16">
28,29,28,10,32,46,29,24,24,28,10,2,2,2,2,2,
50,51,50,51,25,115,45,46,29,50,51,24,24,24,24,24,
29,24,89,24,50,3,115,114,23,24,24,24,24,24,24,24,
51,90,24,89,24,50,2,2,51,24,89,24,24,28,46,29,
24,90,24,24,89,24,90,28,29,24,24,24,28,10,2,51,
24,24,24,24,28,29,90,50,51,28,29,24,25,23,24,24,
28,29,24,24,50,32,29,28,29,50,51,89,50,32,29,24,
50,51,24,24,24,50,32,10,51,24,89,24,24,25,23,24,
24,24,24,24,24,24,50,32,29,24,24,24,24,50,51,24,
90,24,24,24,24,24,24,25,45,29,24,24,24,89,28,29,
24,24,24,24,28,29,24,25,1,51,24,24,24,24,50,32,
28,29,28,29,50,32,46,10,51,28,29,24,24,24,24,50,
47,45,10,51,24,50,2,32,46,47,23,24,89,90,24,24,
111,115,23,24,24,90,24,50,2,2,32,29,24,89,28,46,
1,2,51,28,46,46,29,24,28,29,50,32,29,28,47,111,
51,24,24,50,3,114,23,24,50,32,46,47,23,25,111,111
</chunk>
</data>
</layer>
</map>

View file

@ -0,0 +1,166 @@
{ "class":"Tile",
"columns":22,
"grid":
{
"height":24,
"orientation":"orthogonal",
"width":24
},
"image":"..\/..\/..\/..\/Content\/Textures\/Background\/TilesetFloor.png",
"imageheight":417,
"imagewidth":352,
"margin":0,
"name":"TileSet 1",
"spacing":0,
"tilecount":572,
"tiledversion":"1.10.2",
"tileheight":16,
"tiles":[
{
"id":27,
"probability":0.5
},
{
"id":28,
"probability":0.5
},
{
"id":49,
"probability":0.5
},
{
"id":50,
"probability":0.5
},
{
"id":88,
"probability":0.100000001490116
},
{
"id":89,
"probability":0.100000001490116
},
{
"id":110,
"probability":2
},
{
"id":111,
"probability":0.100000001490116
},
{
"id":112,
"probability":0.100000001490116
}],
"tilewidth":16,
"type":"tileset",
"version":"1.10",
"wangsets":[
{
"colors":[
{
"color":"#ff0000",
"name":"Sand",
"probability":1,
"tile":23
},
{
"color":"#00ff00",
"name":"SandStone",
"probability":0.3,
"tile":110
}],
"name":"\u041f\u0435\u0441\u0447\u0430\u043d\u044b\u0439",
"tile":-1,
"type":"corner",
"wangtiles":[
{
"tileid":0,
"wangid":[0, 2, 0, 1, 0, 2, 0, 2]
},
{
"tileid":1,
"wangid":[0, 2, 0, 1, 0, 1, 0, 2]
},
{
"tileid":2,
"wangid":[0, 2, 0, 2, 0, 1, 0, 2]
},
{
"tileid":9,
"wangid":[0, 2, 0, 1, 0, 2, 0, 1]
},
{
"tileid":22,
"wangid":[0, 1, 0, 1, 0, 2, 0, 2]
},
{
"tileid":23,
"wangid":[0, 1, 0, 1, 0, 1, 0, 1]
},
{
"tileid":24,
"wangid":[0, 2, 0, 2, 0, 1, 0, 1]
},
{
"tileid":27,
"wangid":[0, 1, 0, 2, 0, 1, 0, 1]
},
{
"tileid":28,
"wangid":[0, 1, 0, 1, 0, 2, 0, 1]
},
{
"tileid":31,
"wangid":[0, 1, 0, 2, 0, 1, 0, 2]
},
{
"tileid":44,
"wangid":[0, 1, 0, 2, 0, 2, 0, 2]
},
{
"tileid":45,
"wangid":[0, 1, 0, 2, 0, 2, 0, 1]
},
{
"tileid":46,
"wangid":[0, 2, 0, 2, 0, 2, 0, 1]
},
{
"tileid":49,
"wangid":[0, 2, 0, 1, 0, 1, 0, 1]
},
{
"tileid":50,
"wangid":[0, 1, 0, 1, 0, 1, 0, 2]
},
{
"tileid":88,
"wangid":[0, 1, 0, 1, 0, 1, 0, 1]
},
{
"tileid":89,
"wangid":[0, 1, 0, 1, 0, 1, 0, 1]
},
{
"tileid":110,
"wangid":[0, 2, 0, 2, 0, 2, 0, 2]
},
{
"tileid":111,
"wangid":[0, 2, 0, 2, 0, 2, 0, 2]
},
{
"tileid":112,
"wangid":[0, 2, 0, 2, 0, 2, 0, 2]
},
{
"tileid":113,
"wangid":[0, 2, 0, 2, 0, 2, 0, 2]
},
{
"tileid":114,
"wangid":[0, 2, 0, 2, 0, 2, 0, 2]
}]
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -7,6 +7,11 @@ using ZoFo.GameCore.GameManagers.NetworkManager.Updates;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using System;
using ZoFo.GameCore.GameObjects;
using ZoFo.GameCore.GameObjects.MapObjects;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
using ZoFo.GameCore.GameObjects.MapObjects.Tiles;
using System.Drawing;
namespace ZoFo.GameCore
{
@ -23,20 +28,56 @@ namespace ZoFo.GameCore
public void OnDataSend(string data)
{
List<IUpdateData> updateDatas = JsonSerializer.Deserialize<List<IUpdateData>>(data);
List<UpdateData> updateDatas = JsonSerializer.Deserialize<List<UpdateData>>(data);
// тут будет switch
foreach (var item in updateDatas)
{
/* switch (item.UpdateType) Здесь нужно отлавливать и регистрировать
{
case "Tile":
MapObject map = new MapObject();
break;
}*/
}
}
public void GameEndedUnexpectedly(){ }
public void GameEndedUnexpectedly() { }
public void JoinRoom(string ip)
{
networkManager.JoinRoom(ip);
}
public void JoinYourself(){ networkManager.JoinYourself(); }
public void JoinYourself() { networkManager.JoinYourself(); }
List<MapObject> mapObjects = new List<MapObject>();
/// <summary>
/// Клиент должен обнговлять игру анимаций
/// </summary>
/// <param name="gameTime"></param>
internal void Update(GameTime gameTime)
{
}
internal void Draw(SpriteBatch spriteBatch)
{
for (int i = 0; i < mapObjects.Count; i++)
{
mapObjects[i].Draw(spriteBatch);
}
}
internal void GotData(UpdateData update)
{
if (update is UpdateTileCreated)
{
mapObjects.Add(
new MapObject(
(update as UpdateTileCreated).Position,
(update as UpdateTileCreated).Size.ToVector2(),
(update as UpdateTileCreated).sourceRectangle,
(update as UpdateTileCreated).tileSetName
));
}
}
}
}

View file

@ -12,7 +12,7 @@ using MonogameLibrary.UI.Elements;
namespace ZoFo.GameCore.GUI;
public class HUD
public class HUD : AbstractGUI
{
protected UIManager Manager = new();
protected List<DrawableUIElement> Elements = new();
@ -39,6 +39,10 @@ public class HUD
public virtual void Draw(SpriteBatch spriteBatch)
{
Manager.Draw(spriteBatch);
//Manager.Draw(spriteBatch);
}
protected override void CreateUI()
{
}
}

View file

@ -35,9 +35,10 @@ public class OptionsGUI : AbstractGUI
var slider_OverallVolume = new Slider(Manager)
{ rectangle = new Rectangle(width / 2, height / 3, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 };
slider_OverallVolume.SetValue(AppManager.Instance.SettingsManager.MainVolume);
slider_OverallVolume.SliderChanged += (newVal) =>
{
AppManager.Instance.SettingsManager.SetMainVolume(newVal);
};
Elements.Add(slider_OverallVolume);
@ -47,9 +48,10 @@ public class OptionsGUI : AbstractGUI
var slider_MusicVolume = new Slider(Manager)
{ rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 1, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 };
slider_MusicVolume.SetValue(AppManager.Instance.SettingsManager.MusicVolume);
slider_MusicVolume.SliderChanged += (newVal) =>
{
AppManager.Instance.SettingsManager.SetMusicVolume(newVal);
};
Elements.Add(slider_MusicVolume);
@ -60,9 +62,10 @@ public class OptionsGUI : AbstractGUI
var slider_EffectsVolume = new Slider(Manager)
{ rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 2, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 };
slider_EffectsVolume.SetValue(AppManager.Instance.SettingsManager.SoundEffectsVolume);
slider_EffectsVolume.SliderChanged += (newVal) =>
{
AppManager.Instance.SettingsManager.SetSoundEffectsVolume(newVal);
};
Elements.Add(slider_EffectsVolume);
@ -80,9 +83,10 @@ public class OptionsGUI : AbstractGUI
Elements.Add(label_IsFullScreen);
var button_FullScreen = new CheckBox(Manager) { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 4, width / 40, width / 40) };
button_FullScreen.SetIsChecked(AppManager.Instance.SettingsManager.IsFullScreen);
button_FullScreen.Checked += (newCheckState) =>
{
AppManager.Instance.SettingsManager.SetIsFullScreen(newCheckState);
};
Elements.Add(button_FullScreen);

View file

@ -39,13 +39,19 @@ public class SelectModeMenu : AbstractGUI
singleButton.LeftButtonPressed += () =>
{
// single
Server server = new Server(); //Server Logic SinglePlayer
Server server = new Server();
Client client = new Client();
server.CreateRoom(1);
client.JoinYourself();
AppManager.Instance.SetServer(server);
AppManager.Instance.SetClient(client);
AppManager.Instance.ChangeState(GameState.HostPlaying);
AppManager.Instance.SetGUI(new HUD());
//server.CreateRoom(1);
//client.JoinYourself();
server.StartGame();
string key = client.IsConnected.ToString();
AppManager.Instance.debugHud.Set(key,"SinglePlayer");
@ -65,12 +71,14 @@ public class SelectModeMenu : AbstractGUI
{
AppManager.Instance.SetGUI(new SelectingServerGUI());
// multi
Server server = new Server(); //Server Logic SinglePlayer
Server server = new Server(); //Server Logic MultiPlayer
Client client = new Client();
server.CreateRoom(1);
client.JoinYourself();
server.CreateRoom(5);
client.JoinRoom("127.0.0.1"); //указать айпишник
AppManager.Instance.SetServer(server);
AppManager.Instance.SetClient(client);
string key = client.IsConnected.ToString();
AppManager.Instance.debugHud.Set(key, "MultiPlayer");
// ваш код здесь
};
Elements.Add(optionButton);

View file

@ -36,6 +36,8 @@ namespace ZoFo.GameCore.GameManagers
public InputManager InputManager;
public ItemManager.ItemManager ItemManager;
public SettingsManager SettingsManager;
public SoundManager SoundManager;
public AnimationBuilder animationBuilder { get; set; }
@ -53,7 +55,10 @@ namespace ZoFo.GameCore.GameManagers
Instance = this;
InputManager = new InputManager();
SettingsManager = new SettingsManager();
SettingsManager.LoadSettings();
SoundManager = new SoundManager();
SoundManager.LoadSounds();
currentGUI = new MainMenuGUI();
@ -115,6 +120,7 @@ namespace ZoFo.GameCore.GameManagers
currentGUI.Draw(_spriteBatch);
debugHud.Draw(_spriteBatch);
_spriteBatch.Begin();
switch (gamestate)
{
case GameState.ClientPlaying:
@ -125,6 +131,7 @@ namespace ZoFo.GameCore.GameManagers
default:
break;
}
_spriteBatch.End();
base.Draw(gameTime);
}

View file

@ -11,6 +11,7 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers
{
public enum ScopeState { Left, Right, Straight, Back, StraightLeft, StraightRight, BackLeft, BackRight }
public class InputManager
{
public delegate void Delegat();

View file

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.MapManager.MapElements
@ -13,5 +14,6 @@ namespace ZoFo.GameCore.GameManagers.MapManager.MapElements
public int Width { get; set; }
public int Id { get; set; }
public bool Visibility { get; set; }
public string Class { get; set; }
}
}

View file

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.MapManager.MapElements

View file

@ -8,12 +8,17 @@ using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using ZoFo.GameCore.GameManagers.MapManager.MapElements;
using ZoFo.GameCore.GameObjects.MapObjects;
using ZoFo.GameCore.GameObjects.MapObjects.StopObjects;
using ZoFo.GameCore.GameObjects.MapObjects.Tiles;
namespace ZoFo.GameCore.GameManagers.MapManager
{
public class MapManager
{
private static readonly string _path = "TileMaps/{0}.tmj";
private static readonly string _templatePath = "Content/MapData/TileMaps/{0}.tmj";
private static readonly float _scale = 1.0f;
private List<TileSet> _tileSets = new List<TileSet>();
/// <summary>
@ -23,39 +28,54 @@ namespace ZoFo.GameCore.GameManagers.MapManager
public void LoadMap(string mapName = "main")
{
// Загрузка TileMap
TileMap tileMap;
using (StreamReader reader = new StreamReader(string.Format(_path, mapName)))
var options = new JsonSerializerOptions
{
string data = reader.ReadToEnd();
tileMap = JsonSerializer.Deserialize<TileMap>(data);
}
PropertyNameCaseInsensitive = true
};
TileMap tileMap = JsonSerializer.Deserialize<TileMap>(File.ReadAllText(string.Format(_templatePath, mapName)), options);
// Загрузка TileSet-ов по TileSetInfo
List<TileSet> tileSets = new List<TileSet>();
foreach (TileSetInfo tileSetInfo in tileMap.TileSets)
{
TileSet tileSet = LoadTileSet(tileSetInfo.Source);
TileSet tileSet = LoadTileSet("Content/MapData/"+tileSetInfo.Source);
tileSet.FirstGid = tileSetInfo.FirstGid;
tileSets.Add(tileSet);
}
foreach (var chunk in tileMap.Layers[0].Chunks)
foreach (var layer in tileMap.Layers)
{
for (int i = 0; i < chunk.Data.Length; i++)
foreach (var chunk in layer.Chunks)
{
foreach (var tileSet in tileSets)
for (int i = 0; i < chunk.Data.Length; i++)
{
if (tileSet.FirstGid - chunk.Data[i] < 0)
foreach (var tileSet in tileSets)
{
int number = chunk.Data[i] - tileSet.FirstGid;
if (tileSet.FirstGid - chunk.Data[i] < 0)
{
int number = chunk.Data[i] - tileSet.FirstGid;
int relativeColumn = number % tileSet.Columns * tileSet.TileWidth;
int relativeRow = number / tileSet.Columns * tileSet.TileHeight;
int relativeColumn = (number % tileSet.Columns) * tileSet.TileWidth;
int relativeRow = (number / tileSet.Columns) * tileSet.TileHeight;
Rectangle sourceRectangle = new Rectangle(relativeColumn * tileSet.TileWidth, relativeRow * tileSet.TileHeight,
relativeColumn * tileSet.TileWidth + tileSet.TileWidth, relativeRow * tileSet.TileHeight + tileSet.TileHeight);
Rectangle sourceRectangle = new Rectangle(relativeColumn * tileSet.TileWidth, relativeRow * tileSet.TileHeight,
/* relativeColumn * tileSet.TileWidth +*/ tileSet.TileWidth, /*relativeRow * tileSet.TileHeight +*/ tileSet.TileHeight);
Vector2 position = new Vector2(i % chunk.Width, i / chunk.Height);
Vector2 position = new Vector2((i % chunk.Width) * tileSet.TileWidth + chunk.X * chunk.Width, (i / chunk.Height)*tileSet.TileHeight + chunk.Y * chunk.Height) ;
switch (layer.Class)
{
case "Tile":
AppManager.Instance.server.RegisterGameObject(new MapObject(position, new Vector2(tileSet.TileWidth * _scale, tileSet.TileHeight * _scale), sourceRectangle, "Textures\\TileSets\\"+tileSet.Name)); //fix naming
break;
case "StopObject":
// new StopObject(position, new Vector2(tileSet.TileWidth * _scale, tileSet.TileHeight * _scale), sourceRectangle, tileSet.Name);
break;
default:
break;
}
}
}
}
}
@ -71,8 +91,12 @@ namespace ZoFo.GameCore.GameManagers.MapManager
{
using (StreamReader reader = new StreamReader(path))
{
var options = new JsonSerializerOptions //TODO Remove
{
PropertyNameCaseInsensitive = true
};
string data = reader.ReadToEnd();
return JsonSerializer.Deserialize<TileSet>(data);
return JsonSerializer.Deserialize<TileSet>(data, options);
}
}
}

View file

@ -10,7 +10,7 @@
},
"last.imagePath": "D:/C#/Я смотрел ваши ХАКАТОНЫ/ZoFo/ZoFo/Content/Textures/Background",
"map.fixedSize": false,
"map.lastUsedFormat": "tmx",
"map.lastUsedFormat": "json",
"map.tileHeight": 16,
"map.tileWidth": 16,
"openFiles": [

View file

@ -0,0 +1,167 @@
{ "compressionlevel":-1,
"height":20,
"infinite":true,
"layers":[
{
"chunks":[
{
"data":[24, 24, 24, 28, 29, 24, 24, 24, 28, 46, 29, 24, 25, 115, 45, 46,
24, 24, 24, 25, 23, 24, 24, 24, 50, 2, 51, 24, 50, 2, 2, 2,
24, 24, 24, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28,
28, 29, 24, 28, 10, 32, 29, 24, 24, 28, 46, 29, 24, 24, 24, 50,
47, 23, 24, 50, 32, 10, 32, 46, 29, 50, 2, 51, 24, 24, 24, 24,
1, 32, 29, 90, 25, 23, 50, 2, 32, 29, 24, 90, 28, 29, 24, 24,
51, 50, 32, 29, 50, 51, 90, 24, 25, 45, 46, 29, 25, 23, 24, 90,
24, 24, 50, 32, 46, 29, 24, 28, 10, 2, 2, 51, 50, 51, 24, 90,
24, 24, 24, 50, 2, 32, 46, 10, 32, 29, 24, 90, 24, 24, 24, 90,
29, 24, 89, 24, 24, 50, 3, 23, 50, 32, 46, 46, 46, 46, 29, 24,
51, 24, 24, 28, 29, 24, 25, 23, 24, 25, 1, 2, 3, 111, 45, 29,
24, 90, 24, 50, 51, 24, 25, 23, 28, 47, 23, 89, 50, 3, 115, 23,
24, 24, 24, 24, 24, 89, 50, 32, 47, 1, 51, 24, 24, 50, 2, 51,
28, 29, 24, 24, 24, 24, 28, 10, 2, 51, 24, 24, 24, 24, 24, 28,
10, 32, 29, 24, 24, 24, 25, 23, 28, 29, 90, 24, 24, 90, 24, 50,
32, 10, 51, 24, 24, 24, 50, 32, 10, 32, 29, 24, 90, 28, 29, 24],
"height":16,
"width":16,
"x":-16,
"y":-16
},
{
"data":[10, 51, 24, 90, 24, 25, 23, 28, 29, 24, 24, 24, 24, 24, 24, 24,
51, 24, 28, 29, 24, 50, 32, 10, 51, 24, 24, 24, 24, 24, 24, 24,
29, 28, 10, 32, 46, 29, 50, 32, 29, 24, 24, 24, 24, 24, 24, 24,
51, 25, 23, 50, 2, 32, 29, 25, 23, 24, 24, 28, 29, 24, 90, 24,
24, 25, 23, 24, 24, 25, 23, 50, 51, 24, 24, 50, 32, 29, 24, 90,
24, 50, 32, 29, 90, 25, 45, 29, 24, 24, 24, 24, 50, 51, 24, 89,
24, 89, 50, 51, 24, 25, 114, 23, 24, 24, 24, 24, 24, 24, 24, 24,
24, 24, 28, 29, 24, 50, 2, 51, 24, 24, 90, 28, 29, 24, 24, 28,
24, 24, 25, 23, 89, 24, 24, 24, 28, 46, 29, 25, 23, 24, 24, 50,
28, 46, 10, 51, 24, 28, 46, 29, 25, 111, 45, 10, 51, 28, 29, 24,
50, 2, 51, 24, 24, 25, 115, 45, 10, 3, 1, 51, 24, 25, 23, 24,
24, 24, 24, 24, 24, 50, 2, 2, 32, 10, 51, 24, 90, 25, 23, 24,
24, 24, 24, 24, 24, 24, 24, 24, 50, 51, 24, 24, 24, 25, 23, 24,
46, 29, 24, 24, 24, 24, 24, 89, 24, 24, 24, 28, 46, 47, 23, 90,
2, 32, 29, 24, 24, 28, 46, 46, 29, 24, 24, 25, 1, 3, 23, 89,
24, 50, 32, 29, 24, 25, 1, 3, 23, 24, 89, 50, 32, 10, 51, 24],
"height":16,
"width":16,
"x":0,
"y":-16
},
{
"data":[24, 24, 24, 24, 90, 24, 89, 24, 89, 24, 50, 51, 89, 24, 24, 24,
24, 28, 29, 28, 29, 24, 24, 24, 24, 28, 29, 24, 24, 24, 28, 29,
24, 25, 23, 50, 51, 24, 24, 28, 29, 50, 51, 24, 24, 24, 25, 45,
90, 50, 51, 28, 29, 24, 24, 25, 23, 24, 24, 28, 29, 24, 50, 3,
24, 24, 28, 10, 51, 90, 90, 50, 51, 24, 24, 50, 51, 24, 24, 50,
24, 24, 25, 45, 29, 24, 28, 29, 24, 24, 24, 24, 24, 28, 29, 24,
90, 24, 50, 2, 51, 28, 10, 51, 90, 24, 28, 29, 24, 25, 45, 46,
29, 90, 24, 24, 24, 50, 51, 24, 24, 28, 10, 32, 46, 10, 3, 1,
32, 29, 24, 90, 24, 24, 24, 24, 28, 47, 23, 50, 2, 51, 50, 51,
25, 23, 24, 24, 28, 46, 46, 46, 47, 114, 45, 29, 24, 24, 24, 24,
50, 32, 29, 24, 50, 3, 111, 111, 115, 111, 1, 32, 29, 24, 24, 24,
24, 50, 51, 24, 28, 10, 2, 2, 2, 2, 32, 10, 51, 24, 24, 89,
24, 24, 89, 90, 25, 23, 24, 24, 24, 24, 50, 32, 46, 46, 29, 89,
24, 24, 24, 90, 25, 23, 89, 24, 28, 29, 90, 50, 2, 2, 51, 24,
24, 24, 24, 28, 10, 51, 24, 28, 47, 45, 29, 24, 24, 24, 24, 24,
24, 24, 24, 25, 23, 24, 90, 50, 2, 2, 32, 46, 46, 46, 46, 46],
"height":16,
"width":16,
"x":16,
"y":-16
},
{
"data":[10, 32, 46, 29, 24, 24, 24, 25, 23, 50, 32, 29, 24, 50, 32, 46,
51, 50, 2, 32, 29, 24, 24, 25, 45, 29, 25, 23, 24, 24, 25, 1,
24, 24, 24, 25, 23, 28, 46, 10, 2, 51, 50, 51, 24, 24, 50, 51,
90, 89, 90, 50, 51, 50, 2, 51, 24, 24, 28, 29, 90, 24, 24, 24,
90, 28, 46, 29, 90, 24, 24, 24, 90, 24, 50, 51, 90, 24, 90, 28,
29, 50, 2, 51, 24, 24, 24, 89, 24, 24, 24, 24, 24, 89, 24, 50,
23, 24, 24, 28, 46, 29, 90, 90, 24, 89, 24, 28, 29, 24, 24, 24,
32, 46, 29, 25, 115, 45, 29, 24, 90, 24, 24, 25, 23, 24, 24, 28,
10, 2, 32, 47, 115, 1, 51, 24, 24, 24, 24, 25, 23, 24, 28, 10,
32, 29, 50, 2, 2, 51, 24, 24, 24, 24, 24, 25, 23, 28, 10, 51,
50, 51, 89, 24, 24, 89, 24, 28, 29, 24, 24, 50, 32, 10, 32, 46,
24, 24, 90, 90, 28, 46, 29, 50, 51, 24, 24, 24, 25, 23, 25, 115,
24, 90, 24, 24, 50, 2, 32, 29, 24, 24, 90, 24, 25, 45, 10, 2,
24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 24, 28, 10, 3, 23, 24,
90, 24, 24, 24, 24, 89, 90, 50, 32, 29, 90, 50, 51, 50, 32, 46,
46, 29, 24, 90, 24, 24, 24, 24, 50, 51, 28, 29, 24, 24, 50, 2],
"height":16,
"width":16,
"x":-16,
"y":0
},
{
"data":[46, 46, 10, 32, 46, 47, 23, 25, 23, 89, 24, 24, 25, 23, 90, 24,
2, 2, 32, 47, 1, 2, 51, 25, 23, 24, 28, 29, 50, 32, 29, 24,
24, 90, 50, 3, 23, 24, 28, 10, 51, 28, 47, 45, 29, 25, 23, 28,
24, 24, 24, 50, 51, 28, 47, 23, 24, 50, 3, 114, 45, 10, 51, 50,
29, 24, 24, 89, 24, 25, 114, 45, 46, 46, 10, 2, 2, 32, 29, 89,
51, 24, 24, 24, 24, 50, 3, 111, 115, 115, 23, 24, 24, 50, 32, 29,
24, 28, 29, 24, 24, 24, 25, 1, 2, 2, 51, 90, 24, 90, 50, 51,
29, 50, 32, 29, 28, 29, 25, 23, 24, 24, 89, 28, 29, 24, 24, 24,
51, 24, 50, 51, 50, 32, 10, 32, 46, 29, 24, 50, 51, 24, 90, 24,
24, 24, 24, 24, 89, 50, 32, 10, 2, 32, 46, 29, 89, 28, 29, 24,
29, 90, 24, 24, 24, 24, 50, 51, 28, 10, 3, 23, 28, 10, 51, 24,
23, 89, 24, 24, 90, 24, 24, 24, 50, 32, 10, 51, 50, 51, 24, 24,
51, 24, 24, 24, 24, 24, 24, 24, 24, 50, 32, 46, 46, 29, 28, 46,
24, 24, 24, 90, 24, 24, 24, 24, 24, 24, 50, 3, 1, 32, 47, 115,
46, 29, 24, 89, 24, 24, 24, 89, 24, 24, 24, 25, 45, 10, 3, 111,
2, 51, 28, 29, 28, 29, 24, 28, 46, 46, 46, 10, 2, 51, 50, 2],
"height":16,
"width":16,
"x":0,
"y":0
},
{
"data":[28, 29, 28, 10, 32, 46, 29, 24, 24, 28, 10, 2, 2, 2, 2, 2,
50, 51, 50, 51, 25, 115, 45, 46, 29, 50, 51, 24, 24, 24, 24, 24,
29, 24, 89, 24, 50, 3, 115, 114, 23, 24, 24, 24, 24, 24, 24, 24,
51, 90, 24, 89, 24, 50, 2, 2, 51, 24, 89, 24, 24, 28, 46, 29,
24, 90, 24, 24, 89, 24, 90, 28, 29, 24, 24, 24, 28, 10, 2, 51,
24, 24, 24, 24, 28, 29, 90, 50, 51, 28, 29, 24, 25, 23, 24, 24,
28, 29, 24, 24, 50, 32, 29, 28, 29, 50, 51, 89, 50, 32, 29, 24,
50, 51, 24, 24, 24, 50, 32, 10, 51, 24, 89, 24, 24, 25, 23, 24,
24, 24, 24, 24, 24, 24, 50, 32, 29, 24, 24, 24, 24, 50, 51, 24,
90, 24, 24, 24, 24, 24, 24, 25, 45, 29, 24, 24, 24, 89, 28, 29,
24, 24, 24, 24, 28, 29, 24, 25, 1, 51, 24, 24, 24, 24, 50, 32,
28, 29, 28, 29, 50, 32, 46, 10, 51, 28, 29, 24, 24, 24, 24, 50,
47, 45, 10, 51, 24, 50, 2, 32, 46, 47, 23, 24, 89, 90, 24, 24,
111, 115, 23, 24, 24, 90, 24, 50, 2, 2, 32, 29, 24, 89, 28, 46,
1, 2, 51, 28, 46, 46, 29, 24, 28, 29, 50, 32, 29, 28, 47, 111,
51, 24, 24, 50, 3, 114, 23, 24, 50, 32, 46, 47, 23, 25, 111, 111],
"height":16,
"width":16,
"x":16,
"y":0
}],
"class":"Tile",
"height":48,
"id":1,
"name":"\u0421\u043b\u043e\u0439 \u0442\u0430\u0439\u043b\u043e\u0432 1",
"opacity":1,
"startx":-16,
"starty":-32,
"type":"tilelayer",
"visible":true,
"width":48,
"x":0,
"y":0
}],
"nextlayerid":2,
"nextobjectid":1,
"orientation":"orthogonal",
"renderorder":"right-down",
"tiledversion":"1.10.2",
"tileheight":16,
"tilesets":[
{
"firstgid":1,
"source":"..\/TileSets\/TileSet 1.tsj"
}],
"tilewidth":16,
"type":"map",
"version":"1.10",
"width":30
}

View file

@ -18,7 +18,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
private int port = 7632;
private EndPoint endPoint;
private Socket socket;
List<IUpdateData> updates = new List<IUpdateData>();
List<UpdateData> updates = new List<UpdateData>();
public delegate void OnDataSent(string Data);
public event OnDataSent GetDataSent; // event
public bool IsConnected { get { return socket.Connected; } }
@ -28,6 +28,11 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
Init();
}
public bool SocketConnected()
{
return socket.Connected;
}
public void Init() //create endPoint, socket
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
@ -39,7 +44,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
socket.Send(bytes);
}
public void AddData(IUpdateData UpdateData)
public void AddData(UpdateData UpdateData)
{
updates.Add(UpdateData);
}

View file

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Sockets;
using System.Text;
using System.Text.Json;
@ -21,7 +22,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
private IPEndPoint endPoint;
private Socket socket;
private List<Socket> clients;
private List<IUpdateData> updates;
public List<UpdateData> updates;
public delegate void OnDataSend(string data);
public event OnDataSend GetDataSend; // event
Dictionary<Socket, Thread> managerThread;
@ -38,7 +39,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
managerThread = new Dictionary<Socket, Thread>();
clients = new List<Socket>();
updates = new List<IUpdateData>();
updates = new List<UpdateData>();
managerThread = new Dictionary<Socket, Thread>();
socket.Bind(endPoint);
}
@ -48,6 +49,14 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
/// </summary>
public void SendData()
{
for (int i = 0; i < updates.Count; i++)
{
AppManager.Instance.client.GotData(updates[i]);
}
updates.Clear();
return; //TODO TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK TODO REMOVE TO ADD NETWORK
string data = JsonSerializer.Serialize(updates);
var databytes = Encoding.UTF8.GetBytes(data);
foreach (var item in clients)
@ -60,7 +69,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
/// добавляет в лист updates новую data
/// </summary>
/// <param name="data"></param>
public void AddData(IUpdateData data)
public void AddData(UpdateData data)
{
updates.Add(data);
}

View file

@ -6,9 +6,12 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer
{
public class UpdateInput :IUpdateData
public class UpdateInput :UpdateData
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
// public int IdEntity { get; set; }
public UpdateInput()
{
UpdateType = "UpdateInput";
}
}
}

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer
{
public class UpdatePlayerExit : IUpdateData
public class UpdatePlayerExit : UpdateData
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
public UpdatePlayerExit() { UpdateType = "UpdatePlayerExit"; }
}
}

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{
public class UpdateAnimation : IUpdateData //хранит новую анимации
public class UpdateAnimation : UpdateData //хранит новую анимации
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
public UpdateAnimation() { UpdateType = "UpdateAnimation"; }
}
}

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{
public class UpdateEntityHealth : IUpdateData//хранит новое хп entity
public class UpdateEntityHealth : UpdateData//хранит новое хп entity
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
public UpdateEntityHealth() { UpdateType = "UpdateEntityHealth"; }
}
}

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{
public class UpdateGameEnded : IUpdateData //хранит полученый лут и уведомляет о конце игры
public class UpdateGameEnded : UpdateData //хранит полученый лут и уведомляет о конце игры
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
public UpdateGameEnded() { UpdateType = "UpdateGameEnded"; }
}
}

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{
public class UpdateGameObjectCreated : IUpdateData //Хранит объект, который только отправили
public class UpdateGameObjectCreated : UpdateData //Хранит объект, который только отправили
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
public UpdateGameObjectCreated() { UpdateType = "UpdateGameObjectCreated"; }
}
}

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{
public class UpdateLoot : IUpdateData //Хранит лут
public class UpdateLoot : UpdateData //Хранит лут
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
public UpdateLoot() { UpdateType = "UpdateLoot"; }
}
}

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{
public class UpdatePlayerParametrs : IUpdateData //Хранит хп, радиацию
public class UpdatePlayerParametrs : UpdateData //Хранит хп, радиацию
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
public UpdatePlayerParametrs() { UpdateType = "UpdatePlayerParametrs"; }
}
}

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{
public class UpdatePosition : IUpdateData //Хранит новую позицию
public class UpdatePosition : UpdateData //Хранит новую позицию
{
public int IdEntity { get; set; }
public string UpdateType { get; set; }
public UpdatePosition() { UpdateType = "UpdatePosition"; }
}
}

View file

@ -0,0 +1,23 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{
public class UpdateTileCreated : UpdateData
{
public UpdateTileCreated() { UpdateType = "UpdateTileCreated"; }
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; }
}
}

View file

@ -17,11 +17,13 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates
[JsonDerivedType(typeof(UpdateLoot))]
[JsonDerivedType(typeof(UpdatePlayerParametrs))]
[JsonDerivedType(typeof(UpdatePosition))]
[JsonDerivedType(typeof(UpdateTileCreated))]
[JsonDerivedType(typeof(UpdateInput))]
[JsonDerivedType(typeof(UpdatePlayerExit))]
public interface IUpdateData
public class UpdateData
{
public int IdEntity { get; set; } //Id объекта
public string UpdateType { get; set; } //тип обновления
public string UpdateType { get; protected set; } //тип обновления
}
}

View file

@ -20,12 +20,12 @@ namespace ZoFo.GameCore.GameManagers
public void LoadSounds() // метод для загрузки звуков из папки
{
var k = Directory.GetFiles("../../..//Content//sounds").Where(x => x.EndsWith("mp3"));
var k = Directory.GetFiles("../../..//Content//sounds").Where(x => x.EndsWith("wav"));
if (k.Count() > 0)
{
string[] soundFiles = k.Select(x => x.Split("\\").Last().Split("/").Last().Replace(".mp3", "")).ToArray();// папка со звуками там где exe
string[] soundFiles = k.Select(x => x.Split("\\").Last().Split("/").Last().Replace(".wav", "")).ToArray();// папка со звуками там где exe
foreach (var soundFile in soundFiles)
{
Sounds.Add(soundFile, AppManager.Instance.Content.Load<SoundEffect>("sounds//" + soundFile));
@ -42,7 +42,7 @@ namespace ZoFo.GameCore.GameManagers
public void StartAmbientSound(string soundName) // запустить звук у которого нет позиции
{
var sound = new Sound(Sounds[soundName].CreateInstance(), Vector2.One, true);
// ждать пока настройки появятся sound.SoundEffect.Volume = sound.baseVolume * AppManager.Instance.SettingsManager.MusicVolume * AppManager.Instance.SettingsManager.MainVolume;
sound.SoundEffect.Volume = sound.baseVolume * AppManager.Instance.SettingsManager.MusicVolume * AppManager.Instance.SettingsManager.MainVolume;
sound.SoundEffect.IsLooped = false;
sound.SoundEffect.Play();
@ -57,7 +57,7 @@ namespace ZoFo.GameCore.GameManagers
{
var sound = new Sound(Sounds[soundName].CreateInstance(), soundPos, false) { baseVolume = baseVolume, basePich = pitch };
sound.SoundEffect.IsLooped = false;
//ждать пока настройки появятся sound.SoundEffect.Volume = sound.baseVolume * AppManager.Instance.SettingsManager.SoundEffectsVolume * AppManager.Instance.SettingsManager.MainVolume;
sound.SoundEffect.Volume = sound.baseVolume * AppManager.Instance.SettingsManager.SoundEffectsVolume * AppManager.Instance.SettingsManager.MainVolume;
sound.SoundEffect.Pitch = pitch;
sound.SoundEffect.Play();
PlayingSounds.Add(sound);
@ -78,7 +78,7 @@ namespace ZoFo.GameCore.GameManagers
{
for (int i = 0; i < PlayingSounds.Count; i++)
{
//PlayingSounds[i].UpdateVolume(Vector2.Zero);
PlayingSounds[i].UpdateVolume(Vector2.Zero);
if (PlayingSounds[i].SoundEffect.State == SoundState.Stopped)
{
PlayingSounds.Remove(PlayingSounds[i]);
@ -114,14 +114,14 @@ namespace ZoFo.GameCore.GameManagers
SoundEffect = soundEffect;
Position = position;
}
/*/public void UpdateVolume(Vector2 playerPos)
public void UpdateVolume(Vector2 playerPos)
{
if (isAmbient)
SoundEffect.Volume = baseVolume * AppManager.Instance.SettingsManager.MusicVolume * AppManager.Instance.SettingsManager.MainVolume;
else
SoundEffect.Volume = baseVolume * AppManager.Instance.SettingsManager.SoundEffectsVolume * AppManager.Instance.SettingsManager.MainVolume;// * (float)Math.Clamp(1 - GetDistanceVol(playerPos),0,1);
}/*/
}
public double GetDistanceVol(Vector2 playerPos) // получение дистанции до объедка от игрока
{

View file

@ -10,14 +10,16 @@ namespace ZoFo.GameCore.GameObjects.Entities
{
public abstract class Entity : GameObject
{
protected override GraphicsComponent graphicsComponent => null;
public override GraphicsComponent graphicsComponent => null;
public CollisionComponent collisionComponent { get; protected set; }
public int Id { get; set; }
protected Entity(Vector2 position) : base(position)
{
}
public virtual void Update()
{
}
}
}

View file

@ -3,20 +3,26 @@ using Microsoft.Xna.Framework.Graphics;
using System;
using ZoFo.GameCore.GameObjects.Entities;
using ZoFo.GameCore.ZoFo_graphics;
using ZoFo.GameCore.GameManagers;
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities;
public class LivingEntity : Entity
{
public Vector2 velocity;
private InputManager inputManager;
public LivingEntity(Vector2 position) : base(position)
{
inputManager = new InputManager();
}
public void TextureLoad(SpriteBatch spriteBatch)
#region Server side
/*public override void Update()
{
}
}*/
#endregion
}

View file

@ -1,24 +1,26 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using System;
using ZoFo.GameCore.GameManagers;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Player;
public class Player : LivingEntity
{
public Vector2 InputWeaponRotation{ get; set; }
public Vector2 InputPlayerRotation{ get; set;}
public bool IsTryingToShoot{get;set;}
Texture2D texture;
private float speed;
private int health;
Server server = new Server();
public Player(Vector2 position) : base(position)
{
//InputWeaponRotation = new Vector2(0, 0);
//InputPlayerRotation = new Vector2(0, 0);
}
public void Update(GameTime gameTime)
{
// server.AddData();
}
public void TextureLoad(SpriteBatch spriteBatch)
{
}

View file

@ -4,19 +4,26 @@ using Microsoft.Xna.Framework.Graphics;
using System;
using ZoFo.GameCore.GameManagers;
using ZoFo.GameCore.ZoFo_graphics;
using ZoFo.GameCore;
namespace ZoFo.GameCore.GameObjects;
public abstract class GameObject
{
public Vector2 position;
private Server server;
public Vector2 rotation; //вектор направления объекта
protected abstract GraphicsComponent graphicsComponent { get; }
public abstract GraphicsComponent graphicsComponent { get; }
#region ServerSide
public GameObject(Vector2 position)
{
this.position = position;
server = new Server();
server.RegisterGameObject(this);
graphicsComponent.LoadContent();
}
public virtual void UpdateLogic(GameTime gameTime)
{

View file

@ -6,20 +6,25 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZoFo.GameCore.GameManagers;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
using ZoFo.GameCore.ZoFo_graphics;
namespace ZoFo.GameCore.GameObjects.MapObjects
{
public class MapObject : GameObject
{
public virtual bool IsColliderOn { get; protected set; } = true;
private Rectangle _sourceRectangle;
protected override GraphicsComponent graphicsComponent => new("tiles");
public virtual bool IsColliderOn { get; protected set; } = true;//Who added that?
public Rectangle _sourceRectangle;
public override GraphicsComponent graphicsComponent { get; } = new();
public MapObject(Vector2 position, Vector2 size, Rectangle sourceRectangle, string textureName) : base(position)
{
_sourceRectangle = sourceRectangle;
graphicsComponent.ObjectDrawRectangle = new Rectangle(0,0, (int)size.X, (int)size.Y);
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)
{

View file

@ -11,5 +11,7 @@ public class StopObject : MapObject
protected StopObject(Vector2 position, Vector2 size, Rectangle sourceRectangle, string textureName) : base(position, size, sourceRectangle, textureName)
{
// TODO: Написать коллизию, пусть тразмер будет чисто таким же как и текстурка.
// Поменяйте уровень защиты конструктора, после снимите в MapManager комментарий в методе LoadMap с создания StopObject-а
}
}

View file

@ -1,8 +0,0 @@
using System;
namespace ZoFo.GameCore.GameObjects.StopObjects;
public class StopObject
{
}

View file

@ -1,8 +0,0 @@
using System;
namespace ZoFo.GameCore.GameObjects;
public class Tile
{
}

View file

@ -5,33 +5,52 @@ using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using ZoFo.GameCore.GameManagers.MapManager;
using ZoFo.GameCore.GameManagers.NetworkManager;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates;
using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient;
using ZoFo.GameCore.GameObjects;
using ZoFo.GameCore.GameObjects.Entities;
using ZoFo.GameCore.GameObjects.MapObjects;
namespace ZoFo.GameCore
{
public class Server
{
private ServerNetworkManager networkManager;
private int ticks = 0;
public Server()
{
networkManager = new ServerNetworkManager();
networkManager.GetDataSend += OnDataSend;
}
#region server logic as App
//TODO Comment pls
public void OnDataSend(string data)
{
List<IUpdateData> updateDatas = JsonSerializer.Deserialize<List<IUpdateData>>(data);
List<UpdateData> updateDatas = JsonSerializer.Deserialize<List<UpdateData>>(data);
for (int i = 0; i < updateDatas.Count; i++)
{
ProcessIUpdateData(updateDatas[i]);
}
}
/// <summary>
/// Обработка апдейтсов, которые нам прислал клиент
/// </summary>
/// <param name="updateData"></param>
public void ProcessIUpdateData(UpdateData updateData)
{
//ТУТ Switch case будет честное слово
}
/// <summary>
/// Для красоты) Отдел Серверов
/// добавляет в лист updates новую data
/// </summary>
/// <param name="data"></param>
public void AddData(IUpdateData data)//добавляет в лист updates новую data
public void AddData(UpdateData data)//добавляет в лист updates новую data
{
networkManager.AddData(data);
}
@ -45,7 +64,19 @@ namespace ZoFo.GameCore
networkManager.Start(players);
}
// public void StartGame() { } принудительный запуск
/// <summary>
/// Запуск игры в комнате
/// </summary>
public void StartGame()
{
//TODO начинает рассылку и обмен пакетами игры
//Грузит карту
gameObjects = new List<GameObject>();
entities = new List<Entity>();
new MapManager().LoadMap();
}
/// <summary>
/// Добавляет UpdateGameEnded и отключает игроков
@ -56,24 +87,42 @@ namespace ZoFo.GameCore
networkManager.AddData(gameEnded);
networkManager.CloseConnection();
}
private List<GameObject> gameObjects;
private List<GameObject> gameObjects = new List<GameObject>();
private List<Entity> entities; //entity
public void Update(GameTime gameTime)
{
foreach (var go in gameObjects)
if (ticks == 3) //ОБРАБАТЫВАЕТСЯ 20 РАЗ В СЕКУНДУ
{
go.UpdateLogic(gameTime);
foreach (var go in gameObjects)
{
go.UpdateLogic(gameTime);
}
ticks = 0;
networkManager.SendData();
}
ticks++;
}
/// <summary>
/// Регистрирует игровой объект
/// </summary>
/// <param name="gameObject"></param>
public void RegisterEntity(GameObject gameObject)
public void RegisterGameObject(GameObject gameObject)
{
gameObjects.Add(gameObject);
gameObjects.Add(gameObject);
if (gameObject is MapObject)
{
AddData(new UpdateTileCreated()
{
Position = (gameObject as MapObject).position,
sourceRectangle = (gameObject as MapObject)._sourceRectangle,
Size = (gameObject as MapObject).graphicsComponent.ObjectDrawRectangle.Size,
tileSetName = (gameObject as MapObject).graphicsComponent.mainTextureName
});//TODO
}
}
}
#endregion
}

View file

@ -22,9 +22,9 @@ namespace ZoFo.GameCore.ZoFo_graphics
public event Action<string> actionOfAnimationEnd;
private List<AnimationContainer> animations;
private List<Texture2D> textures;
private List<string> texturesNames;
public List<string> texturesNames; //rethink public and following that errors
private AnimationContainer currentAnimation;
static public int scaling = 4;
static public int scaling = 5;
public int parentId;
public AnimationContainer CurrentAnimation
{
@ -64,8 +64,18 @@ namespace ZoFo.GameCore.ZoFo_graphics
buildSourceRectangle();
}
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);
@ -101,6 +111,11 @@ namespace ZoFo.GameCore.ZoFo_graphics
textures = new List<Texture2D>();
texturesNames = new List<string>();
if (animations is null)
{
return;
}
foreach (var animation in animations)
{
if (!texturesNames.Contains(animation.TextureName))
@ -141,6 +156,10 @@ namespace ZoFo.GameCore.ZoFo_graphics
public void Update()
{
if (currentAnimation is null)
{
return;
}
if (interval == 0)
{
currentFrame++;
@ -281,6 +300,6 @@ namespace ZoFo.GameCore.ZoFo_graphics
AppManager.Instance.DebugHUD.Set("CameraPosition", $"{CameraPosition.X}, {CameraPosition.Y}");
*/
}
public static Point CameraPosition = new Point(-700, 300);
public static Point CameraPosition = new Point(0, 0);
}
}

View file

@ -32,6 +32,7 @@
<ProjectReference Include="..\MonogameLibrary\MonogameLibrary.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Content\sounds\Zombie\" />
<Folder Include="Content\Textures\GUI\" />
</ItemGroup>
<Target Name="RestoreDotnetTools" BeforeTargets="Restore">