查看: 1534|回复: 9

关于主角坐标问题

  [复制链接]

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
发表于 2008-3-17 20:33:39 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我想知道这样的算法
          ■■■
          ■□■
          ■■■
主角是□ ■是范围
怎么可以一下算出当敌人在这个■内的时候
就干什么干什么
要不很麻烦还要一个一个去算过去!

以主角为中心然后计算出一格范围的正方形范围..甚至N格
版务信息:本贴由楼主自主结贴~
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
回帖
1385
发表于 2008-3-17 22:35:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-18 00:34:07 | 显示全部楼层
老实的说不是很理解.(愚)
         ■■■
         ■□■
         ■■■
只要能计算出主角8个方向外的N格情况就可以了.
现在教我计算出
以主角为中心向八个方向外各放出一格
敌人在这八格任何一格内的情况下
我最愚蠢的算法
if $game_player.x == $game_map.events[event.id] .x - 1 and
$game_player.y == $game_map.events[event.id] .y
do_sth
end
if $game_player.x == $game_map.events[event.id] .x + 1 and
$game_player.y == $game_map.events[event.id] .y
do_sth
end
if $game_player.x == $game_map.events[event.id] .x and
$game_player.y == $game_map.events[event.id] .y - 1
do_sth
end
if $game_player.x == $game_map.events[event.id] .x and
$game_player.y == $game_map.events[event.id] .y + 1
do_sth
end
以次类推算出斜方向的
if $game_player.x == $game_map.events[event.id] .x + 1 and
$game_player.y == $game_map.events[event.id] .y + 1
do_sth
end
以下差不多
只是麻烦死!!!!!!!!!
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-3-18 00:43:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-18 00:46:04 | 显示全部楼层
    for event in $game_map.events.values
   if sqrt(($game_player.x - $game_map.events[event.id].x)^2 + ($game_player.y - $game_map.events[event.id].y)^2 )
    a = 1
    p a
    end
    end
这样写是
if sqrt(($game_player.x - $game_map.events[event.id].x)^2 + ($game_player.y - $game_map.events[event.id].y)^2 )
这句错了
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-18 00:50:18 | 显示全部楼层
貌似不行
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-3-18 03:48:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-18 20:34:03 | 显示全部楼层
在向外扩张一格呢?
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
回帖
1385
发表于 2008-3-18 21:38:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

御灵的宠物

梦石
12
星屑
8481
在线时间
94 小时
注册时间
2006-12-11
回帖
3101

第2届TG大赛亚军

发表于 2008-3-19 00:36:42 | 显示全部楼层
if ($game_player.x - $game_map.events[event.id] .x).abs <= 1 or
($game_player.y - $game_map.events[event.id] .y).abs <= 1
do_sth
end

为什么不这么写…………………………orz……
其实就是判断X或者Y坐标和角色相差1格子嘛~
要严格一点按格子来的话就用不着开方什么的了=v=|||
我的Lofter:http://nightoye.lofter.com/

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部