我罗斯

这次作业属于哪个课程 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();
}
posted @ 2020-06-13 13:51  luylcs  阅读(178)  评论(1编辑  收藏  举报