我正在尝试制作一个游戏(粘性,我知道),考虑到我对javascript / jquery的了解还不够好,所以我一直无法切换布尔变量。我尝试了整个var =!var(不知道这意味着什么),但有人推测它只能在目标C中工作(再次,不知道)。我制作了一个JS小提琴http://jsfiddle.net/clarinetking/mLG6c/1/,它现在可以工作,但是我想向我的所有对象添加一个名为“ equip”的变量,并使其开始为false,并在每次按下正确的按钮时将其切换为true。
var sword = {
nam:'Sword',
atk:5,
def:1,
spd:-1,
type:'LeftH',
//equip = false
};
等等
switch ( $(this).attr('id') ) {
case 'equipsword':
atk += sword.atk;
def += sword.def;
spd += sword.spd;
//insert equip switch here
break;
最佳答案
是的!
可以在javascript中工作,而不仅仅是C,!
是NOT运算符,它基本上与前面的内容相反,因此:
!true === false
!false === true
这也适用于真实/虚假值:
!null === true
!0 === true
!15 === false
!"" === true
因此,要切换布尔值,只需使用以下命令:
var sword = {
nam:'Sword',
atk:5,
def:1,
spd:-1,
type:'LeftH',
equip:false
};
switch ( $(this).attr('id') ) {
case 'equipsword':
atk += sword.atk;
def += sword.def;
spd += sword.spd;
sword.equip = !sword.equip;
break;
但由于从外观上看,案例'equipsword'只会在装备而不是取消装备时才触发,而
sword.equip = true;
也是如此,特别是因为其他代码可能会更改equip
的值,并且那么该切换将无法按预期进行,例如,如果在触发equipsword大小写之前运行了以下代码:function someFunctionThatGetsCalled(){
sword.equip = true;
}
它会导致equip为true,然后在触发equispword大小写时,sword.equip将变为false,因为它使用
!sword.equip
切换。