Всем привет.
Решил создать тему на форуме, тк сам уже не знаю что делать... Недавно создал HUD-елемент, опираясь на
Эту статью.
На первый взгляд все работало нормально, но потом я обнаружил странный косяк: текстурка рисуется только при crosshair 1 o_O Ничего общего с прицелом мой спрайт не имеет, как так? Вот код худа...
code:
#include "cbase.h"
#include "hudelement.h"
#include "hud_macros.h"
#include "iclientmode.h"
#include "view.h"
#include "util_shared.h"
#include <vgui_controls/Panel.h>
#include <vgui_controls/Frame.h>
#include <vgui/IScheme.h>
#include <vgui/ISurface.h>
#include <vgui/ILocalize.h>
#include <hud.h>
#include "vgui_controls/controls.h"
#include "IVRenderView.h"
#include "tier0/memdbgon.h"
class CHudInfo : public CHudElement, public vgui::Panel
{
DECLARE_CLASS_SIMPLE( CHudInfo, vgui::Panel );
public:
CHudInfo( const char *pElementName );
virtual bool ShouldDraw( void ) {return 1;};
virtual void Paint();
void MsgFunc_GetObj(bf_read &msg) { GetObj = msg.ReadOneBit();}
bool GetObj;
private:
int m_nTextureID;
};
DECLARE_HUD_MESSAGE( CHudInfo, GetObj );
DECLARE_HUDELEMENT( CHudInfo );
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
CHudInfo::CHudInfo( const char *pElementName ) : CHudElement( pElementName ), BaseClass(NULL, "HudInfo")
{
vgui::Panel *pParent = g_pClientMode->GetViewport();
SetParent( pParent );
m_nTextureID = vgui::surface()->CreateNewTextureID();
vgui::surface()->DrawSetTextureFile( m_nTextureID, "sprites/Info" , true, false);
SetPaintBackgroundEnabled( false );
SetHiddenBits( HIDEHUD_PLAYERDEAD );
HOOK_HUD_MESSAGE(CHudInfo, GetObj);
}
void CHudInfo::Paint( void )
{
CBasePlayer *local = CBasePlayer::GetLocalPlayer();
float x, y;
x = ScreenWidth()/2-200;
y = ScreenHeight()/2-200;
if (GetObj)
{
vgui::surface()->DrawSetTexture( m_nTextureID );
vgui::surface()->DrawTexturedRect(x-16, y-16, x+16, y+16);
}
}
Может, кто нибудь здесь знает в чем дело?
все верно...