Project1

标题: 请询问一下图片按钮的插件问题(PictureCallCommon.js) [打印本页]

作者: 3000Roger    时间: 2024-4-12 19:04
标题: 请询问一下图片按钮的插件问题(PictureCallCommon.js)


这是我的设定,效果是希望呈现

指着图片1会变成图片2,然后按下去出现音效跟开启选单

移开之后又回复成图片1



但是选单遮住后没有"离开图片"这个动作,就没办法回复图片1

有没有办法修正?

圖片指令
P_CALL_CE [圖片ID] [一般劇情ID] [觸發方法] [透明色觸發]:
     圖片區域內滿足觸發條件時調用的一般劇情。
  觸發方式如下(省略時使用 1 為觸發)
     1  : 左鍵點擊
     2  : 右鍵點擊
     3  : 長按
     4  : 游標懸停上方
     5  : 游標離開圖片
     6  : 游標點擊後放開
     7  : 游標重複點擊
     8  : 游標點擊的所有時間
     9  : 滾輪點擊(僅可使用於 PC )
     10 : 連續點擊
     11 : 游標在圖片內移動
     12 : 游標點擊後在在圖片內移動

     如果指定了透明色觸發參數(ON / OFF),則可以設定是否點擊每張圖片的透明色。
     如果未設定任何內容,則應用插件參數設置。(默認規格)

例如:P_CALL_CE 1 3 7 ON

P_CALL_SWITCH [圖片ID] [開關ID] [觸發方法] [透明色觸發]
  當在圖片區域內滿足觸發條件時,打開指定開關。
  觸發設定等與圖片按鈕相同。

P_CALL_KEY_BIND [圖片ID] [按鈕名稱] [觸發方法] [透明色觸發]
  當在圖片區域內滿足觸發條件時,表示已按下任何按鈕。
  按鈕名稱設置如下。 (Windows標準)
ok      : Enter,Z
shift   : Shift
control : Ctrl,Alt
escape  : Esc,X
left    : ←
up      : ↑
right   : →
down    : ↓

P_CALL_CE_REMOVE [圖片ID] :
     取消圖片與一般劇情或開關之間的關聯。
     所有觸發器都刪除。

例如:P_CALL_CE_REMOVE 1

P_STROKE [圖片ID] [變數ID] [透明色觸發]
  當您移動滑鼠或點擊指定圖片時,與速度對應的值將添加到指定的變數中。
  即使更換或暫時隱藏圖片,此設定也有效。
  在 10 秒內累積高達 1000 左右。

例如:P_STROKE 1 2 ON

P_STROKE_REMOVE [圖片ID]
  取消指定圖片的設定。

例如:P_STROKE_REMOVE 1

P_POINTER [圖片ID]
  指定的圖片將自動跟隨點擊坐標。
  如果未點擊,它將自動隱藏。

例如:P_POINTER 1

P_POINTER_REMOVE [圖片ID]
  對指定圖片移除點擊跟隨。

例如:P_POINTER_REMOVE 1

・腳本(進階使用)
$gameScreen.isPointerInnerPicture([ID]);

如果具有指定[ID]的圖片中存在滑鼠或點擊坐標,則返回 true。
即使未使用[P_CALL_CE],此腳本也有效。

例如:$gameScreen.isPointerInnerPicture(5);

作者: shiroin    时间: 2024-4-12 22:30
首先按你的需求,其实并没有区分2、3号图片的意义,你可以统一用同一个图片槽,比如2号
接着你可以写一个并行处理的公共事件,通过$gameScreen.isPointerInnerPicture(2)来判断鼠标是否在2号图片范围内,返回true时就给2号图片槽显示图片A,否则返回false时,显示图片B
具体写法可以参考这个:

◆如果:脚本:$gameScreen.isPointerInnerPicture(2)
  ◆显示图片:#2, 图片A, 左上 (0,0), (100%,100%), 255, 正常
  ◆
:否则
  ◆显示图片:#2, 图片B, 左上 (0,0), (100%,100%), 255, 正常
  ◆
:结束
◆等待:5帧

接着你可以再通过插件指令捆绑点击图片的按钮效果,比如 P_CALL_CE 2 3 1 ,让2号图片被鼠标左键点击时启动3号公共事件

3号公共事件就按这个格式写:

◆如果:脚本:$gameScreen._pictures[2]._name === "图片A"
  ◆打开菜单画面
  ◆
:否则
  ◆
:结束

这里追加了对图片名称的判定,只有正确显示了符合条件的图片时,才会激活打开菜单的功能,否则点了也没任何效果,用于防止意外

作者: 3000Roger    时间: 2024-4-12 23:26
shiroin 发表于 2024-4-12 22:30
首先按你的需求,其实并没有区分2、3号图片的意义,你可以统一用同一个图片槽,比如2号
接着你可以写一个并 ...

谢谢帮忙,我照做之后


鼠标指着后变成图B又马上变成图A,不会停留在图B的状态
希望是指着图A会变成图B,移开鼠标回复成图A

麻烦在看看是哪里有问题,拜托拜托



作者: shiroin    时间: 2024-4-12 23:32
3000Roger 发表于 2024-4-12 23:26
谢谢帮忙,我照做之后

你的图片A和图片B是不是长宽规格差异很大?
作者: 3000Roger    时间: 2024-4-12 23:54
shiroin 发表于 2024-4-12 23:32
你的图片A和图片B是不是长宽规格差异很大?



两张一样大,上面是图A,下面是图B
作者: shiroin    时间: 2024-4-13 00:43
3000Roger 发表于 2024-4-12 23:54
两张一样大,上面是图A,下面是图B

那就很奇怪了,总之我做了一个简易工程,里面我已经预设了点击图片打开选单并监听图片显示情况的效果
你可以参考下设计

测试工程.zip

1.87 MB, 下载次数: 8


作者: 3000Roger    时间: 2024-4-13 01:14
shiroin 发表于 2024-4-13 00:43
那就很奇怪了,总之我做了一个简易工程,里面我已经预设了点击图片打开选单并监听图片显示情况的效果
你 ...

真的非常感谢,问题解决了,是公共事件的开关没有设定好的问题

然后还有一个小问题,为什么点击启动要用
$gameScreen._pictures[2]._name === "图片A"
这个脚本的功能是什么,插件说明内没看到?


按照上图的做法没办法加入正常点击音效
按照下图没用脚本的做法就有正常的音效

还是想请教一下用脚本的用意是什么,谢谢!
作者: shiroin    时间: 2024-4-13 09:26
3000Roger 发表于 2024-4-13 01:14
真的非常感谢,问题解决了,是公共事件的开关没有设定好的问题

然后还有一个小问题,为什么点击启动要用 ...

$gameScreen._pictures[2]._name是脚本的使用,可以获取2号图片槽的图片名,改[]里的数字可以切换对应的图片槽判定
用在条件分歧句里就可以检查是否是你需要的图片,省掉不必要的图片槽使用
至于没有音效的问题,你可以试试加几帧等待再打开选单,看下是不是处理效率低了导致的问题
作者: 3000Roger    时间: 2024-4-13 13:21
shiroin 发表于 2024-4-13 09:26
$gameScreen._pictures[2]._name是脚本的使用,可以获取2号图片槽的图片名,改[]里的数字可以切换对应的 ...

非常感謝幫忙!
目前問題都解決了!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1