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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: BAIZHOU
打印 上一主题 下一主题

[有事请教] 怎样实现到达特定区域就会触发事件?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
24
在线时间
19 小时
注册时间
2023-8-15
帖子
9
11
 楼主| 发表于 2023-8-20 20:55:46 | 只看该作者
shiroin 发表于 2023-8-20 20:24
截个事件页的图给我看看

图片一直传不上去,我直接复制文本吧

◆变量操作:#0001 玩家x = 玩家 的 地图 X
◆变量操作:#0002 玩家Y = 玩家 的 地图 Y
◆获取指定位置的信息:区域id, 区域 ID, ({玩家x},{玩家Y})
◆如果:区域id = 7
  ◆开关操作:#0001 窗户 = ON
  ◆
:结束
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1896
在线时间
603 小时
注册时间
2022-7-5
帖子
108
12
发表于 2023-8-20 21:04:07 | 只看该作者
比较简单的一个方案应该是在区域id的判断下面再加一层条件判断(选择脚本)

如果:TouchInput.isTriggered()

这是判断鼠标是否已经点击的脚本,在这个条件下再把开关打开。

先看看能不能满足你的期望
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
24
在线时间
19 小时
注册时间
2023-8-15
帖子
9
13
 楼主| 发表于 2023-8-20 21:14:54 | 只看该作者
bleen 发表于 2023-8-20 21:04
比较简单的一个方案应该是在区域id的判断下面再加一层条件判断(选择脚本)

如果:TouchInput.isTriggered ...

设置成功了,非常感谢!
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33334
在线时间
10517 小时
注册时间
2009-3-15
帖子
4762
14
发表于 2023-8-20 23:36:21 | 只看该作者
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4763
在线时间
669 小时
注册时间
2021-3-24
帖子
524
15
发表于 2023-8-21 00:07:28 | 只看该作者
铺空气事件

    Game_Event.prototype.initialize = function(mapId, eventId) {
        Game_Character.prototype.initialize.call(this);
        this._mapId = mapId;
        this._eventId = eventId;
        let note =this.event().note
        let l1=note.indexOf('[#')
        let l2=note.indexOf('#]')
        if(l1>-1&&l2>l1) {
            let arr= note.substring(l1 + 2, l2).split("|")
            for (let i=0;i<arr.length;i++)
            {
                let n=arr[i].split(":")
                switch (n[0]) {
                    case "range":
                        this._range=n[1].split(",")
                        break
                }
            }
        }
        this.locate(this.event().x, this.event().y);
        this.refresh();
    };
   
    /**扩大事件碰撞*/
    Game_Map.prototype.eventsXy = function(x, y) {
        return this.events().filter(function(event) {
            if(event._range)
            {
                let r= event._pageIndex<event._range.length?event._range[event._pageIndex]:event._range[event._range.length-1]
                return (Math.abs(event._realX-x)<r)&&(Math.abs(event._realY-y)<r)}
            else return event.pos(x, y);
        });
    };

而我做到这种需求会扩大一个事件的触碰范围
全家活光光~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2945
在线时间
418 小时
注册时间
2022-1-21
帖子
218
16
发表于 2023-8-21 11:28:23 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-23 13:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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