放置玩家几种形式
这是创建地图最后一个教程了,地图做好了,但是有一个很头疼的问题,对那些用河流控制不规则轮廓的地图更是如此,如果是两人地图还好,八人就不一定能生成,先不说这个了;我给你的地图模板一直使用“rmPlacePlayersCircular(0.35, 0.35, 0.0);//圆形放置玩家”这个语句来放置玩家,下面列出所有放置玩家函数以及解释作用:
[( )] rmPlacePlayer(int playerID, float xFraction, float zFraction): Sets one player location.
[( )] rmPlacePlayersCircular(float minFraction, float maxFraction, float angleVariation): Makes a circle of player locations.
[( )] rmPlacePlayersLine(float x1, float z1, float x2, float z2, float distVariation, float spacingVariation): Makes a line of player locations.
[( )] rmPlacePlayersRiver(int riverID, float distVariation, float spacingVariation, float edgeDistance): Makes a line of player locations along the specified river.
[( )] rmPlacePlayersSquare(float dist, float distVariation, float spacingVariationfloat): Makes a square of player locations.
[( )] rmSetPlacementTeam(int teamID): Sets the team to place.
[( )] rmSetPlacementSection(float fromPercent, float toPercent): Sets the section of the placement line to use
-----------------------------------------------------------------------
[( )] rmPlacePlayer(玩家ID, X坐标, Z坐标);//设定某个玩家放置点
[( )] rmPlacePlayersCircular(最小半径, 最大半径, 浮动变化值);//设定圆形放置所有玩家
[( )] rmPlacePlayersLine(X坐标1, Z坐标1, X坐标2, Z坐标2, 浮动变化值, 空间范围大小【数值越大间隔越大】);//直线放置所有玩家
[( )] rmPlacePlayersRiver(int riverID, float distVariation, float spacingVariation, float edgeDistance);所有玩家在某条河流附近放置
[( )] rmPlacePlayersSquare(float dist, 浮动变化值, 空间范围大小);// 方形放置玩家
[( )] rmSetPlacementTeam(int teamID);//将放置所有玩家改成放置某个队伍,0就是队伍1,1就是队伍2。(与int playerID不一样,playerID“0”是大自然,playerID“1”才是玩家1;int teamID“0”是队伍1,teamID“1”是队伍2)**使用该语句后,未设定的队伍将会出局,例如你只设定了队伍1,未设定队伍2会导致所有队伍2的玩家出局。
rmPlacePlayer(1,0.5,0.5);
rmPlacePlayer(2,0.3,0.3);
rmPlacePlayer(3,0.6,0.6);
rmPlacePlayer(4,0.4,0.6);
rmPlacePlayer(5,0.1,0.3); |
 |
rmPlacePlayer(1,0.5,0.5);
rmPlacePlayer(2,0.3,0.3);
rmPlacePlayer(3,0.6,0.6);
rmPlacePlayer(4,0.4,0.6);
rmPlacePlayer(5,0.1,0.3);
rmPlacePlayer(6,0.5,0.3);
rmPlacePlayer(7,0.7,0.5);
rmPlacePlayer(8,0.8,0.8); |
 |
rmPlacePlayersCircular(0.35, 0.35, 0.0); |
 |
rmPlacePlayersCircular(0.10, 0.45, 0.0); |
 |
rmPlacePlayersLine(0.0,0.0,1.0,1.0,0,0) |
 |
string RiverName ="Northwest Territory Water";
int River2ID = rmRiverCreate(-1, RiverName, 1, 1, 10, 10);
rmRiverAddWaypoint(River2ID, 1.0, 1.0 );
rmRiverAddWaypoint(River2ID, 0.0, 0.0 );
rmRiverBuild(River2ID);
rmPlacePlayersRiver(River2ID,50,30,20); |
 |
rmSetPlacementTeam(0);
rmPlacePlayersLine(0.6,0.9,0.9,0.6,0,50);
rmSetPlacementTeam(1);
rmPlacePlayersLine(0.6,0.1,0.1,0.6,0,50); |
 |
rmSetPlacementSection(0.6, 0.15);
rmPlacePlayersCircular(0.40, 0.40, 0.0);
|
 |
rmSetPlacementSection(0.15, 0.60);
rmPlacePlayersCircular(0.40, 0.40, 0.0); |
 |
rmSetPlacementSection(0.15, 0.90);
rmPlacePlayersCircular(0.40, 0.40, 0.0); |
 |
rmSetPlacementSection(0.9, 0.15);
rmPlacePlayersCircular(0.40, 0.40, 0.0); |
 |
rmSetPlacementSection(0.9, 0.5);
rmPlacePlayersCircular(0.40, 0.40, 0.0); |
 |
rmSetPlacementSection(0.9, 0.6);
rmPlacePlayersCircular(0.40, 0.40, 0.0); |
 |
rmSetPlacementSection(0.6, 0.90);
rmPlacePlayersCircular(0.40, 0.40, 0.0); |
 |
作者智商不行,无法给出rmSetPlacementSection的用法。
我差不多已经是只废喵了
一般的地图都是将团队战(包括1V1)设定为直线放置玩家,两个队伍均在地图的一侧,然后自由就用圆形放置,当然也有直线放置的,对于一些极端的地图,无论用什么语句都不能完整生成八个玩家(有些玩家开局无法生成城镇中心出局),可以采用单个坐标定位例如下面的语句:
int FFAType=rmRandInt(rmRandInt(1,2),rmRandInt(3,4)); //定义随机数,用来随机更换玩家位置
//设定8个坐标
float Coordinate1X = 0.76; float Coordinate1Z = 0.835; float Coordinate2X = 0.24; float Coordinate2Z = 0.835;
float Coordinate3X = 0.85; float Coordinate3Z = 0.25; float Coordinate4X = 0.15; float Coordinate4Z = 0.25;
float Coordinate5X = 0.50; float Coordinate5Z = 0.90; float Coordinate6X = 0.50; float Coordinate6Z = 0.60;
float Coordinate7X = 0.65; float Coordinate7Z = 0.15; float Coordinate8X = 0.35; float Coordinate8Z = 0.15;
//这个也是坐标,一般是不用设定的,但是为了更改坐标不用一次改四次坐标,所以这样设定
float Player1X = 0.76; float Player1Z = 0.835; float Player2X = 0.24; float Player2Z = 0.835;
float Player3X = 0.85; float Player3Z = 0.25; float Player4X = 0.15; float Player4Z = 0.25;
float Player5X = 0.50; float Player5Z = 0.90; float Player6X = 0.50; float Player6Z = 0.60;
float Player7X = 0.65; float Player7Z = 0.15; float Player8X = 0.35; float Player8Z = 0.15;
if(FFAType == 1) /*1234&5678*/ //根据FFAType返回的随机数更换不同的坐标。
{
Player1X = Coordinate1X; Player1Z = Coordinate1Z; Player2X = Coordinate2X; Player2Z = Coordinate2Z;
Player3X = Coordinate3X; Player3Z = Coordinate3Z; Player4X = Coordinate4X; Player4Z = Coordinate4Z;
Player5X = Coordinate5X; Player5Z = Coordinate5Z; Player6X = Coordinate6X; Player6Z = Coordinate6Z;
Player7X = Coordinate7X; Player7Z = Coordinate7Z; Player8X = Coordinate8X; Player8Z = Coordinate8Z;
}
else if(FFAType == 2) /*3412&7856*/
{
Player1X = Coordinate3X; Player1Z = Coordinate3Z; Player2X = Coordinate4X; Player2Z = Coordinate4Z;
Player3X = Coordinate1X; Player3Z = Coordinate1Z; Player4X = Coordinate2X; Player4Z = Coordinate2Z;
Player5X = Coordinate7X; Player5Z = Coordinate7Z; Player6X = Coordinate8X; Player6Z = Coordinate8Z;
Player7X = Coordinate5X; Player7Z = Coordinate5Z; Player8X = Coordinate6X; Player8Z = Coordinate6Z;
}
else if(FFAType == 3) /*2143&6587*/
{
Player1X = Coordinate2X; Player1Z = Coordinate2Z; Player2X = Coordinate1X; Player2Z = Coordinate1Z;
Player3X = Coordinate4X; Player3Z = Coordinate4Z; Player4X = Coordinate3X; Player4Z = Coordinate3Z;
Player5X = Coordinate6X; Player5Z = Coordinate6Z; Player6X = Coordinate5X; Player6Z = Coordinate5Z;
Player7X = Coordinate8X; Player7Z = Coordinate8Z; Player8X = Coordinate7X; Player8Z = Coordinate7Z;
}
else /*4321&8765*/
{
Player1X = Coordinate4X; Player1Z = Coordinate4Z; Player2X = Coordinate3X; Player2Z = Coordinate3Z;
Player3X = Coordinate2X; Player3Z = Coordinate2Z; Player4X = Coordinate1X; Player4Z = Coordinate1Z;
Player5X = Coordinate8X; Player5Z = Coordinate8Z; Player6X = Coordinate7X; Player6Z = Coordinate7Z;
Player7X = Coordinate6X; Player7Z = Coordinate6Z; Player8X = Coordinate5X; Player8Z = Coordinate5Z;
}
//设定8个玩家的定位点
rmSetPlacementTeam(0); rmPlacePlayer(1,Player1X,Player1Z);
rmSetPlacementTeam(1); rmPlacePlayer(2,Player2X,Player2Z);
rmSetPlacementTeam(2); rmPlacePlayer(3,Player3X,Player3Z);
rmSetPlacementTeam(3); rmPlacePlayer(4,Player4X,Player4Z);
rmSetPlacementTeam(4); rmPlacePlayer(5,Player5X,Player5Z);
rmSetPlacementTeam(5); rmPlacePlayer(6,Player6X,Player6Z);
rmSetPlacementTeam(6); rmPlacePlayer(7,Player7X,Player7Z);
rmSetPlacementTeam(7); rmPlacePlayer(8,Player8X,Player8Z);
如何判断是否是自由对战呢?
用rmGetIsFFA(): Returns true if this map is set to be a FFA game which means each player on their own team.
例如:
if(rmGetIsFFA()==true)
{
//如果本场游戏是自由对战:
}
if(rmGetIsFFA()!=true)
{
//如果本场游戏不是自由对战:
}
其他类似语句还有判断是否为王者山丘模式: rmGetIsKOTH(): Returns true if this map is set to be a King of the Hill game.
开局是否为游牧时代:[( )] rmGetNomadStart(): Returns true if this map is to place a covered wagon instead of a town center.
本教程结束。
现有一函数rmSetPlacementSection(float fromPercent, float toPercent);
fromPercent与toPercent的取值范围为0-1.0;其中0在[0.5,1.0]位置,0.125在[1.0,1.0]位置,0.25在[1.0,0.5]位置,0.5在[0.5,0.0]位置,0.75在[0.0,0.5]位置,1.0则回到[0.5,1.0]位置。
已知rmPlacePlayersCircular(0.4,0.4,0)代表所有玩家均处在以地图中央为圆心,半径为0.4个地图宽度的圆上。
已知rmSetPlacementSection的作用是:从fromPercent开始,顺时针旋转到toPercent的范围,所有玩家会分布在这个范围里面,并且在rmPlacePlayersCircular的圆上。
假设rmPlacePlayersCircular(0.4,0.4,0):rmSetPlacementSection(0.0,0.5);第一个玩家会出现在[0.5,0.1]位置,最后一个玩家出现在[0.5,0.9]位置。其他玩家按照扇形的长度分割,均匀分布。
假设rmPlacePlayersCircular(0.4,0.4,0):rmSetPlacementSection(0.5,0.0);第一个玩家会出现在[0.5,0.9]位置,最后一个玩家出现在[0.5,0.1]位置。其他玩家按照扇形的长度分割,均匀分布。
假设rmPlacePlayersCircular(0.4,0.4,0):rmSetPlacementSection(0.25,0.75);第一个玩家会出现在[0.9,0.5]位置,最后一个玩家出现在[0.1,0.5]位置。其他玩家按照扇形的长度分割,均匀分布。
假设rmPlacePlayersCircular(0.4,0.4,0):rmSetPlacementSection(0.0,1.0);所有玩家会从[0.5,0.9]顺时针旋转一圈回到[0.5,0.9]均匀分布在rmPlacePlayersCircular的圆上。
现在需要求每个玩家的坐标位置,并且列出计算公式,坐标图可参考

。
下面给出一种比较直观且通用的推导方法,并给出相应的坐标计算公式。核心思路是:
-
将 fromPercent~toPercent 映射为 0~1 的角度区间(顺时针)。
-
在该角度区间内对每个玩家做均匀插值,得到每个玩家对应的「百分比」\(f_i\)。
-
将百分比 \(f_i\) 转成实际角度 \(\theta_i\)(以地图中心为圆心,顺时针)。
-
将角度 \(\theta_i\) 转换为地图坐标系下的 \((x_i, y_i)\)。
一、坐标系与百分比的对应
根据题目给出的关键点(以地图中心为 \((0.5, 0.5)\),并且 0 对应顶部、顺时针增加):
- 当 percent = 0 时,对应地图上方 \([0.5,\,1.0]\)。
- 当 percent = 0.25 时,对应地图右边 \([1.0,\,0.5]\)。
- 当 percent = 0.5 时,对应地图下方 \([0.5,\,0.0]\)。
- 当 percent = 0.75 时,对应地图左边 \([0.0,\,0.5]\)。
- 当 percent = 1.0 时,又回到地图上方 \([0.5,\,1.0]\)。
也就是说,「percent 从 0 到 1」完整走一圈,且方向是顺时针。
在「标准数学极坐标」中,我们往往令角度 \(\theta\) 逆时针增加、且 \(\theta = 0\) 通常在正 x 轴。但是这里为了和题目一致,需要做一个顺时针、且 0 在上方的转换。
一个常用的办法是先把「percent」映射到角度,再把角度套用到标准的 \(\cos,\sin\) 上。
如果我们令
\[
\theta = \frac{\pi}{2} \;-\; 2\pi \times \text{(percent)}
\]
那么:
- 当 \(\text{percent} = 0\),\(\theta = \tfrac{\pi}{2}\),对应上方 \((x=0,\,y>0)\)。
- 当 \(\text{percent} = 0.25\),\(\theta = \tfrac{\pi}{2} - 2\pi \times 0.25 = 0\),对应右方 \((x>0,\,y=0)\)。
- 当 \(\text{percent} = 0.5\),\(\theta = \tfrac{\pi}{2} - \pi = -\tfrac{\pi}{2}\),对应下方。
- 当 \(\text{percent} = 0.75\),\(\theta = \tfrac{\pi}{2} - 1.5\pi = -\pi\),对应左方。
- 当 \(\text{percent} = 1.0\),\(\theta = \tfrac{\pi}{2} - 2\pi = -\tfrac{3\pi}{2}\),与 \(\tfrac{\pi}{2}\) 同方向(相差整圈),又回到上方。
这样就能保证「从上方开始,顺时针旋转一整圈」。
二、在 fromPercent~toPercent 间均匀分布玩家
给定玩家总数 \(N\),以及一个扇形区间 \(\bigl[\text{fromPercent}, \text{toPercent}\bigr]\)(顺时针)。要让第一个玩家出现在 fromPercent,最后一个玩家出现在 toPercent,其余玩家在中间均匀分布,可以按以下方式处理:
-
计算扇形所覆盖的百分比长度
\[
\Delta =
\begin{cases}
\text{toPercent} - \text{fromPercent}, & \text{if}\;\text{toPercent} \ge \text{fromPercent},\\[4pt]
1 - (\text{fromPercent} - \text{toPercent}), & \text{if}\;\text{toPercent} < \text{fromPercent}.
\end{cases}
\]
也可写成
\[
\Delta = \bigl(\text{toPercent} - \text{fromPercent} + 1\bigr) \bmod 1.
\]
这样无论 \(\text{toPercent}\) 在 \(\text{fromPercent}\) 的前面还是后面,都能得到顺时针要走的总百分比。
-
第 \(i\) 个玩家(\(i=0,1,\dots,N-1\))对应的 percent 值
\[
f_i = \text{fromPercent} \;+\; \frac{i}{N-1}\,\Delta
\]
注意这里的 \(i/(N-1)\) 使得:
- 当 \(i=0\) 时,\(f_0 = \text{fromPercent}\)。
- 当 \(i=N-1\) 时,\(f_{N-1} = \text{fromPercent} + \Delta = \text{toPercent}\)(模 1 意义下)。
- 中间玩家均匀插值。
-
将 \(f_i\) 映射为实际角度
\[
\theta_i = \frac{\pi}{2} \;-\; 2\pi \times \bigl(f_i \bmod 1\bigr).
\]
其中「\(\bmod 1\)」只是为了保证万一 \(f_i\) 超过 1 时(例如 \(\text{fromPercent} > \text{toPercent}\) 的情形)也能正确回到 \([0,1)\) 区间内。
-
将角度 \(\theta_i\) 转为地图坐标
如果我们用
\[
\text{rmPlacePlayersCircular}(r,\,r,\,0)
\]
表示圆心在地图中心 \(\bigl(0.5,\,0.5\bigr)\),半径为 \(r\)(在 0~1 的地图坐标中)的圆,那么第 \(i\) 个玩家的坐标就是:
\[
x_i \;=\; 0.5 + r \,\cos(\theta_i),
\quad
y_i \;=\; 0.5 + r \,\sin(\theta_i).
\]
其中 \(r = 0.4\)(题目示例)时,对应半径是 0.4 个地图宽度。
若你用的是游戏脚本里更底层的坐标体系,可能需要再乘以「地图实际像素宽度/高度」或做其他换算,这里不再赘述。
三、最终计算公式小结
令:
- \(\text{fromPercent}, \text{toPercent}\in [0,1]\);
- \(N\) = 玩家总数;
- \(r\) = 在 rmPlacePlayersCircular(r, r, 0)
中所用的半径(如 0.4);
- 地图中心记为 \((x_c,\,y_c) = (0.5,\,0.5)\);
则第 \(i\) 个玩家 \((i=0,\dots,N-1)\) 的坐标 \((x_i,y_i)\) 可按下述步骤求得:
-
计算扇形区间长度
\[
\Delta = \bigl(\text{toPercent} - \text{fromPercent} + 1\bigr) \bmod 1.
\]
-
计算第 \(i\) 个玩家对应的环上「percent」
\[
f_i = \text{fromPercent} \;+\; \frac{i}{\,N-1\,}\,\Delta,
\quad
\text{(若 }N=1\text{,则只有一个玩家,可直接取 }f_0=\text{fromPercent}\text{)}
\]
-
换算成顺时针角度
\[
\theta_i
\;=\;
\frac{\pi}{2}
\;-\;
2\pi
\times
\bigl(f_i \bmod 1\bigr).
\]
-
投影到地图坐标
\[
x_i
\;=\;
x_c \;+\; r\,\cos(\theta_i),
\qquad
y_i
\;=\;
y_c \;+\; r\,\sin(\theta_i).
\]
这样,就可以得到从 \(\text{fromPercent}\) 顺时针到 \(\text{toPercent}\) 之间,均匀分布在半径 \(r\) 的圆周上的所有玩家坐标。
对应题目给出的示例说明
-
rmPlacePlayersCircular(0.4, 0.4, 0):rmSetPlacementSection(0.0, 1.0)
即 \(\text{fromPercent}=0,\,\text{toPercent}=1\)。玩家会从上方 [0.5, 0.9]
顺时针转一圈,最后又回到上方,均匀分布在这个圆上。
-
rmPlacePlayersCircular(0.4, 0.4, 0):rmSetPlacementSection(0.25, 0.75)
即从右侧 [0.9,0.5]
顺时针转到左侧 [0.1,0.5]
。这样第一个玩家就在右侧,最后一个玩家在左侧,中间若有多个玩家,就在这条圆弧上均分。
- 其他类似示例同理,都符合上述公式的分布规律。
只要记住「顺时针角度的换算公式」和「在 0~1 区间内做线性插值」这两个关键点,就可以计算出任意扇形区间上的均匀分布坐标。上述给出的公式与步骤,即可满足题目对坐标位置的计算需求。
下面给出一种更简洁的公式写法,只需记住「0 在地图正上方」「沿顺时针方向」这个设定,即可直接用 \(\sin\) 与 \(\cos\) 得到玩家坐标:
一、思路简述
-
先求出扇形的总长度
\[
\Delta
\;=\;
\bigl(\text{toPercent} - \text{fromPercent} + 1\bigr)
\bmod 1.
\]
-
按玩家序号 \(i\)(从 0 到 \(N-1\))在该扇形上均匀插值
\[
f_i
\;=\;
\Bigl(\text{fromPercent} \;+\;\frac{i}{\,N-1\,}\,\Delta\Bigr)
\bmod 1,
\]
(若 \(N=1\),只有一个玩家时,可直接令 \(f_0 = \text{fromPercent}\))
-
将百分比 \(f_i\) 转成地图坐标
- 我们令「0」对应地图顶部 \((0.5,\,0.5+r)\);
- 随着 \(f_i\) 从 0 到 1,玩家在圆周上顺时针旋转一周。
在这种设定下,可以直接用如下公式得到玩家在圆心 \((0.5,0.5)\)、半径 \(r\) 的圆上的坐标:
\[
x_i \;=\; 0.5 + r\,\sin\bigl(2\pi f_i\bigr),
\qquad
y_i \;=\; 0.5 + r\,\cos\bigl(2\pi f_i\bigr).
\]
对比最初的 “\(\theta = \tfrac{\pi}{2} - 2\pi \times f_i\)” 写法,这里利用了
\[
\cos\!\Bigl(\tfrac{\pi}{2} - \alpha\Bigr) = \sin(\alpha),
\quad
\sin\!\Bigl(\tfrac{\pi}{2} - \alpha\Bigr) = \cos(\alpha),
\]
将其直接化简为 \(\sin\) 和 \(\cos\) 的组合,从而少了一个中间角度的步骤。
二、最终简化公式
令:
- \(\text{fromPercent}, \text{toPercent}\in [0,1]\);
- \(N\) = 玩家总数(若 \(N=1\) 特殊处理);
- \(r\) = rmPlacePlayersCircular(r, r, 0)
中的圆半径(例如 0.4);
- 地图中心 \(\bigl(x_c, y_c\bigr) = (0.5, 0.5)\);
则第 \(i\) 个玩家 \((i=0,1,\dots,N-1)\) 的坐标 \(\bigl(x_i,y_i\bigr)\) 可直接用下式:
-
扇形长度
\[
\Delta
\;=\;
\bigl(\text{toPercent} - \text{fromPercent} + 1\bigr)
\bmod 1.
\]
-
在扇形上做均匀插值
\[
f_i
\;=\;
\Bigl(\text{fromPercent} + \frac{i}{\,N-1\,}\,\Delta\Bigr)
\bmod 1.
\]
(若 \(N=1\),则只放一个玩家,可令 \(f_0 = \text{fromPercent}\))
-
计算最终坐标
\[
x_i \;=\; 0.5 + r\,\sin\bigl(2\pi f_i\bigr),
\qquad
y_i \;=\; 0.5 + r\,\cos\bigl(2\pi f_i\bigr).
\]
这样就能得到从 \(\text{fromPercent}\) 顺时针到 \(\text{toPercent}\) 的一段圆弧上、均匀分布的 \(N\) 个玩家坐标。
当 \(\text{fromPercent}=0,\text{toPercent}=1\) 时,\(\Delta=1\),玩家从 \((0.5,\,0.5+r)\) 顶部位置顺时针转一圈,又回到顶部。
当 \(\text{fromPercent}=0.25,\text{toPercent}=0.75\) 时,\(\Delta=0.5\),玩家从右侧 \((0.5+r,\,0.5)\) 顺时针转到左侧 \((0.5-r,\,0.5)\)。
以上公式最简洁地表达了「从 \(\text{fromPercent}\) 顺时针到 \(\text{toPercent}\) 均匀分布」的玩家坐标计算方式,且「0」对应上方、\(\sin\) 与 \(\cos\) 的顺序刚好保证是顺时针旋转。
rmSetPlacementSection(fromPercent,toPercent)坐标计算器
注:为了去除随机性,默认将rmPlacePlayersCircular的min与max相等,浮动设0。
rmSetPlacementSection用法已在上面通过多次测试以及推导公式,以下内容仅作保留,其结果自行验证,不保证准确。从方法推理的角度来说来说的确是错了。为什么要保留,哪怕是错了,也是一种探索精神,因为每一次错误的尝试都是向正确答案迈进的一步。
HelloWorld发表于 2024-10-6 03:08:09
今天翻《圣典》学习“13-4 放置玩家”这一节,关于rmSetPlacementSection用法我有一个猜想,它的两个参数,第一个是开始点位,第二个是结束点位,点位有点像钟表,从0.0-1.2正好转一圈,试了以下感觉基本符合预期。
こはね发表于 2023-4-9 00:34:07
引用: HelloWorld发表于 2024-10-6 03:08:09
今天翻《圣典》学习“13-4 放置玩家”这一节,关于rmSetPlacementSection用法我...
rmSetPlacementSection我找下以前的记录,我记得我当时找孙百里计算过
rmSetPlacementSection用法
以下文档由孙百里测试、原创:
rmSetPlacementSection和rmPlacePlayersCircular一起结合使用,用来决定玩家的起始位置。rmPlacePlayersCircular代表将所有玩家沿着一段圆弧摆放,其后面所接的数字代表以地图中心为圆心,圆弧所在的圆的半径。rmSetPlacementSection后面所接的两个参数,则分别代表圆弧在该圆上的起点和终点与地图左上-右下对角线所构成的夹角,也就是摆放的第1个玩家和最后一个玩家的位置与地图左上-右下对角线的夹角。
例一:
例二: