基于MiniGUI的俄罗斯方块

Posted skdev

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于MiniGUI的俄罗斯方块相关的知识,希望对你有一定的参考价值。

 

效果图

绘图窗体和控制窗体为子控件

子控件的创建如下:

//控件

#define           ID_DRAWAREA           "drawarea"    //绘画区

#define           ID_CONTROLBAR       "controlbar"  //控制面板

 

static BOOL RegisterMyControl (char *CONTROLID)

{

    WNDCLASS MyClass;

 

    MyClass.spClassName = CONTROLID;

    MyClass.dwStyle     = WS_NONE;

    MyClass.dwExStyle   = WS_EX_NONE;

    MyClass.hCursor     = GetSystemCursor (IDC_ARROW);

    MyClass.iBkColor    = COLOR_lightwhite;

       if(strcmp(CONTROLID,ID_DRAWAREA)==0)

              MyClass.WinProc          = InitDrawAreaProc;

       else if(strcmp(CONTROLID,ID_CONTROLBAR)==0)

              MyClass.WinProc          = InitControlBarProc;

 

    return RegisterWindowClass (&MyClass);

}

 

在主窗体的MSG_CREATE创建

RegisterMyControl(ID_DRAWAREA);

                     hwndDrawarea=CreateWindow(ID_DRAWAREA,"",WS_VISIBLE|WS_CHILD,IDD_DRAWAREA,0,0,xFrameWidth-controlbarwidth,yFrameHeight,hWnd,0);

                     RegisterMyControl(ID_CONTROLBAR);

                     hwndControlbar=CreateWindow(ID_CONTROLBAR,"",WS_VISIBLE|WS_CHILD,IDD_CONTROLBAR,xFrameWidth-controlbarwidth,0,controlbarwidth,yFrameHeight,hWnd,0);

 

俄罗斯方块算法

1 建一个二维数组,每一格都用x,y定位,然后用01填充,0 表示没方块,1表示有方块。

2 组建不同方块的实体,也就是使二维数组所对应的方格为1

3 移动时只要将对应的方格1移动就行,对于移过的格用0填充 

以上是关于基于MiniGUI的俄罗斯方块的主要内容,如果未能解决你的问题,请参考以下文章

基于.NET的俄罗斯方块课程设计

Python小项目俄罗斯方块代码基于pygame编写

C语言:俄罗斯方块

软件设计实战:基于Java的俄罗斯方块游戏完整版

用EXCEL编写俄罗斯方块小游戏(基于VBA)

基于单片机设计的俄罗斯方块----第一篇(总体规划)