设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1346|回复: 9
打印 上一主题 下一主题

关于主角坐标问题

 关闭 [复制链接]

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
跳转到指定楼层
1
发表于 2008-3-17 20:33:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

以主角为中心然后计算出一格范围的正方形范围..甚至N格
版务信息:本贴由楼主自主结贴~
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
2
发表于 2008-3-17 22:35:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
3
 楼主| 发表于 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
以下差不多
只是麻烦死!!!!!!!!!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

4
发表于 2008-3-18 00:43:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
5
 楼主| 发表于 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 )
这句错了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
6
 楼主| 发表于 2008-3-18 00:50:18 | 只看该作者
貌似不行
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

7
发表于 2008-3-18 03:48:38 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
8
 楼主| 发表于 2008-3-18 20:34:03 | 只看该作者
在向外扩张一格呢?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
9
发表于 2008-3-18 21:38:22 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

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

第2届TG大赛亚军

10
发表于 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/

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-24 03:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表