#include "_StdAfx.h"
Ui::Ui(){
m_pTxFrame = NULL;
m_pTxMBlock = NULL;
m_pTxMsg = NULL;
M=0;
clickComp =0;
for(int i =0;i<10;i++){
BoxSwit[i] = 0;
}
}
INT Ui::Init(){
m_pSChain= LnSnd_Create("Sound/eff_chain.wav");
if(NULL == m_pSChain)
return -1;
MU_TextureLoad("Texture/UI/Frame.png", m_pTxFrame, D3DCOLOR_ARGB(255,255,255,255)); // 프레임
MU_TextureLoad("Texture/UI/menu.png", m_pTxMenu, D3DCOLOR_ARGB(255,255,255,255)); // 메뉴 확장 박스
MU_TextureLoad("Texture/UI/MBlock.png", m_pTxMBlock, D3DCOLOR_ARGB(0,149,149,149)); // 각 메뉴 블록
for(int i=0;i<20;i++)
SetRect(&MBFlag[i],i%2*90,i/2*44,i%2*90 + 44,(i/2*44) + 43);
SetRect(&MFlag[0],0,0,128,104);
SetRect(&MFlag[1],0,104,128,208);
SetRect(&MenuB,1790,976,1918,1065);
UiBox[UISKILL] = new MsgBox("SKILL",350,500);
UiBox[UIQUIT] = new MsgBox("DO YOU WANNA QUIT?",550,150);
return 1;
}
void Ui::Destroy(){
SAFE_RELEASE( m_pTxFrame );
SAFE_RELEASE( m_pTxMBlock );
SAFE_RELEASE( m_pTxMsg);
}
void Ui::ClickMenu(int UINUM){
clickComp = 1;
if(BoxSwit[UINUM]){
BoxSwit[UINUM] = 0;
}else{
BoxSwit[UINUM] = 1;
old.push_back(UINUM);
}
}
INT Ui::FrameMove(){
/* ::: 마우스, 키보드 순으로 각 메뉴 버튼 활성화에 대한 프레임무브 ::: */
if(GINPUT->GetMouseSt(1)) clickComp = 0; // 클릭 완료 피드백
/* 메뉴 확장 버튼 */
if(GINPUT->IsInRect(MenuB) && GINPUT->GetMouseSt(0) && clickComp == 0)
{
LnSnd_Play(m_pSChain);
clickComp = 1;
if(M==0)
M =1;
else
M =0;
}
if(GINPUT->KeyDown(VK_MENU)){
LnSnd_Play(m_pSChain);
if(M==0)
M =1;
else
M =0;
}
for(int i=0;i<6;i++)
SetRect(&BoxIn[i],MenuB.left,MenuB.top + ((i+1)*89),MenuB.right,MenuB.bottom+ ((i+1)*89)); // 확장 메뉴 버튼 좌표를 메뉴버튼에 종속
SetRect(&Mstr,MenuB.left+35,MenuB.top+23,MenuB.right,MenuB.bottom);
if(M == 1){
if(MenuB.top > 521 ){
MenuB.bottom -=89;
MenuB.top -=89;
}
}
if(M == 0){
if(MenuB.top < 976 ){
MenuB.bottom +=89;
MenuB.top +=89;
}else if(MenuB.top>976){
MenuB.bottom -=1;
MenuB.top -= 1;
}else{
}
}
/* 스킬 버튼 */
if(GINPUT->IsInRect(BoxIn[UISKILL]) && GINPUT->GetMouseSt(0)&& clickComp == 0)
{
ClickMenu(UISKILL);
}
if(BoxSwit[UISKILL] && UiBox[UISKILL]->Update() == uTRUE){
}else if(BoxSwit[UISKILL] && UiBox[UISKILL]->Update() == uFALSE){
BoxSwit[UISKILL] = 0;
}
/* 종료 버튼 */
if(GINPUT->IsInRect(BoxIn[UIQUIT]) && GINPUT->GetMouseSt(0)&& clickComp == 0)
{
ClickMenu(UIQUIT);
}
if(BoxSwit[UIQUIT] && UiBox[UIQUIT]->Update() == uTRUE){
SendMessage(GHWND, WM_DESTROY, 0,0);
}else if(BoxSwit[UIQUIT] && UiBox[UIQUIT]->Update() == uFALSE){
BoxSwit[UIQUIT] = 0;
}
/* ESC로 연 순서대로 닫기 */
if(GINPUT->KeyDown(VK_ESCAPE)){
if(!old.empty()){
BoxSwit[old.front()] = 0;
old.pop_front();
}
}
return 1;
}
void Ui::Render(){
/* 프레임 렌더 */
GSPRITE->Draw(m_pTxFrame, NULL, NULL, &D3DXVECTOR3(0,0, 0), D3DXCOLOR(1,1,1,1));
if(GINPUT->IsInRect(MenuB)){
GSPRITE->Draw(m_pTxMenu, &MFlag[1], NULL, &D3DXVECTOR3(MenuB.left,MenuB.top, 0), D3DXCOLOR(1,1,1,1));
}else{
GSPRITE->Draw(m_pTxMenu, &MFlag[0], NULL, &D3DXVECTOR3(MenuB.left,MenuB.top, 0), D3DXCOLOR(1,1,1,1));
}
for(int i=1;i<7;i++){
if(GINPUT->IsInRect(BoxIn[i-1])){
GSPRITE->Draw(m_pTxMenu, &MFlag[1], NULL, &D3DXVECTOR3(MenuB.left,MenuB.top+(i*89), 0), D3DXCOLOR(1,1,1,1));
GSPRITE->Draw(m_pTxMBlock, &MBFlag[(i-1)*2+1], NULL, &D3DXVECTOR3(MenuB.left+41,MenuB.top+12+(i*89), 0), D3DXCOLOR(1,1,1,1));
}else{
GSPRITE->Draw(m_pTxMenu, &MFlag[0], NULL, &D3DXVECTOR3(MenuB.left,MenuB.top+(i*89), 0), D3DXCOLOR(1,1,1,1));
GSPRITE->Draw(m_pTxMBlock, &MBFlag[(i-1)*2], NULL, &D3DXVECTOR3(MenuB.left+41,MenuB.top+12+(i*89), 0), D3DXCOLOR(1,1,1,1));
}
}
/* 스킬 관련 렌더 */
if(BoxSwit[UISKILL]==1){
UiBox[UISKILL]->Draw();
}
/* 종료 관련 렌더 */
if(BoxSwit[UIQUIT] ==1){
UiBox[UIQUIT]->Draw();
}
GFONT->DrawText(GSPRITE,"MENU",-1,&Mstr,DT_NOCLIP,D3DXCOLOR(1,1,1,1));
}
메뉴버튼..누르면..체인 쩔그럭거리는..소리..나야..멋있는데..
갑자기 .. 수정하다보니..안난다..도와주새요..
댓글 0