Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Как сделать FOV на игрововой рисокве(круг)

C++:
Expand Collapse Copy
void DrawCircle(float x, float y, float r, int Color, float resolution)
{
    float PointX = 0.f;
    float PointY = 0.f;

    for (int i = 0; i <= resolution; ++i)
    {
        float X = x + r * cos(2 * 3.14159265358979323846264 * i / resolution);
        float Y = y - r * sin(2 * 3.14159265358979323846264 * i / resolution);
        if (i > 0) DrawString(X, Y, 17.f, Color, ".");
        PointX = X; PointY = Y;
    }
}
 
C++:
Expand Collapse Copy
void DrawCircle(float x, float y, float r, int cLine, float resolution)
{
    float PointX = 0.f;
    float PointY = 0.f;

    for (int i = 0; i <= resolution; ++i)
    {
        float X = x + r * cos(2 * 3.14159265358979323846264 * i / resolution);
        float Y = y - r * sin(2 * 3.14159265358979323846264 * i / resolution);
        if (i > 0) DrawString(X, Y, 17.f, cLine, ".");
        PointX = X; PointY = Y;
    }
}
Не легче было вместо 3.14159265358979323846264 сделать просто M_PI или PI в каждом сдк по разному.
Так де есть M2_PI ( 3.14 сразу умноженное на 2 ).
 
C++:
Expand Collapse Copy
void DrawCircle(float x, float y, float r, int Color, float resolution)
{
    float PointX = 0.f;
    float PointY = 0.f;

    for (int i = 0; i <= resolution; ++i)
    {
        float X = x + r * cos(2 * 3.14159265358979323846264 * i / resolution);
        float Y = y - r * sin(2 * 3.14159265358979323846264 * i / resolution);
        if (i > 0) DrawString(X, Y, 17.f, Color, ".");
        PointX = X; PointY = Y;
    }
}
Тут если я не ошибаюсь нужно имгуй подключать?
 
Желательно не круг, а круг из точек
Друг, возможно я открою тебе секрет, но ты чисто физически не сможешь нарисовать круг. Любой круг, отрисованный на экране монитора - является 65537-угольником, который (ого вдруг!!) состоит из точек. Да, я душнила. Бтв, реализация Biven через буквально точку (как текст) это :roflanEbalo:. Юзай лучше DrawLine.
 
Друг, возможно я открою тебе секрет, но ты чисто физически не сможешь нарисовать круг. Любой круг, отрисованный на экране монитора - является 65537-угольником, который (ого вдруг!!) состоит из точек. Да, я душнила. Бтв, реализация Biven через буквально точку (как текст) это :roflanEbalo:. Юзай лучше DrawLine.
Пишет идентификатор не определен. Нужно добавить имгуи?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
на кой черт ты спрашиваешь про имгуи, если тред "на игровой рисовке" и тебе дали решение?
я хз, я дурачек. Туплю моментами. Подскажи, слишком добрый человек, можно сделать вот так, что бы идентификатор DrawString был объявлен?
C++:
Expand Collapse Copy
void DrawString(//тут параметры, переменный, я хз как правильно назвать. Ну думаю меня поняли)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я хз, я дурачек. Туплю моментами. Подскажи, слишком добрый человек, можно сделать вот так, что бы идентификатор DrawString был объявлен?
C++:
Expand Collapse Copy
void DrawString(//тут параметры, переменный, я хз как правильно назвать. Ну думаю меня поняли)
drawstring берется с структуры рисовки игры...
 
Друг, возможно я открою тебе секрет, но ты чисто физически не сможешь нарисовать круг. Любой круг, отрисованный на экране монитора - является 65537-угольником, который (ого вдруг!!) состоит из точек. Да, я душнила. Бтв, реализация Biven через буквально точку (как текст) это :roflanEbalo:. Юзай лучше DrawLine.
Так ему нужно точками, а не линиями, с точками и предложил пример
 
а что делать с этим DrawString. Куда его всучить, подскажи пожалуйста
В классе IFont есть эти виртуальные функции. И посмотри в сурсах как выводят текст на экран через игровые DrawString
C++:
Expand Collapse Copy
class IFont
{
public:
    virtual void Function0() = 0;
    virtual void Function1() = 0;
    virtual void Function2() = 0;
    virtual bool Load(const char* pXMLFile) = 0;
    virtual void Function4() = 0;
    virtual void Function5() = 0;;
    virtual void Function6() = 0;
    virtual void DrawString(float x, float y, const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void DrawStringW(float x, float y, float z, const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void Function9() = 0;
    virtual Vec2 GetTextSize(const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual Vec2 GetTextSizeW(const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual int GetTextLength(const char* szwMsg, const bool bASCIIMultiLine) = 0;
    virtual int GetTextLengthW(const wchar_t* szwMsg, const bool bASCIIMultiLine) = 0;
};
 
В классе IFont есть эти виртуальные функции. И посмотри в сурсах как выводят текст на экран через игровые DrawString
C++:
Expand Collapse Copy
class IFont
{
public:
    virtual void Function0() = 0;
    virtual void Function1() = 0;
    virtual void Function2() = 0;
    virtual bool Load(const char* pXMLFile) = 0;
    virtual void Function4() = 0;
    virtual void Function5() = 0;;
    virtual void Function6() = 0;
    virtual void DrawString(float x, float y, const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void DrawStringW(float x, float y, float z, const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void Function9() = 0;
    virtual Vec2 GetTextSize(const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual Vec2 GetTextSizeW(const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual int GetTextLength(const char* szwMsg, const bool bASCIIMultiLine) = 0;
    virtual int GetTextLengthW(const wchar_t* szwMsg, const bool bASCIIMultiLine) = 0;
};
ок, спасибо большое
 
В классе IFont есть эти виртуальные функции. И посмотри в сурсах как выводят текст на экран через игровые DrawString
C++:
Expand Collapse Copy
class IFont
{
public:
    virtual void Function0() = 0;
    virtual void Function1() = 0;
    virtual void Function2() = 0;
    virtual bool Load(const char* pXMLFile) = 0;
    virtual void Function4() = 0;
    virtual void Function5() = 0;;
    virtual void Function6() = 0;
    virtual void DrawString(float x, float y, const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void DrawStringW(float x, float y, float z, const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual void Function9() = 0;
    virtual Vec2 GetTextSize(const char* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual Vec2 GetTextSizeW(const wchar_t* pStr, const bool asciiMultiLine, const STextDrawContext& ctx) = 0;
    virtual int GetTextLength(const char* szwMsg, const bool bASCIIMultiLine) = 0;
    virtual int GetTextLengthW(const wchar_t* szwMsg, const bool bASCIIMultiLine) = 0;
};
Можешь пожалуйста примеры привести в каких сурсах искать
 
C++:
Expand Collapse Copy
void DrawCircle(float x, float y, float r, int Color, float resolution)
{
    float PointX = 0.f;
    float PointY = 0.f;

    for (int i = 0; i <= resolution; ++i)
    {
        float X = x + r * cos(2 * 3.14159265358979323846264 * i / resolution);
        float Y = y - r * sin(2 * 3.14159265358979323846264 * i / resolution);
        if (i > 0) DrawString(X, Y, 17.f, Color, ".");
        PointX = X; PointY = Y;
    }
}
А как уменьшить его размер и кол-во точек?
 
Назад
Сверху Снизу