这次作业属于哪个课程 | 2020面向对象程序设计(福州大学-数学与计算机科学学院) |
---|---|
作业要求 | 我罗斯 |
作业目的 | 代码的 git 仓库链接。运行截图/运行视频。代码要点 收获与心得 |
参考文献 | c++俄罗斯方块类 |
项目地址 | Github地址 |
小组成员 | 刘雨欢 031902240 |
钟睿如 031902243 |
class Box
{
private:
int map[78][12];//画面坐标,记录有方块的点,也是游戏界面
int hotpoint[2];//当前活动的点,所有图形都是以此为基准绘制的
int top;//当前最高位置
int point;//分数
int level;//等级
int ID;//当前活动图形的ID号
int colorID;//图形的颜色ID。
int k;
public:
Box(int kk=0)//初始化
{
int i,j;
k=kk;
for(i=0;i<23;i++)
for(j=0;j<12;j++)
map[i][j]=0;
hotpoint[0]=0;
hotpoint[1]=5;
point=0;
level=1;
top=99;
ID=0;
}
void SetColor(int color);//颜色
void DrawMap();//画游戏的大界面
int Judge(int x,int y);//判断当前位置能否绘制图形
void Welcome();//欢迎界面
void DrawBox(int x,int y,int num);//绘制图形
void Redraw(int x,int y,int num);//擦除图形
void Rungame1();
void Rungame2();//运行
void Turn();//转动方块
void UpdataMap();//更新画面
void Pause();//暂停
};
双人游戏没有运行成功 线程问题没有找到合适的解决办法
在此篇中使用的是主线加一个子线
我的思路是通过对坐标点k的右移使界面右移,并确立四个点的坐标玩家一与玩家二的Run函数是不同的
最终显示页面左边的玩家可以显示但有长时间延迟,右边只显示界面没有方块以及方块的变化
DWORD WINAPI ThreadFunc0(LPVOID lpParam)
{
Box p2(60);
p2.DrawMap();
p2.Rungame2();
}
int main()//主函数
{
Box p1;
p1.Welcome();
system("cls");
HANDLE hThread = CreateThread(NULL, 0, ThreadFunc0, NULL, 0, NULL);
hMutex=CreateMutex(NULL,FALSE,"screen");
CloseHandle(hThread);
CloseHandle(hThread);
p1.DrawMap();
p1.Rungame1();
}