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

Project1

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

[有事请教] 如何用腳本把滑鼠點擊畫面時的X.Y座標存入變數2.3 ?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7667
在线时间
1437 小时
注册时间
2018-12-16
帖子
2026
跳转到指定楼层
1
发表于 2021-10-8 12:51:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
20星屑
如何用腳本把滑鼠點擊畫面時的X.Y座標存入變數2.3 ?


>_<

最佳答案

查看完整内容

$gameVariables.setValue(2, $gamePlayer.x); $gameVariables.setValue(3, $gamePlayer.y); 1-6句可能改为这两句吧, 变量不能用等于赋值,只能用$gameVariables.setValue(varid,x)这种格式

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
来自 2楼
发表于 2021-10-8 12:51:14 | 只看该作者
本帖最后由 任小雪 于 2021-10-9 00:02 编辑

$gameVariables.setValue(2, $gamePlayer.x);
$gameVariables.setValue(3, $gamePlayer.y);
1-6句可能改为这两句吧,
变量不能用等于赋值,只能用$gameVariables.setValue(varid,x)这种格式

点评

很基础的一个脚本了(意思是,将你的两个数值分别赋值到第二个变量和第三个上,就是你的变量表上的)  发表于 2021-10-9 02:22
我是说1-6句这样写,意思就是,你把你旧有的删掉,就用我这个,如果有问题,应该也不是我的问题,因为,这个写法,我不是第一次实测的,这是...  发表于 2021-10-9 02:20
$gamePlayer.x不存在?还是大小写?还是你的什么插件矛盾了?  发表于 2021-10-9 02:17
我这句本身应该是没有问题的,老实说(用了不止一次)  发表于 2021-10-9 02:14
改了還是 ReferenceError: Invalid left-hand side in assignment  发表于 2021-10-9 01:34
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9857
在线时间
1885 小时
注册时间
2020-1-2
帖子
1089
3
发表于 2021-10-8 18:22:48 | 只看该作者
我倒是看到一个玩家位置历史插件但是没有研究过https://forums.rpgmakerweb.com/i ... plugin-v1-04.56249/
B站没人气的夏目漠漠,直播间:5378938实用插件教程点击红字传送
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7667
在线时间
1437 小时
注册时间
2018-12-16
帖子
2026
4
 楼主| 发表于 2021-10-8 21:05:26 | 只看该作者
我研究了那個插件 然後寫了下面的腳本
  1. XVar = 0;
  2. YVar = 0;
  3. $gameVariables.setValue(XVar, $gamePlayer.x);
  4. $gameVariables.setValue(YVar, $gamePlayer.y);
  5. $gameVariables.setValue(2) = $gameVariables.setValue(XVar);
  6. $gameVariables.setValue(3) = $gameVariables.setValue(YVar);
复制代码


結果得到這個錯誤....
ReferenceError: Invalid left-hand side in assignment

實在看不出來是哪邊有問題.... >_<

点评

绝汪发的脚本入门那个帖子 查不到耶...能給個連結嗎? 還是被刪了?  发表于 2021-10-9 12:19
你是只睡了三个小时还是醒了一夜?!  发表于 2021-10-9 08:13
这么早就起来了啊  发表于 2021-10-9 06:00
比如传说的设定,我是看小白机翻js文件里manager文件里的data管理文件的具体翻译猜的  发表于 2021-10-9 05:58
那个也不是说明书,是直接把答案(虽然有些是有bug的)告诉你。。。当然,也可以通过小白机翻(这个比较踏实)慢慢找  发表于 2021-10-9 05:57
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
5
发表于 2021-10-9 02:36:56 | 只看该作者
个人建议你还是先把绝汪的那个脚本入门的TXT文件看了(当然,装备强化部分有错(思路多少是对的),对话部分有bug),先把把基础中的基础补一下,你的基础真的太差了。
我是今年四月还是五月六月才开始使用脚本(之前完全是纯事件,没有插件),小白机翻也是这几个月才开始学会用,data文件的用法也是这个月多一点才开始了解,基本全看俺寻思的,所以,你不会那么菜吧(个人对于代码的知识,除了数学书学到的,基本可以等于零)

点评

不过,很多东西还是没有办法,只能妥协  发表于 2021-10-9 15:12
不没学过这些(基本是的),要用到的东西全靠俺寻思(论坛问过别人一两个吧,其他都是对照小白机翻和论坛里已经有的)  发表于 2021-10-9 15:11
哈哈哈哈....沒法...我已經被很多同業念過不知道幾次了...我都覺得你們怎麼會這麼厲害啊...但是他們就是覺得是你太弱了...不是他們太強...>_<  发表于 2021-10-9 15:10
很多東西真的就是講天分的...我就沒天分...很努力...但是好像還是很菜...有學=沒學...永遠就那樣...爛泥扶不上牆...但是我相信有一天...會變強..哈哈  发表于 2021-10-9 15:09
噗!一口白开水,不知道该怎么说  发表于 2021-10-9 15:09
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9857
在线时间
1885 小时
注册时间
2020-1-2
帖子
1089
6
发表于 2021-10-9 12:36:49 | 只看该作者
play337 发表于 2021-10-8 21:05
我研究了那個插件 然後寫了下面的腳本

刚刚突然想到为什么要那么麻烦 直接用事件    变量=数据玩家XY或者画面XY不久好了

点评

我一開始也是用事件...但是我後來漸漸發現...用腳本.在地圖動作跑起來.真的會順暢那麼一點點..尤其你滿畫面都是事件的時候...  发表于 2021-10-9 15:12
当然,基础都是相对而言的事情,比如我,没有学过js等语言,其实也是基础不扎实  发表于 2021-10-9 13:40
我也知道,其实我那两句应该也没错,问题是楼主不理解他想要的东西其实本来可以用事件完成啊,本质问题还是基础不扎实  发表于 2021-10-9 13:31
B站没人气的夏目漠漠,直播间:5378938实用插件教程点击红字传送
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
7
发表于 2021-10-9 13:28:09 | 只看该作者
进我群196966901,把那个文件“脚本学习核心”(大概是这个名字)下载了,自己慢慢研究吧

点评

学习流程我之前发的主题帖子(绿皮入门)有说过  发表于 2021-10-9 13:29
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
8
发表于 2021-10-9 15:22:52 | 只看该作者
不过,我还是建议你先了解一下引擎原事件包含了什么功能,不是说不用脚本,而是说,引擎原事件有的功能,基本都可以打开小白机翻来抄
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2966
在线时间
334 小时
注册时间
2020-6-14
帖子
89

极短22参与

9
发表于 2021-10-9 15:34:41 | 只看该作者
你这个脚本确实有点离谱。。
  1. $gameVariables.setValue(2) = $gameVariables.setValue(XVar);
复制代码

这句是在表达什么……函数不能放在等号左边啊。并且这个写法已经不是赘余的问题了,setValue的意思是给游戏变量(不是脚本中申请的变量)赋值,游戏变量是有编号的,所以要有两个参数,一个是变量编号(跟事件界面里的一样),一个是要赋予的值。
所以说,这里根本没必要初始化两个变量XVar、YVar,直接给2,3号变量赋值$gamePlayer.x和$gamePlayer.y就行了。

点评

太深奧了 >_<  发表于 2021-10-9 22:47
比如说这个赋值函数,实际上是做了一个动作,就像拿了涂改带把某个变量涂了然后写上新的变量一样。虽然可能也有返回值,但是不能当变量用。  发表于 2021-10-9 21:45
话说回来这是个老问题了。”函数“这个说法不能跟高中数学里那个函数等同,一般编程里的函数应该理解为”动作,方法“。  发表于 2021-10-9 21:43
setValue的意思就是”赋值”(set设置,value值),就像说汉语里可以说【写下 一句话】,不能说【让 写下 变成 一句话】一样。  发表于 2021-10-9 21:39
我原本是在想gameVariables.setValue(2)不就是 [遊戲][變數].[設定變數2] 所以不就是一個變數嗎?變數不就可以隨意指定?  发表于 2021-10-9 20:23
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2966
在线时间
334 小时
注册时间
2020-6-14
帖子
89

极短22参与

10
发表于 2021-10-9 21:58:19 | 只看该作者
任小雪 发表于 2021-10-9 15:22
不过,我还是建议你先了解一下引擎原事件包含了什么功能,不是说不用脚本,而是说,引擎原事件有的功能,基 ...

回上面一个问题,【$】这个符号我没学过js,查了半天没整太明白。但是你不能用这个分析,因为$gameVariables.setValue(2)这句话最后面的setValue才表示这个东西的类型。
setValue在MV里这么定义的:
  1. Game_Variables.prototype.setValue = function(variableId, value) {
  2.     if (variableId > 0 && variableId < $dataSystem.variables.length) {
  3.         if (typeof value === 'number') {
  4.             value = Math.floor(value);
  5.         }
  6.         this._data[variableId] = value;
  7.         this.onChange();
  8.     }
  9. };
复制代码

实际上你看一下就明白,这是给Game_Variables这个类型定义的属性函数,函数的类型当然是函数了。而$gameVariables是在游戏中已有的Game_Variables类型。

点评

我查了一圈,算是搞明白了,$是prototypejs这个库定义的一个符号,文档里写得很清楚了。http://api.prototypejs.org/dom/dollar/ 等同于document.getElementById  发表于 2021-10-9 22:28
应该是这个引擎本身把$这个符号这么定义的  发表于 2021-10-9 22:06
$这个符号,可能是应用某个具体的数据吧(俺寻思),比如$dataArmor,就是大致指data文件里边防具armor文件的数据  发表于 2021-10-9 22:05
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 22:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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