全局变量 在所有相位器状态下未更新
Global Variable Not updating in all Phaser States
在helm
状态下,当您设置翘曲因子并按下接合按钮时,它会调用发出必要数据的engage
。服务器收到此消息,确定惯性阻尼器是否处于活动状态,然后发出'warpFailed'
或更新翘曲因子。在app.js
接收服务器发出并更新globalGame.warpFailed
。在captain
状态下,将检查globalGame.warpFailed
。
问题是在helm
状态下,globalGame.warpFailed
会正确记录到控制台并反映正确的状态。在captain
状态下,无论实际值是什么,它都会不断记录false
。
老实说,我什至不确定要显示什么代码,但这是我能想到的一切:
服务器.js:
socket.on('warp', function (data) {
if (serverGameData.helm.inertDampeners) {
socket.emit('warpFailed');
} else {
serverGameData.helm.warpFactor = data.helm.warpFactor;
}
});
应用.js
var socket = io(),
globalGame = {
sfx: {
effects: null,
intro: null,
menuBoot: null,
impulse: null,
warp: null
},
warpFailed: false
}
/* LOTS OF IRRELEVANT CODE HERE - NONE OF WHICH TOUCHES THE ABOVE DECALRED */
socket.on('warpFailed', function () {
globalGame.warpFailed = true;
});
helm 状态(这是在此状态下引用它的唯一位置,这会将更改值正确记录到控制台(:
update() {
console.log(globalGame.warpFailed);
}
engage() {
// Called by a button press in this state
globalGame.sfx.effects.play("launch_02", 1);
socket.emit('warp', {
helm: {
warpFactor: this.warpNum
}
});
}
队长状态(这也是该州中唯一引用它的地方。它会不断false
登录到控制台。
update() {
console.log(globalGame.warpFailed);
}
我在这里犯了一些逻辑错误还是我错过了一些明显的东西?我已经检查并重新检查,这些是唯一可以访问或与globalGame.warpFailed
有关的区域。
这是问题所在:
socket.on('warp', function (data) {
if (serverGameData.helm.inertDampeners) {
socket.emit('warpFailed'); // <---- RIGHT HERE
} else {
serverGameData.helm.warpFactor = data.helm.warpFactor;
}
});
发出的warp
来自舵手状态,这是一个独特的套接字。因此,响应仅发送到该特定套接字。我将socket.emit('warpFailed')
更改为io.emit('warpFailed')
,它按预期成功发送到所有套接字。
相关文章:
- Web应用程序,将成员状态更新为其他成员
- Universal React/redux未在状态更新时呈现
- React.js组件中的状态更新在我的页面下留下了空白
- Ajax/Javascript用户状态更新
- 使用ReactJS使用Redux的简单状态更新事件
- Yii:TbCollapse 多链接(href = #collapse 并将状态更新为 be=“1”)
- 当 redux 状态更新时,在组件上调用 forceUpdate()
- 如何更改输入字段值,使其不会在每次更改时贯穿整个 Redux 状态更新周期
- 使用 Google 表格中列出的地址发送单件状态更新电子邮件
- 评论仅发布到最新的状态更新
- 强制 Twitter Epi 库发布状态更新,即使它是上一条推文的副本
- 使用Facebook javascript sdk获取最新的5个状态更新
- 正确处理多个连续状态更新
- 将状态更新到输入字段
- 如何在JavaScript中创建Twitter状态更新,并从中接收响应
- 如何从web url加载元数据,类似于facebook在状态更新时发布url的做法.
- Onkeyup或onkeypress javascript事件问题-密码状态更新
- WshShell运行不等待,但执行状态更新(运行vs执行问题)
- Web服务——异步执行和状态更新
- 点击后显示FB状态更新弹出窗口