Hey everyone. I made this Menu with a little help from my friend maudesrule It's a simple way to make Menu Tabs!
Hey noobs out there! Hahaha, noob proof!
Anyway, onto the code! (Oh, and this is keyboards.)
Put these in your declarations:
[PHP]int MenuTab, MenuMax, MenuSelection;
struct Menu
{
int MenuX;
int MenuY;
int MenuW;
int MenuH;
};
Menu Menu1;
struct Tab
{
int TabX;
int TabY;
int TabH;
int TabW;
int TabNum;
};
Tab Tabs[5];[/PHP]
Here are the functions you will need:
[PHP]-void- Draw-MyText(char pStrin g[], int x, int y, D3DCOLOR col, ID3DXFont *font)
{
RECT FontRect = { x, y, x+500, y+30 };
font->DrawText( NULL, pString, -1, &FontRect, DT_LEFT | DT_WORDBREAK, col);
} //Credits to maudesrule.[/PHP]
[PHP]maybe-void IntalizeMenu( int X, int Y, int W, int H)
{
Menu1.MenX = X;
Menu1.MenuY = Y;
Menu1.MenuW = W + Menu1.MenuX;
Menu1.MenuH = H + Menu1.MenuY;
}[/PHP]
[PHP]void IntalizeTab( int Num, int X, int Y, int W, int H )
{
Tabs[Num].TabX = X + Menu1.MenuX;
Tabs[Num].TabY = Y + Menu1.MenuY;
Tabs[Nu].TabW = W;
Tabs[Num].TabH = H;
}[/PHP]
[PHP]void DrawBox( IDirect3DDevice9 *pD3Ddev, int X, int Y, int W, int H, D3DCOLOR Color )
{
D3DRECT Rect = { X, Y, X + W, Y + H };
pD3Ddev->Clear( 1, &Rect, D3DCLEAR_TARGET, Color, 0, 0);
}[/PHP]
[PHP]void DrawTab( IDirect3DDevice9 *pD3Ddev, int TabNum, D3DCOLOR Color )
{
DrawBox( pD3Ddev, Tabs[TabNum].TabX, Tabs[TabNum].TabY, Tabs[TabNum].TabW, Tabs[TabNum].TabH, Color);
}[/PHP]
[PHP]void DrawMenu( IDirect3DDevice9 *pD3Ddev, D3DCOLOR ColFront, D3DCOLOR ColBack )
{
DrawBox(pD3Ddev, Menu1.MenuX - 5, Menu1.MenuY - 5, Menu1.MenuW + 10, Menu1.MenuH + 10, ColBack);
DrawBox(pD3Ddev, Menu1.MenuX, Menu1.MenuY, Menu1.MenuW, Menu1.MenuH, ColFront);
} [/PHP]
This will go in the in the Initialize I believe. //Credits to maudesrule.
[PHP]IntalizeMenu( 15, 150, 197, 10 );
IntalizeTab( 1, 5, 5, 50, 25);
IntalizeTab( 2, 56, 5, 50, 25);
IntalizeTab( 3, 107, 5, 50, 25);
IntalizeTab( 4, 158, 5, 50, 25);
TextXoff = Menu1.MenuX + 2;[/PHP]
Now of course drawing the menu! (Present/EndScene.)
[PHP]
DrawMenu( m_pD3Ddev, ColMenuFront, ColMenuBack );
DrawTab(m_pD3Ddev, 1, ColMenuBack);
DrawTab(m_pD3Ddev, 2, ColMenuBack);
DrawTab(m_pD3Ddev, 3, ColMenuBack);
DrawTab(m_pD3Ddev, 4, ColMenuBack);
if( GetAsyncKeyState( VK_UP ) & 1 )
{
MenuSelection--;
if(MenuSelection < 0)
MenuSelection = MenuMax;
}
if( GetAsyncKeyState( VK_DOWN ) & 1 )
{
MenuSelection++;
if(MenuSelection > MenuMax)
MenuSelection = 0;
}
switch( MenuTab )
{
case 0:
MenuMax = 2;
if( GetAsyncKeyState( VK_RIGHT ) & 1 )
{
switch( MenuSelection )
{
case 0:
MenuTab++;
if(MenuTab > 3)
MenuTab = 0;
break;
case 1:
hack1 = true;
break;
case 2:
hack2 = true;
break;
default:
break;
}
}
if( GetAsyncKeyState( VK_LEFT ) & 1 )
{
switch( MenuSelection )
{
case 0:
MenuTab--;
if(MenuTab < 0)
MenuTab = 3;
break;
case 1:
hack1 = false;
break;
case 2:
hack2 = false;
break;
default:
break;
}
}
if (hack1){
DrawMyText( "hack 1 on", TextXoff, Menu1.MenuY + 50, ColGreen, Font3 );
if(MenuSelection==1)
DrawMyText( "hack 1 on", TextXoff, Menu1.MenuY + 50, ColWhite, Font3 );
}else{
DrawMyText( "hack 1 off", TextXoff, Menu1.MenuY + 50, ColBlack, Font3 );
if(MenuSelection==1)
DrawMyText( "hack 1 off", TextXoff, Menu1.MenuY + 50, ColWhite, Font3 );
}
if (hack2){
DrawMyText( "hack 2 on", TextXoff, Menu1.MenuY + 65, ColGreen, Font3 );
if(MenuSelection==2)
DrawMyText( "hack 2 on", TextXoff, Menu1.MenuY + 65, ColWhite, Font3 );
}else{
DrawMyText( "hack 2 off", TextXoff, Menu1.MenuY + 65, ColBlack, Font3 );
if(MenuSelection==2)
DrawMyText( "hack 2 off", TextXoff, Menu1.MenuY + 65, ColWhite, Font3 );
}
break;
case 1:
MenuMax = 0;
if( GetAsyncKeyState( VK_RIGHT ) & 1 )
{
switch( MenuSelection )
{
case 0:
MenuTab++;
if(MenuTab > 3)
MenuTab = 0;
break;
default:
break;
}
}
if( GetAsyncKeyState( VK_LEFT ) & 1 )
{
switch( MenuSelection )
{
case 0:
MenuTab--;
if(MenuTab < 0)
MenuTab = 3;
break;
default:
break;
}
}
break;
case 2:
MenuMax = 0;
if( GetAsyncKeyState( VK_RIGHT ) & 1 )
{
switch( MenuSelection )
{
case 0:
MenuTab++;
if(MenuTab > 3)
MenuTab = 0;
break;
default:
break;
}
}
if( GetAsyncKeyState( VK_LEFT ) & 1 )
{
switch( MenuSelection )
{
case 0:
MenuTab--;
if(MenuTab < 0)
MenuTab = 3;
break;
default:
break;
}
}
break;
case 3:
MenuMax = 0;
if( GetAsyncKeyState( VK_RIGHT ) & 1 )
{
switch( MenuSelection )
{
case 0:
MenuTab++;
if(MenuTab > 3)
MenuTab = 0;
break;
default:
break;
}
}
if( GetAsyncKeyState( VK_LEFT ) & 1 )
{
switch( MenuSelection )
{
case 0:
MenuTab--;
if(MenuTab < 0)
MenuTab = 3;
break;
default:
break;
}
}
break;
default:
break;
}
if (MenuTab==0 && MenuSelection == 0){
DrawMyText( "Tab", Menu1.MenuX + 6, Menu1.MenuY + 10, ColBlack, Font3 );
}
else if (MenuTab==0){
DrawMyText( "Tab", Menu1.MenuX + 6, Menu1.MenuY + 10, ColGreen, Font3 );
}else{
DrawMyText( "Tab", Menu1.MenuX + 6, Menu1.MenuY + 10, ColWhite, Font3 );
}
if (MenuTab==1 && MenuSelection == 0){
DrawMyText( "Tab2", Menu1.MenuX + 57, Menu1.MenuY + 10, ColBlack, Font3 );
}
else if (MenuTab==1){
DrawMyText( "Tab2", Menu1.MenuX + 57, Menu1.MenuY + 10, ColGreen, Font3 );
}else{
DrawMyText( "Tab2", Menu1.MenuX + 57, Menu1.MenuY + 10, ColWhite, Font3 );
}
if (MenuTab==2 && MenuSelection == 0){
DrawMyText( "Tab3", Menu1.MenuX + 108, Menu1.MenuY + 10, ColBlack, Font3 );
}
else if (MenuTab==2){
DrawMyText( "Tab3", Menu1.MenuX + 108, Menu1.MenuY + 10, ColGreen, Font3 );
}else{
DrawMyText( "Tab3", Menu1.MenuX + 108, Menu1.MenuY + 10, ColWhite, Font3 );
}
if (MenuTab==3 && MenuSelection == 0){
DrawMyText( "Tab4", Menu1.MenuX + 159, Menu1.MenuY + 10, ColBlack, Font3 );
}
else if (MenuTab==3){
DrawMyText( "Tab4", Menu1.MenuX + 159, Menu1.MenuY + 10, ColGreen, Font3 );
}else{
DrawMyText( "Tab4", Menu1.MenuX + 159, Menu1.MenuY + 10, ColWhite, Font3 );
}
} [/PHP]