Ejemplo n.º 1
0
_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;
}
Ejemplo n.º 2
0
_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;
}
Ejemplo n.º 3
0
_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;
}
Ejemplo n.º 4
0
_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;
}
Ejemplo n.º 5
0
_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));
}
Ejemplo n.º 6
0
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);
    }
}
Ejemplo n.º 7
0
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;
}
Ejemplo n.º 8
0
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;	
}
Ejemplo n.º 9
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));
}