Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Realself-Ma committed Jul 8, 2020
1 parent 08e7b02 commit 708ac96
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
4 changes: 1 addition & 3 deletions 整体结构.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 整体结构
# 整体结构-old_version1.0

![](.\datum\1.jpg)

Expand All @@ -13,5 +13,3 @@
- 开始界面类interface主要实现开始界面的设置

- 商店类StoreWidget主要实现地牢模式中的商店功能


2 changes: 1 addition & 1 deletion 核心实现.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 核心实现
# 核心实现-old_version 1.0

#### 迷宫类中的自动寻路算法autoFindPath的实现

Expand Down
12 changes: 11 additions & 1 deletion 遇到的困难.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,21 @@

> 在开发游戏的过程中有许多问题,这里只挑出几个说明。
#### 单机模式遇到的困难

1. 迷宫游戏部分完成后,设置迷宫的大小后,迷宫生成的很慢?
- 由于迷宫生成过程中存在大量的for循环,导致速度变慢。优化代码结构,减少for循环的次数后,速度变快。
2. 加入《魔塔》游戏机制的过程中,每次进入下一层或者上一层地牢,地图每次都会刷新,不能保存上一次玩家对地牢的操作?
- 采用堆上三维数组的方法,问题轻松解决。
3. 在实现两层地图,以及切换地图的过程中,人物位置的初始化,在这个过程中出现了程序崩溃的问题,使用QT调试,一步步跟踪问题出现的位置,解决不了?
- 经检查发现是因为三维数组越界了,但是使用QT调试时,显示出现问题的地方,却不是真正出现问题的位置,查明原因后,又积累了调试的经验。
4. 小怪的动态效果实现?
- 用一个定时器,每500ms刷新一次,显示小怪的窗口,每次刷新时都让其切换显示图片,让每次切换的图片具有连贯性,就能在不断的切换中实现动态效果。
- 用一个定时器,每500ms刷新一次,显示小怪的窗口,每次刷新时都让其切换显示图片,让每次切换的图片具有连贯性,就能在不断的切换中实现动态效果。

#### 联网模式遇到的困难

1. 服务器生成的地牢字符串,客户端接收不完整?
- 经过不断的调试后发现,原因是TCP传输中,当传输的数据量较大时,不会一次RTT就把所有的信息传输完毕,而是需要经过多次RTT才能传输完成。而原来客户端的代码逻辑是从服务器一接收到数据就开始处理,对于数据较大的情况,可能没接收到完整的数据就开始处理了,这样就会出错。
- 改进的方法是:服务器发送给客户端的消息都会加一个Head,用来指示传递的消息长度。这样,客户端第一次接收到数据时,就会去获取到整个消息的长度,只要当前接收的数据长度没有到达Head指示的大小就一直等待接收消息,直到接收到完整的消息,才会开始进行处理。
2. 两名用户同屏操作时,可能会有多个请求同时到达服务器,这时服务器不能正常响应请求?
- 解决办法是:客户端的请求都加上一个终止标志位,服务器在接收到一长串请求消息时,根据这个终止位来拆分不同的请求,将这些请求消息存放到一个容器中,最后,再从容器中依次取出请求消息来做出响应。

0 comments on commit 708ac96

Please sign in to comment.