_XBool _XLineCtrl::mouseProc(float x,float y,_XMouseState mouseState) { if(!m_isInited) return XFalse; //如果没有初始化直接退出 if(!m_isActive) return XFalse; //没有激活的控件不接收控制 if(!m_isVisiable) return XFalse; //如果不可见直接退出 if(!m_isEnable) return XFalse; //如果无效则直接退出 switch(mouseState) { case MOUSE_MOVE: if(m_isDown) { if(m_type == LINE_CTRL_TYPE_X_D || m_type == LINE_CTRL_TYPE_X_U) setPosition(x,m_position.y); else setPosition(m_position.x,y); if(m_funDataChange != NULL) m_funDataChange(m_pClass,m_objectID); } break; case MOUSE_LEFT_BUTTON_DOWN: //鼠标按下 if(_XVector2(x,y).getLengthSqure(m_position) < 100.0f) m_isDown = true; break; case MOUSE_LEFT_BUTTON_UP: if(m_isDown) m_isDown = false; break; } return XTrue; }
_XBool _XSliderEx::initWithoutTex(const _XRect& area,float max,float min, _XSliderType type,const _XVector2 &fontPosition) { if(m_isInited) return XFalse; //防止重复初始化 if(!m_mainSld.initWithoutTex(area,max,min,type,fontPosition)) return false; if(m_mainSld.m_typeVorH == SLIDER_TYPE_HORIZONTAL) {//水平模式 m_secondarySld.initWithoutTex(_XRect(0.0f,0.0f,area.getWidth(),area.getHeight()),max,min,type); m_chooseBtn.initWithoutTex("+",XEE::systemFont,1.0f,_XRect(0.0f,0.0f,area.getHeight(),area.getHeight()), _XVector2(area.getHeight() * 0.5f,area.getHeight() * 0.5f)); }else {//垂直模式 m_secondarySld.initWithoutTex(_XRect(0.0f,0.0f,area.getWidth(),area.getHeight()),max,min,type); m_chooseBtn.initWithoutTex("+",XEE::systemFont,1.0f,_XRect(0.0f,0.0f,area.getWidth(),area.getWidth()), _XVector2(area.getWidth() * 0.5f,area.getWidth() * 0.5f)); } m_mainSld.setCallbackFun(NULL,NULL,sliderExSldOnProc,sliderExSldProc,sliderExSldUpProc,sliderExSldChangeProc,sliderExSldMoveProc,this); m_secondarySld.disVisiable(); m_secondarySld.setCallbackFun(NULL,NULL,NULL,NULL,NULL,sliderExSldProc,sliderExSldProc,this); m_chooseBtn.disVisiable(); m_chooseBtn.setCallbackFun(NULL,NULL,NULL,NULL,sliderExBtnProc,this); if(m_funInit != NULL) m_funInit(m_pClass,getControlID()); m_isVisiable = XTrue; m_isEnable = XTrue; m_isActive = XTrue; #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&m_mainSld); _XObjectManager::GetInstance().decreaseAObject(&m_secondarySld); _XObjectManager::GetInstance().decreaseAObject(&m_chooseBtn); #endif _XControlManager::GetInstance().addAObject(this,CTRL_OBJ_SLIDER); //在物件管理器中注册当前物件 #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().addAObject(this,OBJ_CONTROL); #endif m_isInited = XTrue; setPosition(0.0f,0.0f); return XTrue; }
_XBool _XMouseRightButtonMenu::initPlus(const char * path,int menuSum, //菜单中的物件数量 const _XFontUnicode &font,float captionSize,_XResourcePosition resoursePosition) //菜单的字体 { if(m_isInited) return XFalse; if(path == NULL) return XFalse; m_resInfo = _XResourceManager::GetInstance().loadResource(path,RESOURCE_TYPE_XBUTTON_TEX,resoursePosition); if(m_resInfo == NULL) return XFalse; _XButtonTexture * tex = (_XButtonTexture *)m_resInfo->m_pointer; if(tex->m_mouseRect.getHeight() <= 0 || tex->m_mouseRect.getWidth() <= 0) return XFalse; //空间必须要有一个响应区间,不然会出现除零错误 if(tex->buttonNormal == NULL || tex->buttonOn == NULL) return XFalse;//这几个贴图是必须要有的 if(menuSum <= 0) return XFalse; //没有菜单项的初始化是失败的 m_position.set(0.0f,0.0f); m_mouseRect = tex->m_mouseRect; m_size.set(1.0f,1.0f); m_menuSum = menuSum; m_allArea.set(m_position.x + m_mouseRect.left * m_size.x,m_position.y + m_mouseRect.top * m_size.y, m_position.x + m_mouseRect.right * m_size.x,m_position.y + (m_mouseRect.top + m_mouseRect.getHeight() * m_menuSum) * m_size.y); m_upMousePoint.set(m_position.x + (m_mouseRect.left + m_mouseRect.getWidth() * 0.5f) * m_size.x, m_position.y + (m_mouseRect.top + m_mouseRect.getHeight() * 0.5f) * m_size.y); //默认初始位置为第一个按钮的正中间 //设置各个菜单项 m_menu = createArrayMem<_XButton>(m_menuSum); if(m_menu == NULL) return XFalse; //内存分配失败则直接返回失败 for(int i = 0;i < m_menuSum;++ i) { if(!m_menu[i].initEx(_XVector2(m_position.x,m_position.y + m_mouseRect.getHeight() * i * m_size.y),(*tex)," ",font,captionSize)) { XDELETE_ARRAY(m_menu); return XFalse; } m_menu[i].setSize(m_size); //将这些物件从物件管理器中注销掉 _XControlManager::GetInstance().decreaseAObject(&(m_menu[i])); //注销这个物件 #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&m_menu[i]); #endif } m_nowChoose = -1; m_lastChoose = -1; //最终选择的值 m_isVisiable = XFalse; m_isEnable = XTrue; m_isActive = XTrue; _XControlManager::GetInstance().addAObject(this,CTRL_OBJ_MOUSERIGHTBUTTONMENU); //在物件管理器中注册当前物件 #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().addAObject(this,OBJ_CONTROL); #endif m_isInited = XTrue; return XTrue; }
_XBool _XMouseRightButtonMenu::init(int menuSum, //菜单中的物件数量 const _XVector2& position, //菜单的位置 const _XRect& Area, //菜单按键的响应范围 const _XMouseRightButtonMenuTexture &tex, //菜单的贴图 const _XFontUnicode &font,float captionSize, const _XVector2& textPosition) //菜单的字体 { if(m_isInited) return XFalse; if(Area.getHeight() <= 0 || Area.getWidth() <= 0) return XFalse; //空间必须要有一个响应区间,不然会出现除零错误 if(tex.buttonNormal == NULL || tex.buttonOn == NULL) return XFalse;//这几个贴图是必须要有的 if(menuSum <= 0) return XFalse; //没有菜单项的初始化是失败的 m_position = position; m_mouseRect = Area; m_size.set(1.0f,1.0f); m_menuSum = menuSum; m_allArea.set(m_position.x + m_mouseRect.left * m_size.x,m_position.y + m_mouseRect.top * m_size.y, m_position.x + m_mouseRect.right * m_size.x,m_position.y + (m_mouseRect.top + m_mouseRect.getHeight() * m_menuSum) * m_size.y); m_upMousePoint.set(m_position.x + (m_mouseRect.left + m_mouseRect.getWidth() * 0.5f) * m_size.x, m_position.y + (m_mouseRect.top + m_mouseRect.getHeight() * 0.5f) * m_size.y); //默认初始位置为第一个按钮的正中间 //设置各个菜单项 m_menu = createArrayMem<_XButton>(m_menuSum); if(m_menu == NULL) return XFalse; //内存分配失败则直接返回失败 for(int i = 0;i < m_menuSum;++ i) { if(m_menu[i].init(_XVector2(m_position.x,m_position.y + m_mouseRect.getHeight() * i * m_size.y),m_mouseRect,tex," ",font,captionSize,textPosition) == 0) { XDELETE_ARRAY(m_menu); return XFalse; } m_menu[i].setSize(m_size); //将这些物件从物件管理器中注销掉 _XControlManager::GetInstance().decreaseAObject(&(m_menu[i])); //注销这个物件 #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&m_menu[i]); #endif } m_nowChoose = -1; m_lastChoose = -1; //最终选择的值 m_isVisiable = XFalse; m_isEnable = XTrue; m_isActive = XTrue; _XControlManager::GetInstance().addAObject(this,CTRL_OBJ_MOUSERIGHTBUTTONMENU); //在物件管理器中注册当前物件 #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().addAObject(this,OBJ_CONTROL); #endif m_isInited = XTrue; return XTrue; }
_XBool _XFontBasic::isInRect(float x,float y) { if(!m_isInited) return XFalse; return getIsInRect(_XVector2(x,y),getBox(0),getBox(1),getBox(2),getBox(3)); }
void _XEngineLogo::move(int timeDelay) { if(m_isInited == 0) return; if(m_logoStage == -1) { //初始化所有数据 m_xAlpha = 0.0f; m_xSize = 10.0f; m_dxLight = 0.0f; m_eAlpha = 0.0f; m_logoTextX.setAlpha(m_xAlpha); m_logoTextX.setSize(_XVector2(m_xSize,m_xSize)); m_logoTextE.setAlpha(m_eAlpha); m_logoTextE.setSize(_XVector2(1.0f,1.0f)); m_logoStage = 0; m_logoTextE.setAlpha(0.0f); m_logoTextRE.setAlpha(0.0f); // for(int i = 0;i < 30;++ i) // { // m_logoTextECopy[i].setAlpha(0); // } m_logoTextEC.setAlpha(0.0f); m_back.setAlpha(1.0f); m_logoBack.setAlpha(1.0f); m_logoLight.setAlpha(1.0f); m_logoMiddle.setAlpha(1.0f); } else if(m_logoStage == 0) { //X出现 if(m_xAlpha < 1.0f) { m_xAlpha += 0.005f * timeDelay; } else { m_xAlpha = 1.0f; } if(m_xSize > 1.0f) { m_xSize *= powf(0.98f,timeDelay); } else { m_xSize = 1.0f; } if(m_xSize <= 1.0f && m_xAlpha >= 1.0f) { //进入第二个阶段 m_logoStage = 1; m_dxLight = 20.0f; } m_logoTextX.setAlpha(m_xAlpha); m_logoTextX.setSize(_XVector2(m_xSize,m_xSize)); } if(m_logoStage >= 1 && m_logoStage < 5) { //E出现 if(m_eAlpha < 1.5f) { m_eAlpha += 0.0005f * timeDelay; if(m_eAlpha <= 1.0f) { m_logoTextE.setAlpha(m_eAlpha); } if(m_eAlpha >= 0.5f) { m_logoTextEC.setAlpha(m_eAlpha - 0.5f); } } if(m_logoStage == 1 && m_eAlpha > 1.0f) { m_eAlpha = 1.0f; m_logoStage = 2; } //扫光 if(m_dxLight < 180.0f) { m_dxLight += 0.1f * timeDelay; if(m_mode != 0) { m_logoLight.setPosition(m_position.x + 91.0f + 21.0f,m_position.y - 64.0f + m_dxLight + 1.0f); } else { m_logoLight.setPosition(m_position.x + m_dxLight,m_position.y); } } } if(m_logoStage == 2) { //第一个E翻身 m_xSize += PI * 0.001f * timeDelay; if(m_xSize >= PI_HALF) { m_xSize = PI_HALF; m_logoStage = 3; m_logoTextRE.setAlpha(1.0f); m_logoTextRE.setSize(_XVector2(0.0f,1.0f)); m_logoTextRE.setColor(1.0f,1.0f,-1.0f,-1.0f); } if(m_mode != 0) { m_logoTextE.setSize(_XVector2(1.0f,cos(m_xSize))); } else { m_logoTextE.setSize(_XVector2(cos(m_xSize),1.0f)); } } else if(m_logoStage == 3) { //第一个E翻身 m_xSize -= PI * 0.001f * timeDelay; if(m_xSize <= 0.0f) { m_xSize = 0.0f; m_logoStage = 4; } if(m_mode != 0) { m_logoTextRE.setSize(_XVector2(1.0f,cos(m_xSize))); } else { m_logoTextRE.setSize(_XVector2(cos(m_xSize),1.0f)); } m_logoTextRE.setColor(1.0f - cos(m_xSize),1.0f - cos(m_xSize),-1.0f,-1.0f); } else if(m_logoStage == 4) { m_xSize += timeDelay; if(m_xSize >= 1000.0f) { m_xSize = 1000.0f; m_logoStage = 5; m_eAlpha = 1.0f; } } else if(m_logoStage == 5) { //整体淡出 m_eAlpha -= 0.002f * timeDelay; if(m_eAlpha <= 0.0f) { m_eAlpha = 0.0f; m_logoStage = -2; } m_logoTextRE.setAlpha(m_eAlpha); m_logoTextEC.setAlpha(m_eAlpha); m_logoTextX.setAlpha(m_eAlpha); // m_logoTextECopy[29].setAlpha(m_eAlpha); m_back.setAlpha(m_eAlpha); m_logoBack.setAlpha(0.0f); m_logoLight.setAlpha(0.0f); m_logoMiddle.setAlpha(0.0f); } }
int _XEngineLogo::init(_XVector2 position,_XResourcePosition resoursePosition,int mode) { if(m_isInited != 0) return 0; //重复初始化 m_resoursePosition = resoursePosition; if(mode != 0) m_mode = 1; else m_mode = 0; setPosition(position); if(m_back.init("ResourcePack/pic/Back.png",m_resoursePosition) == 0) return 0; // m_back.setPosition(m_position.x - 160,m_position.y - 96); //居中 // m_back.setPosition(0,0); //全窗口 m_back.setIsTransformCenter(POINT_LEFT_TOP); if(m_logoBack.init("ResourcePack/pic/logo/Back.png",m_resoursePosition) == 0) return 0; m_logoBack.setPosition(m_position); if(m_logoLight.init("ResourcePack/pic/logo/Light.png",m_resoursePosition) == 0) return 0; m_logoLight.setPosition(m_position); if(m_logoMiddle.init("ResourcePack/pic/logo/Middle.png",m_resoursePosition) == 0) return 0; m_logoMiddle.setPosition(m_position); if(m_logoTextX.init("ResourcePack/pic/logo/X.png",m_resoursePosition) == 0) return 0; m_logoTextX.setPosition(m_position); if(m_logoTextE.init("ResourcePack/pic/logo/E.png",m_resoursePosition) == 0) return 0; m_logoTextE.setPosition(m_position.x + 63,m_position.y + 1); m_logoTextE.setAlpha(0); if(m_logoTextRE.init("ResourcePack/pic/logo/RE.png",resoursePosition) == 0) return 0; m_logoTextRE.setPosition(m_position.x + 63,m_position.y + 1); m_logoTextRE.setAlpha(0); m_logoTextEC.setACopy(m_logoTextE); m_logoTextEC.setPosition(m_position.x + 121,m_position.y + 1); if(m_mode != 0) { // m_back.setAngle(90); m_logoBack.setAngle(90); m_logoBack.setPosition(m_position.x + 91 + 21,m_position.y - 64 - 34 + 35); m_logoLight.setAngle(90); m_logoLight.setPosition(m_position.x + 91 + 21,m_position.y - 64 + 1); m_logoMiddle.setAngle(90); m_logoMiddle.setPosition(m_position.x,m_position.y + 35); m_logoTextX.setAngle(90); m_logoTextX.setPosition(m_position.x + 91 + 5,m_position.y - 64 - 34 + 35); m_logoTextE.setAngle(90); m_logoTextE.setPosition(m_position.x + 90 + 5,m_position.y + 1 - 34 + 35); m_logoTextRE.setAngle(90); m_logoTextRE.setPosition(m_position.x + 90 + 5,m_position.y + 1 - 34 + 35); m_logoTextEC.setAngle(90); m_logoTextEC.setPosition(m_position.x + 90 + 5,m_position.y + 59 - 34 + 35); } m_logoStage = -2; m_xAlpha = 0; m_xSize = 10; m_dxLight = 0; m_eAlpha = 0; m_logoTextX.setAlpha(m_eAlpha); m_logoTextX.setSize(_XVector2(m_xSize,m_xSize)); for(int i = 0; i < 8; i++) { m_stageFlag[i] = 0; } m_isInited = 1; return 1; }
int main(int argc, char **argv) { int stepTime; //两次调用之间的时间差 if(initWindow(1280,720,"Xiajia") == NULL) {//建立窗体 printf("Window init error!\n"); return 0; } //_XLogbook::GetInstance().initLog("Log.txt"); #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().init(); #endif //初始化字体 _XFontUnicode FontUnicode; FontUnicode.init("pic/Font/FontUnicode30_T000.png",_XVector2I(30,30),_XVector2I(34,34),4); #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&FontUnicode); #endif //初始化按钮 _XButtonTexture ButtonTexture; ButtonTexture.init("pic/Button/B_00.png","pic/Button/B_01.png","pic/Button/B_02.png","pic/Button/B_03.png"); Button.init(_XVector2(0.0f,30.0f),_XRect(10.0f,7.0f,119.0f,58.0f),ButtonTexture,"xiajia",FontUnicode,0.5f,_XVector2(64.0f,32.0f)); Button.setCallbackFun(NULL,NULL,cbMouseOn,cbMouseDown,cbMouseUp,NULL); Button.setSize(1.0f,1.0f); Button.setCaptionText("你好啊"); Button.setHotKey(SDLK_0); ButtonCopy.setACopy(Button); ButtonCopy.setPosition(0.0f,100.0f); ButtonCopy.setCaptionText("你好个屁"); ButtonCopy.disable(); _XButtonTexture ButtonTextureEx; ButtonTextureEx.init("pic/ButtonEx/B_00.png","pic/ButtonEx/B_01.png","pic/ButtonEx/B_02.png","pic/ButtonEx/B_03.png"); _XVector2 ButtonExArea[6]; ButtonExArea[0].set(38.0f,20.0f); ButtonExArea[1].set(13.0f,64.0f); ButtonExArea[2].set(38.0f,109.0f); ButtonExArea[3].set(91.0f,109.0f); ButtonExArea[4].set(116.0f,64.0f); ButtonExArea[5].set(91.0f,20.0f); ButtonEx.init(_XVector2(150.0f,30.0f),ButtonExArea,6,ButtonTextureEx,"静",1.0f,_XVector2(64.0f,64.0f),FontUnicode); ButtonExCopy.setACopy(ButtonEx); ButtonExCopy.setPosition(280.0f,30.0f); ButtonExCopy.setCaptionText("忍"); //初始化复选框 _XCheckTexture CheckTexture; CheckTexture.init("pic/Check/C_00.png","pic/Check/C_01.png","pic/Check/CD_00.png","pic/Check/CD_01.png"); Check.init(_XVector2(0.0f,160.0f),_XRect(18.0f,19.0f,42.0f,43.0f),CheckTexture,"复选框",FontUnicode,1.0f,_XVector2(45.0f,32.0f)); CheckCopy.setACopy(Check); CheckCopy.setPosition(150.0f,160.0f); CheckCopy.setText("复选个蛋"); CheckCopy.setSize(0.5f,0.5f); //初始化右键菜单 _XMouseRightButtonMenuTexture MouseRightButtonMenuTexture; MouseRightButtonMenuTexture.init("pic/RightButtonMenu/00.png","pic/RightButtonMenu/01.png","pic/RightButtonMenu/02.png","pic/RightButtonMenu/03.png"); MouseRightButtonMenu.init(4,_XVector2(0.0f,0.0f),_XRect(8.0f,2.0f,252.0f,49.0f),MouseRightButtonMenuTexture,FontUnicode,1.0,_XVector2(133.0f,25.0f)); MouseRightButtonMenu.setText("剪切(T)",0); MouseRightButtonMenu.setText("复制(C)",1); MouseRightButtonMenu.setText("粘贴(V)",2); MouseRightButtonMenu.setText("撤销(S)",3); MouseRightButtonMenu.setHotKey(SDLK_t,0); MouseRightButtonMenu.setHotKey(SDLK_c,1); MouseRightButtonMenu.setHotKey(SDLK_v,2); MouseRightButtonMenu.setHotKey(SDLK_s,3); //MouseRightButtonMenu.setCallbackFun(NULL,NULL); MouseRightButtonMenu.setSize(0.5f,0.5f); _XControlManager::GetInstance().decreaseAObject(&MouseRightButtonMenu); #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&MouseRightButtonMenu); #endif //初始化输入框 _XEditTexture EditTexture; EditTexture.init("pic/Edit/E_back.png","pic/Edit/E_disable.png","pic/Edit/E_Select.png","pic/Edit/E_Insert.png","pic/Edit/E_upon.png"); FontUnicode.setAlignmentModeX(_FONT_ALIGNMENT_MODE_X_LEFT); //设置字体左对齐 FontUnicode.setColor(0.0f,0.0f,0.0f,1.0f); Edit.init(_XVector2(400.0f,50.0f),_XRect(12.0f,2.0f,509.0f,38.0f),EditTexture,"Test",FontUnicode,1.0f,&MouseRightButtonMenu); //Edit.disable(); //Edit.setCallbackFun(NULL,eInputOver,&Edit); Edit.setString("This is a test for setString()."); EditCopy.setACopy(Edit); EditCopy.setPosition(400.0f,100.0f); EditCopy.setSize(0.5f,0.5f); EditCopy.setTextColor(_XFColor(1.0f,1.0f,1.0f,1.0f)); //初始化滑动条 _XSliderTexture SliderTexture; //垂直滑动条 //SliderTexture.init("pic/Slider/BLH_00.png","pic/Slider/BLH_01.png","pic/Slider/BLH_02.png","pic/Slider/BLH_03.png", //"pic/Slider/BH_00.png","pic/Slider/BH_01.png","pic/Slider/BH_02.png","pic/Slider/BH_03.png"); //Slider.init(_XVector2(50.0f,250.0f),_XRect(6.0f,11.0f,32.0f,506.0f),_XRect(5.0f,4.0f,27.0f,26.0f),SliderTexture,_XSLIDER_TYPE_VERTICAL,100.0f,0.0f); //水平滑动条 SliderTexture.init("pic/Slider/BL_00.png","pic/Slider/BL_01.png","pic/Slider/BL_02.png","pic/Slider/BL_03.png", "pic/Slider/B_00.png","pic/Slider/B_01.png","pic/Slider/B_02.png","pic/Slider/B_03.png"); Slider.init(_XVector2(0.0f,250.0f),_XRect(11.0f,0.0f,506.0f,26.0f),_XRect(4.0f,5.0f,27.0f,26.0f),SliderTexture,_XSLIDER_TYPE_HORIZONTAL,100.0f,0.0f); Slider.setCallbackFun(NULL,NULL,NULL,NULL,NULL,sliderChange,NULL,&Slider); Slider.setNowValue(55.0f); SliderCopy.setACopy(Slider); SliderCopy.setPosition(0.0f,300.0f); SliderCopy.setSize(0.5f,0.5f); //下面是单选框 Radios.init(5,_XVector2(0.0f,35.0f),_XVector2(00.0f,350.0f),_XRect(18.0f,19.0f,42.0f,43.0f),&CheckTexture,FontUnicode,1.0f,_XVector2(45.0f,32.0f)); Radios.setRadioText("我真的很蛋疼",0); Radios.setRadioText("我蛋疼而且要爆了",1); Radios.setRadioText("我要爆了",2); Radios.setRadioText("我已经爆了",3); Radios.setRadioText("I have a boom!",4); Radios.setChoosed(3); RadiosCopy.setACopy(Radios); RadiosCopy.setPosition(300.0f,350.0f); RadiosCopy.setRadioSum(8); RadiosCopy.setSize(0.5f,0.5f); RadiosCopy.setRadioText("蛋完美了",0); RadiosCopy.setRadioText("蛋好了",1); RadiosCopy.setRadioText("蛋开始好了",2); RadiosCopy.setRadioText("蛋没变化",3); RadiosCopy.setRadioText("蛋变坏了",4); RadiosCopy.setRadioText("蛋变胀痛",5); RadiosCopy.setRadioText("蛋要爆了",6); RadiosCopy.setRadioText("蛋已经爆了",7); //下面是进度条 _XNumber Number; Number.init("pic/Number.png",_XVector2I(15,30),_XVector2I(8,2)); #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&Number); #endif _XProgressTexture ProgressTexture; ProgressTexture.init("pic/Progress/PB_00.png","pic/Progress/PM_00.png","pic/Progress/PU_00.png"); Progress.init(_XVector2(0.0f,550.0f),_XRect(2.0f,0.0f,509.0f,30.0f),ProgressTexture,&Number,1.0f,_XVector2(256.0f,3.0f)); Progress.setValue(25.0f); ProgressCopy.setACopy(Progress); ProgressCopy.setPosition(0.0f,600.0f); ProgressCopy.setSize(0.5f,0.5f); ProgressCopy.setColor(_XFColor(1.0f,1.0f,1.0f,0.5f)); //下面是多行文本显示 _XSliderTexture SliderTextureH; SliderTextureH.init("pic/MutiText/SliderH/BL_00.png","pic/MutiText/SliderH/BL_01.png","pic/MutiText/SliderH/BL_02.png","pic/MutiText/SliderH/BL_03.png", "pic/MutiText/SliderH/B_00.png","pic/MutiText/SliderH/B_01.png","pic/MutiText/SliderH/B_02.png","pic/MutiText/SliderH/B_03.png"); _XSlider SliderH; SliderH.init(_XVector2(200.0f,200.0f),_XRect(0.0f,0.0f,512.0f - 40.0f,32.0f),_XRect(0.0f,0.0f,32.0f,32.0f),SliderTextureH,_XSLIDER_TYPE_HORIZONTAL,100.0f,0.0f); _XControlManager::GetInstance().decreaseAObject(&SliderH); #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&SliderH); #endif _XSliderTexture SliderTextureV; SliderTextureV.init("pic/MutiText/SliderV/BLH_00.png","pic/MutiText/SliderV/BLH_01.png","pic/MutiText/SliderV/BLH_02.png","pic/MutiText/SliderV/BLH_03.png", "pic/MutiText/SliderV/BH_00.png","pic/MutiText/SliderV/BH_01.png","pic/MutiText/SliderV/BH_02.png","pic/MutiText/SliderV/BH_03.png"); _XSlider SliderV; SliderV.init(_XVector2(200.0f,200.0f),_XRect(0.0f,0.0f,32.0f,512.0f - 40.0f),_XRect(0.0f,0.0f,32.0f,32.0f),SliderTextureV,_XSLIDER_TYPE_VERTICAL,100.0f,0.0f); _XControlManager::GetInstance().decreaseAObject(&SliderV); #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&SliderV); #endif char tempTest[] = "0 :jiashenghua\n1 :123456789012345678901234567890123456789\n2 :PI = 3.141592653589793\n3 :\n\n5 :don`t use Chinese\n6 :It is not supply for Chinese at now!\n7 :\n8 :\n9 :\n10:\n11:\n12:\n13:\n14:\n15:\n16:"; _XMultiTextTexture MutiTextTexture; MutiTextTexture.init("pic/MutiText/E_back.png","pic/MutiText/E_disable.png","pic/MutiText/E_Select.png","pic/MutiText/E_Insert.png","pic/MutiText/E_up.png"); MutiText.init(_XVector2(520.0f,150.0f),_XRect(4.0f,4.0f,508.0f,508.0f),MutiTextTexture,tempTest,FontUnicode,1.0f/*,MouseRightButtonMenu*/,SliderV,SliderH); MutiText.setSize(0.5f,0.5f); MutiTextCopy.setACopy(MutiText); MutiTextCopy.setSize(0.5f,0.5f); MutiTextCopy.setPosition(790.0f,150.0f); MutiTextCopy.setTextColor(_XFColor(1.0f,1.0f,1.0f,1.0f)); MutiTextCopy.disActive(); MutiTextCopy.disVisiable(); //多列列表框 _XSliderTexture SliderTextureHX; SliderTextureHX.init("pic/MutiList/SliderH/BL_00.png","pic/MutiList/SliderH/BL_01.png","pic/MutiList/SliderH/BL_02.png","pic/MutiList/SliderH/BL_03.png", "pic/MutiList/SliderH/B_00.png","pic/MutiList/SliderH/B_01.png","pic/MutiList/SliderH/B_02.png","pic/MutiList/SliderH/B_03.png"); _XSlider SliderHX; SliderHX.init(_XVector2(200.0f,200.0f),_XRect(0.0f,0.0f,512.0f - 40.0f,32.0f),_XRect(0.0f,0.0f,32.0f,32.0f),SliderTextureHX,_XSLIDER_TYPE_HORIZONTAL,100.0f,0.0f); _XControlManager::GetInstance().decreaseAObject(&SliderHX); #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&SliderHX); #endif _XSliderTexture SliderTextureVX; SliderTextureVX.init("pic/MutiList/SliderV/BLH_00.png","pic/MutiList/SliderV/BLH_01.png","pic/MutiList/SliderV/BLH_02.png","pic/MutiList/SliderV/BLH_03.png", "pic/MutiList/SliderV/BH_00.png","pic/MutiList/SliderV/BH_01.png","pic/MutiList/SliderV/BH_02.png","pic/MutiList/SliderV/BH_03.png"); _XSlider SliderVX; SliderVX.init(_XVector2(200.0f,200.0f),_XRect(0.0f,0.0f,32.0f,512.0f - 40.0f),_XRect(0.0f,0.0f,32.0f,32.0f),SliderTextureVX,_XSLIDER_TYPE_VERTICAL,100.0f,0.0f); _XControlManager::GetInstance().decreaseAObject(&SliderVX); #if WITH_OBJECT_MANAGER _XObjectManager::GetInstance().decreaseAObject(&SliderVX); #endif _XMultiListTexture MutiListTexture; MutiListTexture.init("pic/MutiList/E_back.png","pic/MutiList/E_disable.png","pic/MutiList/E_Select.png","pic/MutiList/E_move.png","pic/MutiList/E_Title.png","pic/MutiList/E_TitleEnd.png"); MutiList.init(_XVector2(610.0f,450.0f),_XRect(4.0f,4.0f,508.0f,508.0f),MutiListTexture,FontUnicode,1.0f,3,24/*,MouseRightButtonMenu*/,SliderVX,SliderHX); char tempChar[] = "Boxxx"; for(int i = 0;i < 24;++ i) { for(int j = 0; j < 3;++ j) { tempChar[3] = (i * 4 + j) /10 + '0'; tempChar[4] = (i * 4 + j) %10 + '0'; MutiList.setBoxStr(tempChar,i,j); } } MutiList.setTileStr("贾Title00",0); MutiList.setRowWidth(100,0); MutiList.setTileStr("Title胜",1); MutiList.setRowWidth(120,1); MutiList.setTileStr("Title02华",2); MutiList.setRowWidth(150,2); MutiList.exportData(); //MutiList.importData(); MutiList.setPosition(610,450); MutiList.setSize(0.5,0.5); //初始化下拉菜单 _XComboTexture ComboTexture; ComboTexture.init("pic/Combo/C_back.png","pic/Combo/C_disable.png", "pic/Combo/RightButton/C_rightButtomEnable.png","pic/Combo/RightButton/C_rightButtomOn.png", "pic/Combo/RightButton/C_rightButtomDown.png","pic/Combo/RightButton/C_rightButtomDisable.png", "pic/Combo/MenuUpButton/C_downMenuUpEnable.png","pic/Combo/MenuUpButton/C_downMenuUpOn.png", "pic/Combo/MenuUpButton/C_downMenuUpDown.png","pic/Combo/MenuUpButton/C_downMenuUpDisable.png", "pic/Combo/MenuButton/C_downMenuEnable.png","pic/Combo/MenuButton/C_downMenuOn.png", "pic/Combo/MenuButton/C_downMenuDown.png","pic/Combo/MenuButton/C_downMenuDisable.png", "pic/Combo/MenuDownButton/C_downMenuDownEnable.png","pic/Combo/MenuDownButton/C_downMenuDownOn.png", "pic/Combo/MenuDownButton/C_downMenuDownDown.png","pic/Combo/MenuDownButton/C_downMenuDownDisable.png"); Combo.init(ComboTexture,_XVector2(250.0f,190.0f),_XRect(8.0f,1.0f,217.0f,43.0f),_XRect(6.0f,1.0f,48.0f,43.0f),_XRect(8.0f,1.0f,261.0f,23.0f), _XRect(8.0f,1.0f,261.0f,39.0f),_XRect(8.0f,1.0f,261.0f,23.0f),10,5,FontUnicode,1.0f); Combo.setMenuStr("This input is long",0); Combo.setMenuStr("蛋疼!",1); Combo.setMenuStr("蛋巨疼!",2); Combo.setMenuStr("蛋碎了!",3); Combo.setMenuStr("蛋爆了!",4); ComboCopy.setACopy(Combo); ComboCopy.setPosition(250.0f,160.0f); ComboCopy.setSize(_XVector2(0.5,0.5)); printf("Now ctrl sum:%d\n",_XControlManager::GetInstance().getObjSum()); #if WITH_OBJECT_MANAGER printf("Now obj sum:%d\n",_XObjectManager::GetInstance().getNowObjectSum()); #endif int frameOrder = 0; while(!SDL_event()) { stepTime = getFrameTiming(); //_XLogbook::GetInstance().addLogInfoNull("NO %d Frame Time:%d\n",frameOrder,interval); engineMove(stepTime); //引擎的更新内容 clearScreen(); //清除屏幕 updateScreen(); //更新屏幕的内容 ++ frameOrder; SDL_Delay(1); } //_XLogbook::GetInstance().releaseLog(); releaseSDL(); return 0; }
_XBool _XMouseRightButtonMenu::isInRect(float x,float y) { if(!m_isInited) return XFalse; return getIsInRect(_XVector2(x,y),getBox(0),getBox(1),getBox(2),getBox(3)); }