如何在类中定义变量,并将其传递给函数

  • 本文关键字:函数 变量 定义 squirrel
  • 更新时间 :
  • 英文 :


所以我正在为电脑游戏《反恐精英:全球攻势》编写一个脚本,该脚本可以改变游戏中玩家的十字准线。 游戏引擎使用的语言称为Vscript。Vscript 的文档不是很好,我唯一可以罚款的文档是一长串函数。但是在尝试了一个错误之后,我发现语法几乎与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 中的类中定义一个变量,然后将该变量传递到函数中呢?

您可以在构造方法中初始化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
}
} 

相关内容

  • 没有找到相关文章

最新更新