NET Core, needs to be tested on other platforms before release
This commit is contained in:
parent
02f197ef72
commit
64f0a3f302
|
@ -6,14 +6,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "testexetrisathlon", "testex
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|x86 = Debug|x86
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Release|x86 = Release|x86
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}.Debug|x86.ActiveCfg = Debug|x86
|
{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}.Debug|x86.Build.0 = Debug|x86
|
{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}.Release|x86.ActiveCfg = Release|x86
|
{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}.Release|x86.Build.0 = Release|x86
|
{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
#define WINDOWS
|
#define WINDOWS
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Media;
|
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using testexetrisathlon.SoundManagement;
|
||||||
using static System.Console;
|
using static System.Console;
|
||||||
|
|
||||||
//┌─┐
|
//┌─┐
|
||||||
|
@ -32,6 +33,16 @@ namespace testexetrisathlon
|
||||||
internal static class Program
|
internal static class Program
|
||||||
{
|
{
|
||||||
public const string Sqr = "■";
|
public const string Sqr = "■";
|
||||||
|
|
||||||
|
/*private static readonly WaveStream Intro = new WaveFileReader(Assembly.GetManifestResourceStream("testexetrisathlon.Intro.wav"));
|
||||||
|
private static readonly WaveStream InGame1 = new WaveFileReader(Assembly.GetManifestResourceStream("testexetrisathlon.InGame1.wav"));
|
||||||
|
private static readonly WaveStream InGame2 = new WaveFileReader(Assembly.GetManifestResourceStream("testexetrisathlon.InGame2.wav"));
|
||||||
|
private static readonly WaveStream GameOver = new WaveFileReader(Assembly.GetManifestResourceStream("testexetrisathlon.GameOver.wav"));
|
||||||
|
private static WaveStream _inGame = SettingsMan.UsingAltTrack ? InGame2 : InGame1;
|
||||||
|
private static WaveStream _current = Intro;
|
||||||
|
private static WaveOutEvent _output = new WaveOutEvent();*/
|
||||||
|
private const string Intro = "Intro";
|
||||||
|
private const string GameOver = "GameOver";
|
||||||
public static int[,] Grid = new int[23, 10];
|
public static int[,] Grid = new int[23, 10];
|
||||||
public static int[,] DroppedTetrominoeLocationGrid = new int[23, 10];
|
public static int[,] DroppedTetrominoeLocationGrid = new int[23, 10];
|
||||||
private static Stopwatch _dropTimer = new Stopwatch();
|
private static Stopwatch _dropTimer = new Stopwatch();
|
||||||
|
@ -48,16 +59,10 @@ namespace testexetrisathlon
|
||||||
private static readonly Assembly Assembly = Assembly.GetExecutingAssembly();
|
private static readonly Assembly Assembly = Assembly.GetExecutingAssembly();
|
||||||
private static readonly ConsoleColor[] Colors = {BackgroundColor, ForegroundColor};
|
private static readonly ConsoleColor[] Colors = {BackgroundColor, ForegroundColor};
|
||||||
public static bool Debug;
|
public static bool Debug;
|
||||||
|
|
||||||
public static readonly Random Rnd = new Random();
|
public static readonly Random Rnd = new Random();
|
||||||
private static readonly SoundPlayer Intro =
|
private static ISoundManager soundManager;
|
||||||
new SoundPlayer(Assembly.GetManifestResourceStream("testexetrisathlon.Intro.wav"));
|
private static string InGame => SettingsMan.UsingAltTrack ? "InGame2" : "InGame1";
|
||||||
private static readonly SoundPlayer InGame1 =
|
|
||||||
new SoundPlayer(Assembly.GetManifestResourceStream("testexetrisathlon.InGame1.wav"));
|
|
||||||
private static readonly SoundPlayer InGame2 =
|
|
||||||
new SoundPlayer(Assembly.GetManifestResourceStream("testexetrisathlon.InGame2.wav"));
|
|
||||||
private static readonly SoundPlayer GameOver =
|
|
||||||
new SoundPlayer(Assembly.GetManifestResourceStream("testexetrisathlon.GameOver.wav"));
|
|
||||||
private static SoundPlayer _inGame = SettingsMan.UsingAltTrack ? InGame2 : InGame1;
|
|
||||||
#if WINDOWS
|
#if WINDOWS
|
||||||
[DllImport("winmm.dll")]
|
[DllImport("winmm.dll")]
|
||||||
private static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume);
|
private static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume);
|
||||||
|
@ -66,6 +71,14 @@ namespace testexetrisathlon
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
private static void Main()
|
private static void Main()
|
||||||
{
|
{
|
||||||
|
soundManager = new WindowsSoundManager();
|
||||||
|
soundManager.Init(new Dictionary<string, string>
|
||||||
|
{
|
||||||
|
{"Intro", "testexetrisathlon.Intro.wav"},
|
||||||
|
{"InGame1", "testexetrisathlon.InGame1.wav"},
|
||||||
|
{"InGame2", "testexetrisathlon.InGame2.wav"},
|
||||||
|
{"GameOver", "testexetrisathlon.GameOver.wav"}
|
||||||
|
});
|
||||||
Debug = true;
|
Debug = true;
|
||||||
#else
|
#else
|
||||||
private static void Main(string[] args)
|
private static void Main(string[] args)
|
||||||
|
@ -92,8 +105,7 @@ namespace testexetrisathlon
|
||||||
{
|
{
|
||||||
case GameState.Menu:
|
case GameState.Menu:
|
||||||
Clear();
|
Clear();
|
||||||
GameOver.Stop();
|
soundManager.SetCurrent(Intro);
|
||||||
Intro.PlayLooping();
|
|
||||||
DrawSymbol();
|
DrawSymbol();
|
||||||
SetCursorPosition(12, 18);
|
SetCursorPosition(12, 18);
|
||||||
Write("HighScore: " + SettingsMan.HighScore);
|
Write("HighScore: " + SettingsMan.HighScore);
|
||||||
|
@ -115,7 +127,6 @@ namespace testexetrisathlon
|
||||||
switch (tmp)
|
switch (tmp)
|
||||||
{
|
{
|
||||||
case "s":
|
case "s":
|
||||||
Intro.Stop();
|
|
||||||
state = GameState.Game;
|
state = GameState.Game;
|
||||||
Clear();
|
Clear();
|
||||||
DrawBorder();
|
DrawBorder();
|
||||||
|
@ -129,7 +140,7 @@ namespace testexetrisathlon
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GameState.Game:
|
case GameState.Game:
|
||||||
_inGame.PlayLooping();
|
soundManager.SetCurrent(InGame);
|
||||||
_dropTimer.Start();
|
_dropTimer.Start();
|
||||||
SetCursorPosition(25, 0);
|
SetCursorPosition(25, 0);
|
||||||
WriteLine("Level " + _level);
|
WriteLine("Level " + _level);
|
||||||
|
@ -144,12 +155,11 @@ namespace testexetrisathlon
|
||||||
_tet.Spawn();
|
_tet.Spawn();
|
||||||
_nextTet = new Tetrominoe();
|
_nextTet = new Tetrominoe();
|
||||||
Update();
|
Update();
|
||||||
_inGame.Stop();
|
|
||||||
state = GameState.GameOver;
|
state = GameState.GameOver;
|
||||||
break;
|
break;
|
||||||
case GameState.GameOver:
|
case GameState.GameOver:
|
||||||
SettingsMan.HighScore = _score;
|
SettingsMan.HighScore = _score;
|
||||||
GameOver.PlayLooping();
|
soundManager.SetCurrent(GameOver);
|
||||||
string input = "";
|
string input = "";
|
||||||
while (input != "y" && input != "n")
|
while (input != "y" && input != "n")
|
||||||
{
|
{
|
||||||
|
@ -185,10 +195,7 @@ namespace testexetrisathlon
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Intro.Dispose();
|
soundManager.Dispose();
|
||||||
InGame1.Dispose();
|
|
||||||
InGame2.Dispose();
|
|
||||||
GameOver.Dispose();
|
|
||||||
}
|
}
|
||||||
BackgroundColor = Colors[0];
|
BackgroundColor = Colors[0];
|
||||||
ForegroundColor = Colors[1];
|
ForegroundColor = Colors[1];
|
||||||
|
@ -274,11 +281,7 @@ namespace testexetrisathlon
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#if WINDOWS
|
soundManager.SetVolume(SettingsMan.Volume * 10);
|
||||||
int newVolume = (ushort.MaxValue / 10) * SettingsMan.Volume;
|
|
||||||
waveOutSetVolume(IntPtr.Zero, ((uint) newVolume & 0x0000ffff) | ((uint) newVolume << 16));
|
|
||||||
#endif
|
|
||||||
_inGame = SettingsMan.UsingAltTrack ? InGame2 : InGame1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -365,11 +368,9 @@ namespace testexetrisathlon
|
||||||
if ((_key.Key == ConsoleKey.UpArrow) & _isKeyPressed)
|
if ((_key.Key == ConsoleKey.UpArrow) & _isKeyPressed)
|
||||||
for (; _tet.IsSomethingBelow != true;)
|
for (; _tet.IsSomethingBelow != true;)
|
||||||
_tet.Drop();
|
_tet.Drop();
|
||||||
if ((_key.Key == ConsoleKey.Spacebar) & _isKeyPressed)
|
if (!((_key.Key == ConsoleKey.Spacebar) & _isKeyPressed)) return;
|
||||||
{
|
_tet.Rotate();
|
||||||
_tet.Rotate();
|
_tet.Update();
|
||||||
_tet.Update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Draw()
|
public static void Draw()
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace testexetrisathlon.SoundManagement
|
||||||
|
{
|
||||||
|
public interface ISoundManager : IDisposable
|
||||||
|
{
|
||||||
|
public void Init(Dictionary<string, string> manifestResources);
|
||||||
|
public void SetCurrent(string id);
|
||||||
|
public void SetVolume(int percent);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
using NAudio.Wave;
|
||||||
|
|
||||||
|
namespace testexetrisathlon.SoundManagement
|
||||||
|
{
|
||||||
|
public class LoopStream : WaveStream
|
||||||
|
{
|
||||||
|
private readonly WaveStream _sourceStream;
|
||||||
|
|
||||||
|
public LoopStream(WaveStream sourceStream)
|
||||||
|
{
|
||||||
|
_sourceStream = sourceStream;
|
||||||
|
EnableLooping = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool EnableLooping { get; }
|
||||||
|
public override WaveFormat WaveFormat => _sourceStream.WaveFormat;
|
||||||
|
public override long Length => _sourceStream.Length;
|
||||||
|
|
||||||
|
public override long Position
|
||||||
|
{
|
||||||
|
get => _sourceStream.Position;
|
||||||
|
set => _sourceStream.Position = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int Read(byte[] buffer, int offset, int count)
|
||||||
|
{
|
||||||
|
int totalBytesRead = 0;
|
||||||
|
|
||||||
|
while (totalBytesRead < count)
|
||||||
|
{
|
||||||
|
int bytesRead = _sourceStream.Read(buffer, offset + totalBytesRead, count - totalBytesRead);
|
||||||
|
if (bytesRead == 0)
|
||||||
|
{
|
||||||
|
if (_sourceStream.Position == 0 || !EnableLooping) break;
|
||||||
|
_sourceStream.Position = 0;
|
||||||
|
}
|
||||||
|
totalBytesRead += bytesRead;
|
||||||
|
}
|
||||||
|
return totalBytesRead;
|
||||||
|
}
|
||||||
|
|
||||||
|
public new void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
_sourceStream.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using NAudio.Wave;
|
||||||
|
|
||||||
|
namespace testexetrisathlon.SoundManagement
|
||||||
|
{
|
||||||
|
public sealed class WindowsSoundManager : ISoundManager
|
||||||
|
{
|
||||||
|
private static readonly Assembly Assembly = Assembly.GetExecutingAssembly();
|
||||||
|
private static WaveOutEvent _output;
|
||||||
|
private static WaveStream _current;
|
||||||
|
private static string _currentId;
|
||||||
|
private Dictionary<string, LoopStream> _loadedSounds;
|
||||||
|
|
||||||
|
public void Init(Dictionary<string, string> manifestResources)
|
||||||
|
{
|
||||||
|
_output = new WaveOutEvent();
|
||||||
|
_loadedSounds = manifestResources.ToDictionary(s => s.Key,
|
||||||
|
s => new LoopStream(new WaveFileReader(Assembly.GetManifestResourceStream(s.Value))));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetCurrent(string id)
|
||||||
|
{
|
||||||
|
if (_currentId == id) return;
|
||||||
|
_currentId = id;
|
||||||
|
if (_current != null)
|
||||||
|
_current.Position = 0;
|
||||||
|
_current = _loadedSounds[id];
|
||||||
|
_output.Stop();
|
||||||
|
_output.Init(_current);
|
||||||
|
_output.Play();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetVolume(int percent) => _output.Volume = percent / 100f;
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
foreach (LoopStream reader in _loadedSounds.Values) reader.Dispose();
|
||||||
|
_output.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,94 +1,29 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
<ProjectGuid>{6B0BD176-D6E3-49F5-8CA1-AE5F1535AC59}</ProjectGuid>
|
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RootNamespace>testexetrisathlon</RootNamespace>
|
|
||||||
<AssemblyName>testexetrisathlon</AssemblyName>
|
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
|
||||||
<TargetFrameworkProfile />
|
|
||||||
<LangVersion>8</LangVersion>
|
<LangVersion>8</LangVersion>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
|
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||||
|
<Deterministic>false</Deterministic>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
<PropertyGroup>
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<PostBuildEvent>if exist "$(SolutionDir)Data\pkgtool.exe" ($(SolutionDir)Data\pkgtool.exe build --noLogo --binDir .) else if exist "%appdata%\UpTool2\Apps\0e35d154-d0d3-45e0-b080-62f521263a44\app\pkgtool.exe" ("%appdata%\UpTool2\Apps\0e35d154-d0d3-45e0-b080-62f521263a44\app\pkgtool.exe" build --noLogo --binDir .) else echo Cound not find Package build tools, skipping</PostBuildEvent>
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>bin\Debug</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<ExternalConsole>true</ExternalConsole>
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release</OutputPath>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<ExternalConsole>true</ExternalConsole>
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;</DefineConstants>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;</DefineConstants>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
|
||||||
<OutputPath>bin\x64\Release\</OutputPath>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>tetris_yUxH6t_256px.ico</ApplicationIcon>
|
<ApplicationIcon>tetris_yUxH6t_256px.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Program.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
<Compile Include="SettingsMan.cs" />
|
|
||||||
<Compile Include="Tetrominoe.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Intro.wav" />
|
<EmbeddedResource Include="Intro.wav" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="GameOver.wav" />
|
<EmbeddedResource Include="GameOver.wav" />
|
||||||
<EmbeddedResource Include="InGame1.wav" />
|
<EmbeddedResource Include="InGame1.wav" />
|
||||||
<EmbeddedResource Include="InGame2.wav" />
|
<EmbeddedResource Include="InGame2.wav" />
|
||||||
<Content Include="tetris_yUxH6t_256px.ico" />
|
<Content Include="tetris_yUxH6t_256px.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<ItemGroup>
|
||||||
|
<PackageReference Include="NAudio" Version="1.10.0" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
Reference in New Issue