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

Project1

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

[已经解决] 如何判定以玩家坐标为中心,一定范围内某区域的数量?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
178 小时
注册时间
2011-2-6
帖子
61
跳转到指定楼层
1
发表于 2015-2-3 19:02:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x

图中黑点距离为1,橙红点距离为2.

我想把以玩家坐标为中心,一定范围内,所含有某区域的数量代入变量进行判定再达成如下目的……

7号区域,当以玩家为中心,距离1以内(包括1),7号区域数量不为0时,才能使用打水or钓鱼等等操作。

9号区域,当以玩家为中心,距离2以内(包括2),9号区域数量不为0时,每30(-2×范围内区域9的数量)帧恢复1mp,

10号区域,当玩家与最近的一个10号距离为0时 ,立即打开一个开关。开关开启时减慢玩家在地图上的移动速度,并判定玩家距离2以内的区域10数量,每当玩家移动一步时,损失相当于(1.5%×范围内区域10数量)的当前生命值。但若没有10号区域与玩家距离为0 ,开关关闭。


qwq主要还是怎么把以玩家坐标为中心,一定范围内,所含有某区域的数量代入变量的啦……

(对不起我语死早如果有表意不清的地方请指出来……

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-2-3 19:13:39 | 只看该作者
本帖最后由 taroxd 于 2015-2-3 19:15 编辑

思路是这样,未测试

RUBY 代码复制
  1. class Game_Interpreter
  2.   def region_count(region_id, distance)
  3.     x = $game_player.x
  4.     y = $game_player.y
  5.     (-distance..distance).inject(0) do |result, dx|
  6.       dy_max = distance - dx.abs
  7.       (-dy_max..dy_max).count { |dy|
  8.          $game_map.region_id(x + dx, y + dy) == region_id
  9.       } + result
  10.     end
  11.   end
  12. end


在 变量操作 - 脚本 中输入 region_count(区域ID, 距离) 即可获取
再说一遍,未测试- - 结果不对不要怪我- -

点评

测试时没有发现问题w,谢谢大大  发表于 2015-2-5 21:58

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 18:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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