TA的每日心情 | 开心 2024-12-9 18:45 |
---|
签到天数: 124 天 [LV.7]常住居民III
|
欢迎您注册加入!这里有您将更精采!
您需要 登录 才可以下载或查看,没有账号?注册
x
经测试还存在BUG,但目的只是交流思路:本打算想着写段自动过障碍点的,到了这里还在研究算法- 引擎:置随机数种子()
- self.目的坐标.x = 引擎:取随机整数(50,800)
- self.目的坐标.y = 引擎:取随机整数(50,800)
- self.格子.x = 取整( self.坐标.x / 32 ) + 1
- self.格子.y = 取整( self.坐标.y / 32 ) + 1
- --=====================以下判断目的坐标路径中是否有障碍===============
-
- self.起步格子.x = 取整( self.起步坐标.x / 32 ) + 1
- self.起步格子.y = 取整( self.起步坐标.y / 32 ) + 1
-
- self.目标格子.x = 取整( self.目的坐标.x / 32 ) + 1
- self.目标格子.y = 取整( self.目的坐标.y / 32 ) + 1
-
-
- if(self.目标格子.x <=self.起步格子.x) then --左
-
- if(self.目标格子.y<=self.起步格子.y )then --左上
-
- if(self.格子.x~=self.目标格子.x ) then --X方向判断障碍点
- for n=self.目标格子.x,math.abs(self.起步格子.x - self.目标格子.x ) do
- if(Q_全地图数据_路径层[n][self.起步格子.y] == 1) then
- self.障碍点格子.x=n
- self.障碍点格子.y=self.起步格子.y
- break
- end
- end
- else
- if(self.格子.y~=self.目标格子.y ) then --Y方向判断障碍点
- for n=self.目标格子.y,math.abs(self.起步格子.y - self.目标格子.y) do
- if(Q_全地图数据_路径层[self.格子.x][n] == 1) then
- self.障碍点格子.x=self.格子.x
- self.障碍点格子.y=n
- break
- end
- end
- end
- end
-
- else --左下
-
- if(self.格子.x~=self.目标格子.x ) then --X方向判断障碍点
- for n=self.目标格子.x,math.abs(self.起步格子.x - self.目标格子.x ) do
- if(Q_全地图数据_路径层[n][self.起步格子.y] == 1) then
- self.障碍点格子.x=n
- self.障碍点格子.y=self.起步格子.y
- break
- end
- end
- else
- if(self.格子.y~=self.目标格子.y ) then --Y方向判断障碍点
- for n=self.起步格子.y,math.abs(self.目标格子.y-self.起步格子.y) do
- if(Q_全地图数据_路径层[self.格子.x][n] == 1) then
- self.障碍点格子.x=self.格子.x
- self.障碍点格子.y=n
- break
- end
- end
- end
- end
-
- end
-
- else --右
-
- if(self.目标格子.y<=self.起步格子.y )then --右上
-
- if(self.格子.x~=self.目标格子.x ) then
- for n=self.起步格子.x,math.abs(self.目标格子.x - self.起步格子.x) do
- if(Q_全地图数据_路径层[n][self.起步格子.y] == 1) then
- self.障碍点格子.x=n
- self.障碍点格子.y=self.起步格子.y
- break
- end
- end
- else
- if(self.格子.y~=self.目标格子.y ) then
- for n=self.目标格子.y,math.abs(self.起步格子.y-self.目标格子.y) do
- if(Q_全地图数据_路径层[self.格子.x][n] == 1) then
- self.障碍点格子.x=self.格子.x
- self.障碍点格子.y=n
- break
- end
- end
- end
- end
-
- else --右下
-
- if(self.格子.x~=self.目标格子.x ) then
- for n=self.起步格子.x,math.abs(self.目标格子.x - self.起步格子.x )do
- if(Q_全地图数据_路径层[n][self.起步格子.y] == 1) then
- self.障碍点格子.x=n
- self.障碍点格子.y=self.起步格子.y
- break
- end
- end
- else
- if(self.格子.y~=self.目标格子.y ) then
- for n=self.起步格子.y,math.abs(self.目标格子.y - self.起步格子.y) do
- if(Q_全地图数据_路径层[self.格子.x][n] == 1) then
- self.障碍点格子.x=self.格子.x
- self.障碍点格子.y=n
- break
- end
- end
- end
- end
-
- end
-
- end
复制代码 |
|