From 708ac96dce2374c7ff528163d7ae2f4c9fbbbc35 Mon Sep 17 00:00:00 2001 From: Realself-Ma <52282764+Realself-Ma@users.noreply.github.com> Date: Wed, 8 Jul 2020 22:57:30 +0800 Subject: [PATCH] Add files via upload --- ...6\225\264\344\275\223\347\273\223\346\236\204.md" | 4 +--- ...6\240\270\345\277\203\345\256\236\347\216\260.md" | 2 +- ...5\210\260\347\232\204\345\233\260\351\232\276.md" | 12 +++++++++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git "a/\346\225\264\344\275\223\347\273\223\346\236\204.md" "b/\346\225\264\344\275\223\347\273\223\346\236\204.md" index e004008..19b5b1a 100755 --- "a/\346\225\264\344\275\223\347\273\223\346\236\204.md" +++ "b/\346\225\264\344\275\223\347\273\223\346\236\204.md" @@ -1,4 +1,4 @@ -# 整体结构 +# 整体结构-old_version1.0 ![](.\datum\1.jpg) @@ -13,5 +13,3 @@ - 开始界面类interface主要实现开始界面的设置 - 商店类StoreWidget主要实现地牢模式中的商店功能 - - \ No newline at end of file diff --git "a/\346\240\270\345\277\203\345\256\236\347\216\260.md" "b/\346\240\270\345\277\203\345\256\236\347\216\260.md" index 8071355..127b53a 100755 --- "a/\346\240\270\345\277\203\345\256\236\347\216\260.md" +++ "b/\346\240\270\345\277\203\345\256\236\347\216\260.md" @@ -1,4 +1,4 @@ -# 核心实现 +# 核心实现-old_version 1.0 #### 迷宫类中的自动寻路算法autoFindPath的实现 diff --git "a/\351\201\207\345\210\260\347\232\204\345\233\260\351\232\276.md" "b/\351\201\207\345\210\260\347\232\204\345\233\260\351\232\276.md" index 819a280..9212dc7 100755 --- "a/\351\201\207\345\210\260\347\232\204\345\233\260\351\232\276.md" +++ "b/\351\201\207\345\210\260\347\232\204\345\233\260\351\232\276.md" @@ -2,6 +2,8 @@ > 在开发游戏的过程中有许多问题,这里只挑出几个说明。 +#### 单机模式遇到的困难 + 1. 迷宫游戏部分完成后,设置迷宫的大小后,迷宫生成的很慢? - 由于迷宫生成过程中存在大量的for循环,导致速度变慢。优化代码结构,减少for循环的次数后,速度变快。 2. 加入《魔塔》游戏机制的过程中,每次进入下一层或者上一层地牢,地图每次都会刷新,不能保存上一次玩家对地牢的操作? @@ -9,4 +11,12 @@ 3. 在实现两层地图,以及切换地图的过程中,人物位置的初始化,在这个过程中出现了程序崩溃的问题,使用QT调试,一步步跟踪问题出现的位置,解决不了? - 经检查发现是因为三维数组越界了,但是使用QT调试时,显示出现问题的地方,却不是真正出现问题的位置,查明原因后,又积累了调试的经验。 4. 小怪的动态效果实现? - - 用一个定时器,每500ms刷新一次,显示小怪的窗口,每次刷新时都让其切换显示图片,让每次切换的图片具有连贯性,就能在不断的切换中实现动态效果。 \ No newline at end of file + - 用一个定时器,每500ms刷新一次,显示小怪的窗口,每次刷新时都让其切换显示图片,让每次切换的图片具有连贯性,就能在不断的切换中实现动态效果。 + +#### 联网模式遇到的困难 + +1. 服务器生成的地牢字符串,客户端接收不完整? + - 经过不断的调试后发现,原因是TCP传输中,当传输的数据量较大时,不会一次RTT就把所有的信息传输完毕,而是需要经过多次RTT才能传输完成。而原来客户端的代码逻辑是从服务器一接收到数据就开始处理,对于数据较大的情况,可能没接收到完整的数据就开始处理了,这样就会出错。 + - 改进的方法是:服务器发送给客户端的消息都会加一个Head,用来指示传递的消息长度。这样,客户端第一次接收到数据时,就会去获取到整个消息的长度,只要当前接收的数据长度没有到达Head指示的大小就一直等待接收消息,直到接收到完整的消息,才会开始进行处理。 +2. 两名用户同屏操作时,可能会有多个请求同时到达服务器,这时服务器不能正常响应请求? + - 解决办法是:客户端的请求都加上一个终止标志位,服务器在接收到一长串请求消息时,根据这个终止位来拆分不同的请求,将这些请求消息存放到一个容器中,最后,再从容器中依次取出请求消息来做出响应。 \ No newline at end of file