如何在 class 中定义变量并将其传递给函数
how to define a variable in a class, and pass it into a function
所以我正在为计算机游戏《反恐精英:全球攻势》编写一个脚本,该脚本可以改变玩家在游戏中的准星。游戏引擎使用的语言称为 Vscript。 Vscript 没有很好的文档记录,我唯一可以罚款的文档是一长串 functions。但是在尝试错误之后,我发现语法几乎与 JavaScript 相同,唯一真正的区别是语言中有特定的函数,例如 SetHealth 或 GetTeam,这些函数是特定于游戏的,不存在于JavaScript.
class crosshair_generator {
// Initialize
crosshair_hidden = false;
function hideCrosshair() {
if (crosshair_hidden == true) {
// Hide the crosshair
SendToConsole("crosshair 0");
printl("crosshair hidden!");
self.crosshair_hidden = false;
} else if (crosshair_hidden == false) {
// Show the crosshair
SendToConsole("crosshair 1");
printl("crosshair shown!")
crosshair_hidden = true;
}
}
function CrosshairAlpha(Add) {
// cl_crosshairalpha
}
}
当我打开游戏和 运行 脚本时,在游戏机内显示
AN ERROR HAS OCCURED [the index 'crosshair_generator' does not exist]
CALLSTACK
*FUNCTION [main()] InputRunScript line [1]
LOCALS
[this] TABLE
Entity script_crosshair encountered an error in RunScript()
如果我在 hideCrosshair() 函数中定义 crosshair_hidden 变量
crosshair_hidden = false;
然后每次我调用函数时它的值都是假的。我需要在函数外定义它,这样变量就可以被其他函数访问,比如CrosshairAlpha()
,所以每次调用函数时变量值都不完全相同。
那么如何在 JavaScript 中的 class 中定义变量,然后将该变量传递给函数?
您可以在构造方法中初始化properties
,稍后使用this
引用它们:
class crosshair_generator {
// Initialize
constructor(crosshair_hidden = false) {
this.crosshair_hidden = crosshair_hidden;
}
hideCrosshair() {
if (this.crosshair_hidden == true) {
// Hide the crosshair
SendToConsole("crosshair 0");
printl("crosshair hidden!");
this.crosshair_hidden = false;
} else if(this.crosshair_hidden == false) {
// Show the crosshair
SendToConsole("crosshair 1");
printl("crosshair shown!")
this.crosshair_hidden = true;
}
}
CrosshairAlpha(Add) {
// cl_crosshairalpha
}
}
所以我正在为计算机游戏《反恐精英:全球攻势》编写一个脚本,该脚本可以改变玩家在游戏中的准星。游戏引擎使用的语言称为 Vscript。 Vscript 没有很好的文档记录,我唯一可以罚款的文档是一长串 functions。但是在尝试错误之后,我发现语法几乎与 JavaScript 相同,唯一真正的区别是语言中有特定的函数,例如 SetHealth 或 GetTeam,这些函数是特定于游戏的,不存在于JavaScript.
class crosshair_generator {
// Initialize
crosshair_hidden = false;
function hideCrosshair() {
if (crosshair_hidden == true) {
// Hide the crosshair
SendToConsole("crosshair 0");
printl("crosshair hidden!");
self.crosshair_hidden = false;
} else if (crosshair_hidden == false) {
// Show the crosshair
SendToConsole("crosshair 1");
printl("crosshair shown!")
crosshair_hidden = true;
}
}
function CrosshairAlpha(Add) {
// cl_crosshairalpha
}
}
当我打开游戏和 运行 脚本时,在游戏机内显示
AN ERROR HAS OCCURED [the index 'crosshair_generator' does not exist]
CALLSTACK
*FUNCTION [main()] InputRunScript line [1]
LOCALS
[this] TABLE
Entity script_crosshair encountered an error in RunScript()
如果我在 hideCrosshair() 函数中定义 crosshair_hidden 变量
crosshair_hidden = false;
然后每次我调用函数时它的值都是假的。我需要在函数外定义它,这样变量就可以被其他函数访问,比如CrosshairAlpha()
,所以每次调用函数时变量值都不完全相同。
那么如何在 JavaScript 中的 class 中定义变量,然后将该变量传递给函数?
您可以在构造方法中初始化properties
,稍后使用this
引用它们:
class crosshair_generator {
// Initialize
constructor(crosshair_hidden = false) {
this.crosshair_hidden = crosshair_hidden;
}
hideCrosshair() {
if (this.crosshair_hidden == true) {
// Hide the crosshair
SendToConsole("crosshair 0");
printl("crosshair hidden!");
this.crosshair_hidden = false;
} else if(this.crosshair_hidden == false) {
// Show the crosshair
SendToConsole("crosshair 1");
printl("crosshair shown!")
this.crosshair_hidden = true;
}
}
CrosshairAlpha(Add) {
// cl_crosshairalpha
}
}