我罗斯方块汇报(1)

这个作业属于哪个课程 班级的链接
这个作业要求在哪里 作业的要求
这个作业的目标 汇报自己这个阶段的开发进度。(完成了哪几个模块)
讲述自己遇到的问题和尝试解决的方法和最后的结果(解决与否)
制作一篇开发日记,例子如此,描述自己开发某一个模块的过程。
作业正文 作业
GitHub 暂存在本地
小组成员 031902609梁育诚
031902610刘凌斌
成员博客首页 梁育诚
刘凌斌

开发进度

时间有限,仅完成了游戏界面的设计。

本组的游戏界面在渲染类里进行开发。

游戏大致界面:

我罗斯方块汇报(1)

绘制界面

包括界面大小、界面背景颜色(后续可能会改变,因为现在确实有点土^^)。

    initgraph(1200, 640);
    setbkcolor(0xAAAAAA);
    cleardevice();

画线

    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 4);
    line(200, 0, 200, 640);
    line(700, 0, 700, 640);
    line(575, 50, 690, 50);
    line(1075, 50, 1190, 50);

设置界面文字

    LOGFONT f;
    gettextstyle(&f);
    f.lfHeight = 20;                        // 设置字体高度为 20
    _tcscpy_s(f.lfFaceName, _T("宋体"));  // 设置字体为“黑体”
    f.lfQuality = ANTIALIASED_QUALITY;      // 设置输出效果为抗锯齿  
    settextstyle(&f);                       // 设置字体样式
    settextcolor(YELLOW);
    outtextxy(20, 330, _T("操作说明"));
    outtextxy(20, 350, _T("玩家一"));
    outtextxy(20, 370, _T("W:旋转方块"));
    outtextxy(20, 390, _T("A:左移方块"));
    outtextxy(20, 410, _T("D:右移方块"));
    outtextxy(20, 430, _T("S:下移方块"));
    outtextxy(20, 480, _T("玩家二"));
    outtextxy(20, 500, _T("上:旋转方块"));
    outtextxy(20, 520, _T("左:左移方块"));
    outtextxy(20, 540, _T("右:右移方块"));
    outtextxy(20, 560, _T("下:下移方块"));
    outtextxy(580, 25, _T("下一个方块"));
    outtextxy(1080, 25, _T("下一个方块"));

画游戏区域

    setfillstyle(BS_SOLID);
    setfillcolor(BLACK);
    rectangle(215, 5, 550, 630);
    rectangle(575, 20, 690, 200);
    rectangle(715, 5, 1050, 630);
    rectangle(1075, 20, 1190, 200);
    system("pause");

遇到的问题:

1、easy X渲染插件的使用方法错误(已解决)

刚开始用easyX时,未使用自带的头文件、使用错函数、编译失败等问题频频出现。

例如画块函数setbkcolor错用成了setlinecolor 画线函数

未使用“暂停” system("pause"); 等。

2、颜色单一问题(暂未解决)

我们目前只使用了预定义常量表示颜色。如:

常量          值           颜色
--------        --------    --------
BLACK           0       黑
BLUE            0xAA0000    蓝
GREEN           0x00AA00    绿
CYAN            0xAAAA00    青
RED         0x0000AA    红
MAGENTA         0xAA00AA    紫
BROWN           0x0055AA    棕
LIGHTGRAY       0xAAAAAA    浅灰
DARKGRAY        0x555555    深灰
LIGHTBLUE       0xFF5555    亮蓝
LIGHTGREEN      0x55FF55    亮绿
LIGHTCYAN       0xFFFF55    亮青
LIGHTRED        0x5555FF    亮红
LIGHTMAGENTA            0xFF55FF    亮紫
YELLOW          0x55FFFF    黄
WHITE           0xFFFFFF    白

后续会使用RGB宏合成颜色。

3、对于新内容:此消彼长功能的实现以及键盘输入分发控制命令的实现(未解决)

此消彼长功能较为复杂,没有头绪。

关于键盘输入、分发控制命令的实现,暂定为:

        // 如果有按键,返回按键对应的功能
        if (_kbhit())
        {
            switch (_getch())
            {
            case 'w':
            case 'W':   return CMD_ROTATE;
            case 'a':
            case 'A':   return CMD_LEFT;
            case 'd':
            case 'D':   return CMD_RIGHT;
            case 's':
            case 'S':   return CMD_DOWN;
            case 27:    return CMD_QUIT;
            case ' ':   return CMD_SINK;
            case 0:
            case 0xE0:
                switch (_getch())
                {
                case 72:    return CMD_ROTATE;
                case 75:    return CMD_LEFT;
                case 77:    return CMD_RIGHT;
                case 80:    return CMD_DOWN;
                }
            }
        }
//分配命令
void DispatchCmd(CMD _cmd)
{
    switch (_cmd)
    {
    case CMD_ROTATE:    OnRotate();     break;
    case CMD_LEFT:      OnLeft();       break;
    case CMD_RIGHT:     OnRight();      break;
    case CMD_DOWN:      OnDown();       break;
    case CMD_SINK:      OnSink();       break;
    case CMD_QUIT:      break;
    }
}

时间有限,开发进程较短,遇到的问题少。。^^

原文链接: https://www.cnblogs.com/LiangYC1021/p/12940087.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    我罗斯方块汇报(1)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/350188

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午6:08
下一篇 2023年3月2日 上午6:09

相关推荐