Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Fena
(TRADITIONAL SKINHEAD)

Зарегистрирован: Sep 2003
Проживает: Russian Federation/Moscow
Написал: 227 сообщений

Оценка: 16 Votes 16 чел.

[Coding]: HuD [easy]
Сообщение #148680
Добрый вечер... давненько я не писал туторов... Сегодня я расскажу, как сделать свой HuD с текстуркой типа:
этого письма (слева) (типа смс ) И так приступим... откроем клиентовскую часть... и создадим новый cpp... например hud_mail.cpp
Для начала:
code:
#include "cbase.h"
#include "hudelement.h"
#include "hud_macros.h"
#include "iclientmode.h"
#include "view.h"
#include <vgui_controls/Panel.h>
#include <vgui_controls/Frame.h>
#include <vgui/IScheme.h>
#include <vgui/ISurface.h>
#include <vgui/ILocalize.h>
#include "tier0/memdbgon.h"

Ну, тут вроде всё понятно?
Далее описываем класс:
code:
class CHudInfo : public CHudElement, public vgui::Panel
{
DECLARE_CLASS_SIMPLE( CHudInfo, vgui::Panel );

public:
CHudInfo( const char *pElementName );

virtual void Paint();


private:
int m_nTextureID;
};
DECLARE_HUDELEMENT( CHudInfo );

Чтобы просто была текстурка нам достаточно всего одного paint();

Далее:
code:
CHudInfo::CHudInfo( const char *pElementName ) : CHudElement( pElementName ), BaseClass(NULL, "InfoROD")
{

vgui::Panel *pParent = g_pClientMode->GetViewport();
SetParent( pParent );

m_nTextureID = vgui::surface()->CreateNewTextureID();

vgui::surface()->DrawSetTextureFile( m_nTextureID, "sprites/mail" , true, false);

SetHiddenBits( HIDEHUD_PLAYERDEAD );
}


Собственно vgui::surface()->DrawSetTextureFile( m_nTextureID, "sprites/mail" , true, false); тут пишем путь к своему спрайту.
SetHiddenBits( HIDEHUD_PLAYERDEAD ); Здеся грицца, что надо убрать этот Hud с экрана только тогда, когда игрок умрёт.
BaseClass(NULL, "InfoROD")
Тут важная штука... по ней мы будем хранить информацию о HuD. Так с этим всё ок вроде...
Далее собсно сам paint();
code:
void CHudInfo::Paint( void )
{

vgui::surface()->DrawSetTexture( m_nTextureID );
vgui::surface()->DrawTexturedRect( 0, 0, 50, 30 );

}

Где vgui::surface()->DrawTexturedRect это размеры спрайта. Всё с кодом конец... можно смело компилить...
Далее нам надо создать спрайт... собсно компилим его... vmt файл должен быть такой:
code:
"Sprite"
{
"$spriteorientation" "vp_parallel"
"$spriteorigin" "[ 0.50 0.50 ]"
"$ignorez" 1
"$baseTexture" "sprites/mail"
}

Так тут вроде всё понятно
Далее нужно добавить информацию о спрайте в HudLayout.res. И так открываем его (scripts\HudLayout.res) и добавим:
code:
InfoROD
{
"fieldName" "HudInfo"
"visible" "1"
"enabled" "1" //активирован или нет
"xpos" "16" // положение по x
"ypos" "200" // положение по y
"wide" "50"
"tall" "30"

"PaintBackgroundType" "0"
}


Всё... теперь всё сохраняем, запускаем игру.. и вуаля... здесь я описал базовое создание... потом можно его анимировать, подключать event и т.п 10x
[SP]Phoenix aka Fena (fedjarik@gcnet.ru)
Свобода, Равенство, Солидарность
Пол бычка http://polbi4ka.h16.ru
Old Post 11-03-2005 19:39
Fena отсутствует Посмотреть данные 'Fena' Отправить Приватное Сообщение для 'Fena' Посетить домашнюю страничку Fena Найти другие сообщения 'Fena' Добавить Fena в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
VDm
()

Зарегистрирован: Mar 2004
Проживает: /
Написал: 1285 сообщений

Оценка: 46 Votes 46 чел.

Большой респект! Developer Команда NashaLife Самый любознательный Очень приятно, Царь Старожил 
Сообщение #148692
У!!! Круто... Респект..
Old Post 11-03-2005 20:09
VDm отсутствует Посмотреть данные 'VDm' Отправить Приватное Сообщение для 'VDm' Найти другие сообщения 'VDm' Добавить VDm в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Lolmen
(С++ Разработчик)

Зарегистрирован: Dec 2004
Проживает: Беларусь/Минск
Написал: 4515 сообщений

Оценка: 139 Votes 139 чел.

Старожил 
Сообщение #148727
А что можно еще такое придумать?
Зарание сорри за не солидарность!

Мой блог
Old Post 11-03-2005 22:06
Lolmen отсутствует Посмотреть данные 'Lolmen' Отправить Приватное Сообщение для 'Lolmen' Посетить домашнюю страничку Lolmen Найти другие сообщения 'Lolmen' Добавить Lolmen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 11:27.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены