- Статус
- Оффлайн
- Регистрация
- 18 Янв 2021
- Сообщения
- 88
- Реакции
- 8
Как возможно этот код переделать под rect_world
@INСАНЯ переделай побратский)
Код:
void render::filled_rect_world(Vector center, Vector2D size, Color color, int angle) {
Vector top_left, top_right, bot_left, bot_right;
switch (angle) {
case 0: // Z
top_left = Vector(-size.x, -size.y, 0);
top_right = Vector(size.x, -size.y, 0);
bot_left = Vector(-size.x, size.y, 0);
bot_right = Vector(size.x, size.y, 0);
break;
case 1: // Y
top_left = Vector(-size.x, 0, -size.y);
top_right = Vector(size.x, 0, -size.y);
bot_left = Vector(-size.x, 0, size.y);
bot_right = Vector(size.x, 0, size.y);
break;
case 2: // X
top_left = Vector(0, -size.y, -size.x);
top_right = Vector(0, -size.y, size.x);
bot_left = Vector(0, size.y, -size.x);
bot_right = Vector(0, size.y, size.x);
break;
}
//top line
Vector c_top_left = center + add_top_left;
Vector c_top_right = center + add_top_right;
//bottom line
Vector c_bot_left = center + add_bot_left;
Vector c_bot_right = center + add_bot_right;
Vector m_flTopleft, m_flTopRight, m_flBotLeft, m_flBotRight;
//your standard world to screen if u need one just grab from a past
if (WorldToScreen(c_top_left, m_flTopleft) && WorldToScreen(c_top_right, m_flTopRight) &&
WorldToScreen(c_bot_left, m_flBotLeft) && WorldToScreen(c_bot_right, m_flBotRight)) {
Vertex_t vertices[4];
static int m_flTexID = g_pSurface->CreateNewTextureID(true);
g_pSurface->DrawSetTexture( m_flTexID );
g_pSurface->DrawSetColor( color );
vertices[0].Init(Vector2D(m_flTopleft.x, m_flTopleft.y));
vertices[1].Init(Vector2D(m_flTopRight.x, m_flTopRight.y));
vertices[2].Init(Vector2D(m_flBotRight.x, m_flBotRight.y));
vertices[3].Init(Vector2D(m_flBotLeft.x, m_flBotLeft.y));
g_pSurface->DrawTexturedPolygon2(4, vertices, true);
}
}
@INСАНЯ переделай побратский)