Merge branch 'main' of github.com:progtime-net/DangerousD
This commit is contained in:
commit
f624c873ff
11 changed files with 133 additions and 33 deletions
|
@ -81,11 +81,12 @@
|
||||||
/processorParam:TextureFormat=Color
|
/processorParam:TextureFormat=Color
|
||||||
/build:deathBackground.jpg
|
/build:deathBackground.jpg
|
||||||
|
|
||||||
|
|
||||||
#begin DoomTestSong.mp3
|
#begin DoomTestSong.mp3
|
||||||
/importer:Mp3Importer
|
/importer:Mp3Importer
|
||||||
/processor:SoundEffectProcessor
|
/processor:SoundEffectProcessor
|
||||||
/processorParam:Quality=Best
|
/processorParam:Quality=Best
|
||||||
/build:DoomTestSong.mp3
|
/build:sounds/DoomTestSong.mp3
|
||||||
|
|
||||||
#begin doors.png
|
#begin doors.png
|
||||||
/importer:TextureImporter
|
/importer:TextureImporter
|
||||||
|
@ -235,6 +236,18 @@
|
||||||
/processorParam:TextureFormat=Color
|
/processorParam:TextureFormat=Color
|
||||||
/build:sliderBackground.png
|
/build:sliderBackground.png
|
||||||
|
|
||||||
|
#begin sounds/DoomTestSong.mp3
|
||||||
|
/importer:Mp3Importer
|
||||||
|
/processor:SoundEffectProcessor
|
||||||
|
/processorParam:Quality=Best
|
||||||
|
/build:sounds/DoomTestSong.mp3
|
||||||
|
|
||||||
|
#begin sounds/shotgun_shot.mp3
|
||||||
|
/importer:Mp3Importer
|
||||||
|
/processor:SoundEffectProcessor
|
||||||
|
/processorParam:Quality=Best
|
||||||
|
/build:sounds/shotgun_shot.mp3
|
||||||
|
|
||||||
#begin textboxbackground1-1.png
|
#begin textboxbackground1-1.png
|
||||||
/importer:TextureImporter
|
/importer:TextureImporter
|
||||||
/processor:TextureProcessor
|
/processor:TextureProcessor
|
||||||
|
|
|
@ -1 +1,24 @@
|
||||||
{"id":"playerShootLeft","textureName":"playerAnimation","startSpriteRectangle":{"X":201,"Y":34,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":12}],"textureFrameInterval":1,"framesCount":2,"isCycle":false,"offset":"4, 0"}
|
{
|
||||||
|
"id": "playerShootLeft",
|
||||||
|
"textureName": "playerAnimation",
|
||||||
|
"startSpriteRectangle": {
|
||||||
|
"X": 201,
|
||||||
|
"Y": 34,
|
||||||
|
"Width": 32,
|
||||||
|
"Height": 32
|
||||||
|
},
|
||||||
|
"frameSecond": [
|
||||||
|
{
|
||||||
|
"Item1": 0,
|
||||||
|
"Item2": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Item1": 1,
|
||||||
|
"Item2": 20
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"textureFrameInterval": 1,
|
||||||
|
"framesCount": 2,
|
||||||
|
"isCycle": false,
|
||||||
|
"offset": "4, 0"
|
||||||
|
}
|
||||||
|
|
|
@ -1 +1,24 @@
|
||||||
{"id":"playerShootRight","textureName":"playerAnimation","startSpriteRectangle":{"X":201,"Y":1,"Width":32,"Height":32},"frameSecond":[{"Item1":0,"Item2":12}],"textureFrameInterval":1,"framesCount":2,"isCycle":false,"offset":"4, 0"}
|
{
|
||||||
|
"id": "playerShootRight",
|
||||||
|
"textureName": "playerAnimation",
|
||||||
|
"startSpriteRectangle": {
|
||||||
|
"X": 201,
|
||||||
|
"Y": 1,
|
||||||
|
"Width": 32,
|
||||||
|
"Height": 32
|
||||||
|
},
|
||||||
|
"frameSecond": [
|
||||||
|
{
|
||||||
|
"Item1": 0,
|
||||||
|
"Item2": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Item1": 1,
|
||||||
|
"Item2": 20
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"textureFrameInterval": 1,
|
||||||
|
"framesCount": 2,
|
||||||
|
"isCycle": false,
|
||||||
|
"offset": "4, 0"
|
||||||
|
}
|
||||||
|
|
BIN
DangerousD/Content/sounds/shotgun_shot.mp3
Normal file
BIN
DangerousD/Content/sounds/shotgun_shot.mp3
Normal file
Binary file not shown.
|
@ -30,6 +30,7 @@ namespace DangerousD.GameCore
|
||||||
|
|
||||||
LoadContent();
|
LoadContent();
|
||||||
AppManager.Instance.GameManager.Register(this);
|
AppManager.Instance.GameManager.Register(this);
|
||||||
|
GraphicsComponent.parentId = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void OnCollision(GameObject gameObject)
|
public virtual void OnCollision(GameObject gameObject)
|
||||||
|
@ -68,5 +69,9 @@ namespace DangerousD.GameCore
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public GraphicsComponent GetGraphicsComponent()
|
||||||
|
{
|
||||||
|
return this.GraphicsComponent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -31,14 +31,17 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
|
||||||
private int bullets;
|
private int bullets;
|
||||||
public bool FallingThroughPlatform = false;
|
public bool FallingThroughPlatform = false;
|
||||||
public bool isUping = false;
|
public bool isUping = false;
|
||||||
|
public bool isNetworkPlayer;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public int Bullets { get { return bullets; } }
|
public int Bullets { get { return bullets; } }
|
||||||
|
|
||||||
public Player(Vector2 position, bool isNetworkPlayer = false) : base(position)
|
public Player(Vector2 position, bool isNetworkPlayer = false) : base(position)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
this.isNetworkPlayer = isNetworkPlayer;
|
||||||
Width = 16;
|
Width = 16;
|
||||||
Height = 32;
|
Height = 32;
|
||||||
|
|
||||||
|
@ -47,24 +50,24 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
|
||||||
AppManager.Instance.InputManager.ShootEvent += Shoot;
|
AppManager.Instance.InputManager.ShootEvent += Shoot;
|
||||||
AppManager.Instance.InputManager.MovEventJump += Jump;
|
AppManager.Instance.InputManager.MovEventJump += Jump;
|
||||||
AppManager.Instance.InputManager.MovEventDown += MoveDown;
|
AppManager.Instance.InputManager.MovEventDown += MoveDown;
|
||||||
|
velocity = new Vector2(0, 0);
|
||||||
|
rightBorder = (int)position.X + 100;
|
||||||
|
leftBorder = (int)position.X - 100;
|
||||||
|
bullets = 5;
|
||||||
|
|
||||||
|
this.GraphicsComponent.actionOfAnimationEnd += (a) =>
|
||||||
|
{
|
||||||
|
if (a == "playerShootLeft" || a == "playerShootRight")
|
||||||
|
{
|
||||||
|
isShooting = false;
|
||||||
|
}
|
||||||
|
if (a == "playerReload")
|
||||||
|
{
|
||||||
|
bullets++;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
velocity = new Vector2(0, 0);
|
|
||||||
rightBorder = (int)position.X + 100;
|
|
||||||
leftBorder = (int)position.X - 100;
|
|
||||||
bullets = 5;
|
|
||||||
|
|
||||||
this.GraphicsComponent.actionOfAnimationEnd += (a) =>
|
|
||||||
{
|
|
||||||
if (a == "playerShootLeft" || a == "playerShootRight")
|
|
||||||
{
|
|
||||||
isShooting = false;
|
|
||||||
}
|
|
||||||
if (a == "playerReload")
|
|
||||||
{
|
|
||||||
bullets++;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsAlive { get { return isAlive; } }
|
public bool IsAlive { get { return isAlive; } }
|
||||||
|
@ -136,6 +139,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
|
||||||
{
|
{
|
||||||
if (!isShooting)
|
if (!isShooting)
|
||||||
{
|
{
|
||||||
|
AppManager.Instance.SoundManager.StartSound("shotgun_shot", Pos, Pos);
|
||||||
isShooting = true;
|
isShooting = true;
|
||||||
bullets--;
|
bullets--;
|
||||||
if (isRight)
|
if (isRight)
|
||||||
|
@ -251,6 +255,5 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
|
||||||
FallingThroughPlatform = true;
|
FallingThroughPlatform = true;
|
||||||
isOnGround = false;
|
isOnGround = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using DangerousD.GameCore.Managers;
|
using DangerousD.GameCore.Managers;
|
||||||
|
using DangerousD.GameCore.Network;
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Content;
|
using Microsoft.Xna.Framework.Content;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
@ -18,6 +19,7 @@ namespace DangerousD.GameCore.Graphics
|
||||||
private List<string> texturesNames;
|
private List<string> texturesNames;
|
||||||
private AnimationContainer currentAnimation;
|
private AnimationContainer currentAnimation;
|
||||||
static private int scaling = 4;
|
static private int scaling = 4;
|
||||||
|
public int parentId;
|
||||||
public AnimationContainer CurrentAnimation
|
public AnimationContainer CurrentAnimation
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -105,6 +107,14 @@ namespace DangerousD.GameCore.Graphics
|
||||||
|
|
||||||
public void StartAnimation(string startedanimationId)
|
public void StartAnimation(string startedanimationId)
|
||||||
{
|
{
|
||||||
|
if (startedanimationId == "playerShootRight" && parentId == 17)
|
||||||
|
{
|
||||||
|
string a = "2";
|
||||||
|
}
|
||||||
|
if (AppManager.Instance.multiPlayerStatus != MultiPlayerStatus.SinglePlayer && startedanimationId != GetCurrentAnimation)
|
||||||
|
{
|
||||||
|
AppManager.Instance.NetworkTasks.Add(new NetworkTask(parentId, startedanimationId, Vector2.Zero));
|
||||||
|
}
|
||||||
currentFrame = 0;
|
currentFrame = 0;
|
||||||
currentAnimation = animations.Find(x => x.Id == startedanimationId);
|
currentAnimation = animations.Find(x => x.Id == startedanimationId);
|
||||||
|
|
||||||
|
|
|
@ -111,9 +111,8 @@ namespace DangerousD.GameCore
|
||||||
{
|
{
|
||||||
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
|
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
|
||||||
Exit();
|
Exit();
|
||||||
|
if (GameManager.GetPlayer1 != null)
|
||||||
if (GameManager.GetPlayer1 != null)
|
DebugHUD.Set("id: ", GameManager.GetPlayer1.id.ToString());
|
||||||
DebugHUD.Set("Objid: ", GameManager.GetPlayer1.id.ToString());
|
|
||||||
InputManager.Update();
|
InputManager.Update();
|
||||||
SoundManager.Update();
|
SoundManager.Update();
|
||||||
|
|
||||||
|
@ -229,10 +228,11 @@ namespace DangerousD.GameCore
|
||||||
case NetworkTaskOperationEnum.CreateEntity:
|
case NetworkTaskOperationEnum.CreateEntity:
|
||||||
break;
|
break;
|
||||||
case NetworkTaskOperationEnum.SendPosition:
|
case NetworkTaskOperationEnum.SendPosition:
|
||||||
if (networkTask.objId != GameManager.GetPlayer1.id)
|
if (networkTask.objId != GameManager.GetPlayer1.id )
|
||||||
{
|
{
|
||||||
LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId);
|
LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId);
|
||||||
entity.SetPosition(networkTask.position);
|
if (entity != null)
|
||||||
|
entity.SetPosition(networkTask.position);
|
||||||
if (multiPlayerStatus == MultiPlayerStatus.Host)
|
if (multiPlayerStatus == MultiPlayerStatus.Host)
|
||||||
{
|
{
|
||||||
NetworkTasks.Add(networkTask);
|
NetworkTasks.Add(networkTask);
|
||||||
|
@ -240,6 +240,20 @@ namespace DangerousD.GameCore
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NetworkTaskOperationEnum.ChangeState:
|
case NetworkTaskOperationEnum.ChangeState:
|
||||||
|
if (networkTask.objId != GameManager.GetPlayer1.id)
|
||||||
|
{
|
||||||
|
List<GraphicsComponent> gcs = new List<GraphicsComponent>();
|
||||||
|
foreach (var player in GameManager.players)
|
||||||
|
{
|
||||||
|
gcs.Add(player.GetGraphicsComponent());
|
||||||
|
}
|
||||||
|
LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId);
|
||||||
|
if (entity != null)
|
||||||
|
{
|
||||||
|
GraphicsComponent gc = entity.GetGraphicsComponent();
|
||||||
|
gc.StartAnimation(networkTask.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case NetworkTaskOperationEnum.ConnectToHost:
|
case NetworkTaskOperationEnum.ConnectToHost:
|
||||||
Player connectedPlayer = new Player(Vector2.Zero, true);
|
Player connectedPlayer = new Player(Vector2.Zero, true);
|
||||||
|
@ -257,15 +271,17 @@ namespace DangerousD.GameCore
|
||||||
if (!GameManager.GetPlayer1.isIdFromHost)
|
if (!GameManager.GetPlayer1.isIdFromHost)
|
||||||
{
|
{
|
||||||
GameManager.GetPlayer1.id = networkTask.objId;
|
GameManager.GetPlayer1.id = networkTask.objId;
|
||||||
|
GraphicsComponent gcsd = GameManager.GetPlayer1.GetGraphicsComponent();
|
||||||
|
gcsd.parentId = networkTask.objId;
|
||||||
GameManager.GetPlayer1.isIdFromHost = true;
|
GameManager.GetPlayer1.isIdFromHost = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NetworkTaskOperationEnum.AddConnectedPlayer:
|
case NetworkTaskOperationEnum.AddConnectedPlayer:
|
||||||
Player remoteConnectedPlayer = new Player(networkTask.position, true);
|
Player remoteConnectedPlayer = new Player(networkTask.position, true);
|
||||||
remoteConnectedPlayer.id = networkTask.objId;
|
remoteConnectedPlayer.id = networkTask.objId;
|
||||||
|
remoteConnectedPlayer.GetGraphicsComponent().parentId = networkTask.objId;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,14 +150,21 @@ namespace DangerousD.GameCore
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
for (int i = 0; i < livingEntitiesWithoutPlayers.Count; i++)
|
for (int i = 0; i < livingEntitiesWithoutPlayers.Count; i++)
|
||||||
{
|
{
|
||||||
livingEntitiesWithoutPlayers[i].PlayAnimation();
|
livingEntitiesWithoutPlayers[i].PlayAnimation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
foreach (Player player in players)
|
||||||
|
{
|
||||||
|
if (player.id != GetPlayer1.id)
|
||||||
|
{
|
||||||
|
player.PlayAnimation();
|
||||||
|
}
|
||||||
|
}
|
||||||
GetPlayer1.Update(gameTime);
|
GetPlayer1.Update(gameTime);
|
||||||
|
|
||||||
foreach (var item in otherObjects)
|
foreach (var item in otherObjects)
|
||||||
item.Update(gameTime);
|
item.Update(gameTime);
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace DangerousD.GameCore
|
||||||
|
|
||||||
public void LoadSounds() // метод для загрузки звуков из папки
|
public void LoadSounds() // метод для загрузки звуков из папки
|
||||||
{
|
{
|
||||||
var k = Directory.GetFiles("../../..//Content").Where(x => x.EndsWith("mp3"));
|
var k = Directory.GetFiles("../../..//Content//sounds").Where(x => x.EndsWith("mp3"));
|
||||||
|
|
||||||
if (k.Count() > 0)
|
if (k.Count() > 0)
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,7 @@ namespace DangerousD.GameCore
|
||||||
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(".mp3", "")).ToArray();// папка со звуками там где exe
|
||||||
foreach (var soundFile in soundFiles)
|
foreach (var soundFile in soundFiles)
|
||||||
{
|
{
|
||||||
Sounds.Add(soundFile, AppManager.Instance.Content.Load<SoundEffect>(soundFile).CreateInstance());
|
Sounds.Add(soundFile, AppManager.Instance.Content.Load<SoundEffect>("sounds//" + soundFile).CreateInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ namespace DangerousD.GameCore
|
||||||
{
|
{
|
||||||
var sound = new Sound(Sounds[soundName], soundPos);
|
var sound = new Sound(Sounds[soundName], soundPos);
|
||||||
sound.SoundEffect.IsLooped = false;
|
sound.SoundEffect.IsLooped = false;
|
||||||
sound.SoundEffect.Volume = (float)sound.GetDistance(playerPos) / MaxSoundDistance;
|
sound.SoundEffect.Volume = (float)(MaxSoundDistance-sound.GetDistance(playerPos)) / MaxSoundDistance;
|
||||||
sound.SoundEffect.Play();
|
sound.SoundEffect.Play();
|
||||||
PlayingSounds.Add(sound);
|
PlayingSounds.Add(sound);
|
||||||
if (AppManager.Instance.multiPlayerStatus == MultiPlayerStatus.Host)
|
if (AppManager.Instance.multiPlayerStatus == MultiPlayerStatus.Host)
|
||||||
|
@ -79,7 +79,7 @@ namespace DangerousD.GameCore
|
||||||
for (int i = 0; i < PlayingSounds.Count; i++)
|
for (int i = 0; i < PlayingSounds.Count; i++)
|
||||||
{
|
{
|
||||||
if (!PlayingSounds[i].isAmbient)
|
if (!PlayingSounds[i].isAmbient)
|
||||||
PlayingSounds[i].SoundEffect.Volume = (float)PlayingSounds[i].GetDistance(player.Pos) / MaxSoundDistance;
|
PlayingSounds[i].SoundEffect.Volume = (float)(MaxSoundDistance - PlayingSounds[i].GetDistance(player.Pos)) / MaxSoundDistance;
|
||||||
if (PlayingSounds[i].SoundEffect.State == SoundState.Stopped)
|
if (PlayingSounds[i].SoundEffect.State == SoundState.Stopped)
|
||||||
PlayingSounds.Remove(PlayingSounds[i]);
|
PlayingSounds.Remove(PlayingSounds[i]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue