Top.Mail.Ru
Ответы

Как написать консольную игру на C#

Как обработать столкновение с объектом что-бы игрок не проходил сквозь его.
вот пример кода:

do
Console.Clear();

//рисуем обьект
Console.SetCursorPosition(objectX1, objectY1);
// Console.Write(objectChar1);

//рисуем обьект 2
// Console.SetCursorPosition(objectX2, objectY2);
// Console.Write(objectChar2);

Console.SetCursorPosition(vragX, vragY);
Console.Write((char)4);

//рисуем игрока
Console.SetCursorPosition(playerX, playerY);
Console.Write(playerChar);

//логика

giveHealth();

healths();

damac();

GameOver();

//барьеры

if (playerX == 0)
{
playerX++;
}
if (playerY == 5)
{
playerY++;

}
if (playerX == 79)
{
playerX--;
}
if (playerY == 24)
{
playerY--;
}
//рисуем аптечку
Console.SetCursorPosition(aptecX, aptecY);
Console.Write(aptec);

Console.SetCursorPosition(aptec2X, aptec2Y);
Console.Write(aptec2Char);

//рисуем жизни
Console.SetCursorPosition(30, 3);
Console.Write("Жизни - " + health);
k = Console.ReadKey(true);

if (k.Key == ConsoleKey.UpArrow)
{

playerY--;
}
if (k.Key == ConsoleKey.DownArrow)
{

playerY++;
}
if (k.Key == ConsoleKey.LeftArrow)
{

playerX--;
}
if (k.Key == ConsoleKey.RightArrow)
{

playerX++;
}

if (k.Key == ConsoleKey.Escape)
{
Process.Start("MenuGame.exe");//Включаем меню
}

} while (k.Key != ConsoleKey.Escape);

вот функция столкновения :

public static void object1()
{
if (playerX == objectX1 + 1 && playerY == objectY1) //правая часть обьекта
{
playerX++;

}

помогите сделать так что-бы при нажатие кнопки вверх, вниз, вправо.
игрок не перемещялся на x++

По дате
По рейтингу
Аватар пользователя
Новичок
6лет

В консоли придётся переписывать весь экран с учётом нажатой стрелки.
Проще создать имитацию консольного окна в гуе