游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3467|回复: 4

FlowControl????

[复制链接]

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2011-4-12 12:31:00 | 显示全部楼层 |阅读模式
??void CGameControl::Update()
{
        ProcCurState();
}
FlowObject??????,??,?? FlowObject??Control ??? ???.

class Flow1:public FlowObject
{
  Flow1::Flow1()
  {
     Control += new Button(0,0,100,100);
  }

}

Button????,????,???????????(??????Control??gui????????)

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2011-4-12 12:36:00 | 显示全部楼层

Re:FlowControl????

//???????  , Blue?????????,????????,????
using namespace hgl;
class Blue:public FlowObject
{
public:
Blue()
{
Control = new Button(0,0,100,100);
}
void Draw()
{
glClearColor(0,0,1,1);
ClearScreen();
}
};//class Blue

class Red:public FlowObject
{
public:

void Draw()
{
glClearColor(1,0,0,1);
ClearScreen();
}
};//class Red

class GameControl:public FlowControl
{
bool MouseLeftDoubleClickProc(int,int,uint)
{
Exit(new Red);
return(true);
}

public:

GameControl(FlowObject *obj)
{
SetStart(obj);

SetEventCall(onMouseLeftDoubleClick,this,GameControl,MouseLeftDoubleClickProc);
}

void Update()
{
ProcCurState();
}
};//class GameControl

void GameMain(int,wchar_t**)
{
SystemInitInfo sii;
GameApplication app;

sii.info.ProjectName=L"????????";
sii.info.ProjectCode=L"Customize FlowControl";

if(!app.Init(&sii))
return;

app.SetStart(new GameControl(new Blue));

app.Run();
}


16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2011-4-12 12:41:00 | 显示全部楼层

Re:FlowControl????

?????????CGameControl???,???FlowObject??Control? ?????

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-12 16:01:00 | 显示全部楼层

Re:FlowControl????

???????????FlowControl?????FlowControl?????????
??????????????????

        bool GameFlowControl:roc_MouseWheel            (int x,int y, int wheel)
        {
                FlowObject *obj=ActiveObject;

                if(obj)
                        return obj-&gtroc_MouseWheel(x,y,wheel);
                else
                        return(false);
        }

        #undef PROC
        #define PROC(func_name)        bool GameFlowControl::func_name(int x,int y,uint key)                {                FlowObject *obj=ActiveObject;                                        if(obj)                                return obj->func_name(x,y,key);                        else                                return(false);                }

        PROC(Proc_MouseMove             );
        PROC(Proc_MouseLeftDown         );
        PROC(Proc_MouseLeftUp           );
        PROC(Proc_MouseLeftDoubleClick  );
        PROC(Proc_MouseMidDown          );
        PROC(Proc_MouseMidUp            );
        PROC(Proc_MouseMidDoubleClick   );
        PROC(Proc_MouseRightDown        );
        PROC(Proc_MouseRightUp          );
        PROC(Proc_MouseRightDoubleClick );

        #undef PROC

        #define PROC(func_name)        bool GameFlowControl::func_name(uint key)                {                        FlowObject *obj=ActiveObject;                                        if(obj)                                return obj->func_name(key);                        else                                return(false);                }

        PROC(Proc_JoystickDown        );
        PROC(Proc_JoystickPress        );
        PROC(Proc_JoystickUp        );
        PROC(Proc_KeyDown       );
        PROC(Proc_KeyPress      );
        PROC(Proc_KeyUp         );

        #undef PROC

        bool GameFlowControl::Proc_Char            (wchar_t ch)
        {
                FlowObject *obj=ActiveObject;

                if(obj)
                        return obj->Proc_Char(ch);
                else
                        return(false);
        }
               
        bool GameFlowControl::Proc_Event            (int id,void *event)
        {
                FlowObject *obj=ActiveObject;

                if(obj)
                        return obj->Proc_Event(id,event);
                else
                        return(false);
        }

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-12 16:03:00 | 显示全部楼层

Re:FlowControl????

???????????????????????????????

??Application?????????????????
??Application????????????FlowControl::ActiveObject??????FlowControl,??FlowControl????
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-9-18 08:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表