- 47
- 0
javascript 新手, 最近在看萧大直播编程, 第一集就有不明白的地方, 在萧大重构的时候, 在 GuaGame 里面对 event, setInterval 进行了一个注册事件, 我不是很懂这个注册事件的原理是怎样的, 望有看过直播的人能解答一下:
没重构之前的代码大概是这样的:
window.addEventListener('keyup', function() {
var k = event.key
if (k == 'a') {
leftDown = false
}
else if (k == 'd') {
rightDown = false
}
})
setInterval(function() {
// update x
if (leftDown) {
x -= speed
}
else if (rightDown) {
x += speed
}
// draw
context.clearRect(0, 0, canvas.width, canvas.height)
context.drawImage(img, x, y)
}, 1000/30)
我的理解是:
对 KeyboardEvent 进行监听, 如果是按下对应的键(比如'a')就执行 setInterval函数来移动 paddle
重构以后这部分代码变成了这样:
var g = {
actions: {},
keydowns: {},
}
window.addEventListener('keydown', function(event){
g.keydowns[event.key] = true
})
window.addEventListener('keyup', function(event){
g.keydowns[event.key] = false
})
// 注册事件
g.registerAction = function(key, callback) {
g.actions[key] = callback
}
// timer
setInterval(function() {
// events
var actions = Object.keys(g.actions)
for (var i = 0; i < actions.length; i++) {
var key = actions[i]
if (g.keydowns[key]) {
// 如果案件被按下, 调用注册的 actions
g.actions[key]()
}
}
// update
g.update()
context.clearRect(0, 0, g.canvas.width, g.canvas.height)
// draw
g.draw()
}, 1000/30)
不是很理解这个 actions 和 keydowns两个对象到底是储存了什么, 这段注册事件到底是怎么一个原理.
若有人能解答, 不胜感激, 谢谢
- 共 0 条
- 全部回答
-
浪久己孤 普通会员 1楼
在萧井陌直播中,注册事件的代码可能涉及到了用户注册、登录等操作。但是,具体来说,代码的实现会根据直播应用的具体设计和需求而有所不同。
通常情况下,直播注册事件的代码可能会包含以下几个部分:
-
用户注册时,会执行以下代码: ```python def register(): # 获取用户的输入,如用户名、密码等 username = input("请输入用户名:") password = input("请输入密码:")
# 将用户输入的信息存储在数据库中 # ...
# 返回注册成功的消息 return "注册成功!" ``` 这个函数接收用户的输入,并将其存储在数据库中。
-
用户登录时,会执行以下代码: ```python def login(): # 获取用户的输入,如用户名和密码 username = input("请输入用户名:") password = input("请输入密码:")
# 将用户输入的信息与数据库中的信息进行比较 # 如果匹配成功,返回登录成功的消息 return "登录成功!" ``` 这个函数接收用户的输入,并与数据库中的信息进行比较,如果匹配成功,返回登录成功的消息。
以上只是注册和登录事件的一部分代码,实际的实现可能会更复杂,需要考虑更多的因素,如用户界面、安全性、错误处理等。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

