设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 85|回复: 0

[交流讨论] Proximity/Distance Check

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    前天 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    4446

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    22899
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    28239

    灌水之王

    发表于 前天 13:59 | 显示全部楼层 |阅读模式
    I am Vectra. I've gotten a request from a friend to do this. I did this for someone else a long time ago so i figured I'll make a tutorial for all who wants to know how.

    Here's what you need:
    4 Variables
    4 Conditional Branches

    What are the 4 variables?:
    X-Coord1
    Y-Coord1
    X-Coord2
    Y-Coord2

    Let's say you want to detect the distance between the player and a rock:

    To find the x & y-coord of the rock/person
    Go to Control Variable
    Go to Game Data <= only skip this ONE step if you use Vx
    Go to Character
    Pick the character (player or the event)
    On the right pick MAP Y or  MAP X





    Red is where you pick which event you want to know the coordinates of and the blue is whether you want MAP X or MAP Y. There are other choices, but they are irrelevant. Don't use Screen X or Y because that uses coordinates on-screen and you don't want that.

    PL is Player and RO is the rock.
    X-Coord = X coordinate
    Y-Coord = Y coordinate

    You subtract the X-Coords to find the distance horizontally and you subtract the Y-Coords to find the distance vertically.

    The multiplying by -1 is so that the number will become positive if the answer happens to be a negative. In mathematics, distance cannot be a negative number.





    Due to the X-Coord and Y-Coord check needing to be 1, the system checks for diagonals too.



    You minus the rock's coordinates with the player's coordinates. If the answer is 1 or 0 then they're touching. If you want it like have it where if the rock is 5 steps away then you simply make the condition branches 5 or less instead of 1 or less.

    It'll look like this:
    This checks if it's 5 steps away horizontally and then checks vertically.









    Wait, but what if I want distance between two events?
    Then you replace player with another event. For example, If i wanted the distance between 2 rocks then I simply replace X and Y Coord1 with another event's X and Y Coord instead. If you want to know the distance of more than 2 events then every event added needs 2 variables(X & Y Coord).

    SUB-TUTORIAL: DISTANCE
    Only difference is you scrap the Y-Coord PL check and add X-Coord and Y-Coord right before the proximity (which is now distance) check.




    Note: Make sure both types are on parallel process unless you want it to check the distance once.

    If you have ANY questions plz ask.


    本贴来自国际rpgmaker官方论坛作者:Lord Vectra处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/proximity-distance-check.79791/

    本帖子中包含更多资源

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

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-14 14:22 , Processed in 0.106270 second(s), 56 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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