为了账号安全,请及时绑定邮箱和手机立即绑定

C+EasyX = 俄罗斯方块 <三>

标签:
C C++

void gameVelocity()
{
switch (velocity)
{
case 0:
if (flag)
{
Sleep(100);
flag--;
}
else Sleep(1000);
break;
case 1:
if (flag)
{
Sleep(50);
flag--;
}
else Sleep(500);
break;
case 2:
if (flag)
{
Sleep(30);
flag--;
}
else Sleep(400);
break;
case 3:
if (flag)
{
Sleep(10);
flag--;
}
else Sleep(200);
break;
case 4:
if (flag)
{
Sleep(1);
flag--;
}
else Sleep(10);
break;
case 5:
if (flag)
{
outtextxy(190, 180, L"别逗了,你以为是神啊⊙﹏⊙b");
Sleep(1000);
flag = 0;
}
else Sleep(1);
break;
case 8:
setbkmode(TRANSPARENT);
setbkcolor(RGB(68, 68, 68));
clearrectangle(30, 50, 150, 200);
settextcolor(RGB(255, 130, 40));
settextstyle(30, 0, L"华文彩云");
settextstyle(50, 6, L"华文彩云");
while (velocity == 8)
{
outtextxy(70, 110, L"暂 停");
}
//左边状态栏
setbkmode(TRANSPARENT);
setbkcolor(RGB(68, 68, 68));
settextcolor(RGB(255, 130, 40));
settextstyle(30, 0, L"华文彩云");
clearrectangle(30, 50, 150, 200);
outtextxy(50, 60, L" 变形");
outtextxy(50, 95, L" 加速");
outtextxy(50, 130, L" 左移");
outtextxy(50, 165, L" 右移");
outtextxy(50, 200, L"W 提速");
outtextxy(50, 235, L"S 降速");
outtextxy(28, 270, L"空格 暂停");
outtextxy(28, 305, L"回车 重玩");
settextstyle(20, 8, L"华文彩云");
outtextxy(10, 350, L"Made By PorYoung");
outtextxy(45, 385, L"2017-2-13");
}

}

void NumCount()
{
int Num[20] = { 0 };
int i = 0;
int row, col;
for (row = 23; row > 3 && i < 20; row--)
{
for (col = 0; col < 10; col++)
{
if (Map[row][col] == 2)
{
Num[i]++;
}
}
i++;
}

//消去方块
int tempRow = 0;
for (row = 23, i = 0; row > 3; row--)
{
    if (Num[i] == 10)
    {
        for (col = 0; col < 10; col++)
        {
            for (tempRow = row; tempRow > 3; tempRow--)
            {
                Map[tempRow][col] = Map[tempRow - 1][col];
                Map[tempRow - 1][col] = 0;
            }
        }
        gameCore += 1;
        row++;
    }
    else if (Num[i] == 0) break;
    i++;
}

//游戏结束
for (col = 0; col < 10; col++)
{
    if (Map[4][col] == 2)
    {
        settextcolor(RED);
        settextstyle(40, 0, L"华文彩云");
        outtextxy(190, 300, L"游戏结束⊙﹏⊙");
        Sleep(3000);
        gameCore = 0;
        cleardevice();
        initgame();
    }
}

}

void NextShow(char nextshow[4][4])
{
setbkmode(TRANSPARENT);
setbkcolor(RGB(68, 68, 68));
settextcolor(RGB(255, 130, 40));
settextstyle(20, 0, L"华文彩云");
clearrectangle(500, 50, 620, 170);
outtextxy(520, 600, L"Next One");
for (int row = 0; row < 4; row++)
{
for (int col = 0; col < 4; col++)
{
if (nextshow[row][col] == 1)
{
setfillcolor(BROWN);
fillroundrect(col 30 + 500, row 30 + 50, col 30 + 500 + 30, row 30 + 50 + 30, 10, 10);
}
}
}
}
DWORD WINAPI Thread(LPVOID lpParameter)
{
while (1)
{
int keyMs;

    keyMs = getch();
    switch (keyMs)
    {
    case 75:
        dir = 1;
        break;
    case 77:
        dir = 2;
        break;
    case 72:
        dir = 3;
        break;
    case 80:
        dir = 0;
        flag = 2;
        break;
    //空格暂停
    case 32:
        tempvel = velocity;
        velocity = 8;
        system("pause");
        velocity = tempvel;
        break;
    //重玩
    case 13:
        temp = 1;
        Map[4][0] = 2;
        break;
    //提速
    case 87:
        if (velocity < 5)
        {
            velocity++;
        }
        else
        {
            clearrectangle(50, 430, 120, 480);
            settextstyle(30, 0, L"华文彩云");
            outtextxy(50, 440, L"最大速");
        }
        break;
    //降速
    case 83:
        if (velocity > 0)
        {
            velocity--;
        }
        else
        {
            clearrectangle(30, 430, 120, 480);
            settextstyle(30, 0, L"华文彩云");
            outtextxy(50, 440, L"最小速");
        }
        break;
    }
}

}
int main()
{
void showMessage();
HWND hwnd = GetHWnd();
SetWindowText(hwnd, L"俄罗斯方块");
initgraph(640, 600);
initgame();

//mciSendString(L"open 1.mp3 alias bgm", NULL, 0, NULL);
//mciSendString(L"play bgm repeat", 0, 0, 0);

while (1)
{
    if (temp == 1)
    {
        flag = 0;
        NumCount();
        draw();
        randShow();
        showMessage();
        clearrectangle(171, 0, 469, 600);
    }
    int i = 1000;
    while (i--)
    {
        Changemove();
    }
    draw();
    move();
    gameVelocity();
    for (int j = 0; j < 4; j++)
    {
        clearrectangle(coor.CCol[j] * 30 + 170, coor.CRow[j] * 30 - 120, coor.CCol[j] * 30 + 170 + 30, coor.CRow[j] * 30 - 90);
    }
}
return 0;
system("pause");

}

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消