小编Rob*_*yes的帖子

Web Audio API中的FFT数据对应于什么?

我使用了来自Analyzer节点的FFT数据,使用getByteFrequencyDataWeb Audio API中的方法创建了一个频谱可视化工具,如下所示:

Spectrum Visualizer

在这个例子中,我有256个数据库.这个数字到底对应的是什么?它是每个频率成分的分贝水平.如果是这样,我怎么知道每个bin的频率值对应于什么?

我想知道所以我可以尝试构建图形方程,因此想知道在哪些点指示滤波器带.理想情况下,我想表示20Hz到20kHz的频率,并相应地绘制它们之间的间隔.

谢谢你的帮助.

audio fft html5-audio web-audio-api

30
推荐指数
2
解决办法
8945
查看次数

如何在Backbone.js中设置View的id?

在Backbone.js中,当我创建一个视图时,我可以初始化它的元素的'class'属性,如下所示:

var newView = Backbone.View.extend({
    className: 'foo'
});
Run Code Online (Sandbox Code Playgroud)

是否有类似的方式以类似的方式设置'id'属性?

javascript model-view-controller jquery backbone.js

16
推荐指数
1
解决办法
1万
查看次数

Node.js UDP用于实时多人游戏

我正在使用node.js构建一个基于浏览器的实时多人游戏.目前,我让客户端通过socket.io向游戏逻辑服务器发送用户输入,并将游戏世界的快照发送回客户端进行渲染.

下面是代码的简化版本.是否可以使用UDP将数据从基于浏览器的客户端发送到服务器,反之亦然?我知道Node.js有一个UDP模块,但我不确定如何以这种方式实现它.

任何帮助,将不胜感激.谢谢.

服务器:

var server = http.createServer(handler).listen(8888);
var iosocket = io.listen(server);

// request/response handler
function handler(req, res){

    ...
}

iosocket.sockets.on('connection', function(socket){
    console.log("[x] Socket listener started");

    socket.on('msg', function(data){
        console.log( " [-] incoming message);
    });
});

...

iosocket.sockets.emit("message", msg);
Run Code Online (Sandbox Code Playgroud)

客户:

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <script type="text/javascript" src="/socket.io/socket.io.js"></script>
        <script type="text/javascript">
            socket.on('connect', function(){
             console.log("connected to server");
            });

            socket.on('message', function(message){
            console.log('received message');
            });

        </script>
    </head>

    <body>
        <canvas id='canvas' width="400" height="400">Canvas</canvas>
    </body>

</html>
Run Code Online (Sandbox Code Playgroud)

javascript networking udp node.js

13
推荐指数
1
解决办法
9931
查看次数

如何设置EaselJS图形和形状的z-index

我在画布上有EaselJS Shapes然后我开始绘制每个刻度的图形.目前正在形状上绘制图形.有没有办法定义z-index,以便每个帧都在Graphics上绘制Shapes?

任何帮助将非常感激.

animation canvas vector-graphics easeljs createjs

13
推荐指数
1
解决办法
2万
查看次数

TCP和Node.js的实时多人游戏原则

我一直在阅读有关多玩家网络的Valve 文章,文章改编自Yahn Bernier 2001年的一篇名为" 客户/服务器游戏内协议设计和优化中的延迟补偿方法"的论文.我正在使用通过socket.io连接到客户端的node.js服务器进行实时多人游戏,我对下面详述的原则有几个问题:

实体插值

[插值]通过缓冲服务器更新然后播放它们之间平滑插入的间隙来防止通常会导致的抖动运动.它还可以防止数据包丢失引起的故障.

客户端预测

预测是客户端预测本地玩家行为的影响而不等待服务器确认它们的概念.当服务器命令到达时,将对服务器命令测试实体的预测状态,直到检测到匹配或不匹配为止.

滞后补偿

滞后补偿是服务器在处理[用户输入]时使用播放器延迟倒带时间的概念,以便查看播放器在发送命令时看到的内容.与预测相结合,滞后补偿可以帮助抵御网络延迟,从攻击者的角度来看几乎消除它.

  • 这些原则是否适用于TCP,因为它们对UDP有效,是否会在实现方面有任何差异?我可以看到实体插值不需要防止数据包丢失,但就此而言.

  • 我甚至可以使用UDP和Node.js在服务器和Web浏览器之间进行通信,反之亦然?

  • 由于这篇论文已有十多年的历史,这些原则还在使用还是出现了其他技术?

任何帮助将非常感激.

networking udp tcp game-engine node.js

9
推荐指数
1
解决办法
1857
查看次数

如何让 vscode 识别 vitest 全局变量?

我正在尝试让 vitest 全局 api 工作,这样我就可以编写和函数describe,而无需将它们导入到每个测试文件中,例如.testexpectjest

我已经按照指南设法通过了测试,但是在 vs-code 中调用 vitest 函数时出现红色错误行。

例如

Cannot find name 'test'. Do you need to install type definitions for a test runner?
Try npm i --save-dev @types/jest or npm i --save-dev @types/mocha.
Run Code Online (Sandbox Code Playgroud)

我确信这是一个打字稿配置问题,但我已将全局类型添加到 tsconfig 文件中:

{
  "compilerOptions": {
    "types": ["vitest/globals"]
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能让 VS-Code 识别全局变量?

typescript visual-studio-code vite vitest

7
推荐指数
1
解决办法
3817
查看次数

zeromq.node安装错误Ubuntu 12.04:'node-gyp rebuild'

我正在尝试使用以下命令安装zeromq.node:

$ npm install zmq

但是,我一直收到以下错误.任何帮助将非常感激.

gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/npm/node_modules/node-gyp/lib/build.js:215:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:91:17)
gyp ERR! stack     at Process._handle.onexit (child_process.js:674:10)
gyp ERR! System Linux 3.2.0-29-generic
gyp ERR! command "node" "/usr/share/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/robot/code/game/node_modules/zmq
gyp ERR! node -v v0.8.6
gyp ERR! node-gyp -v v0.6.3
gyp ERR! not ok 
npm ERR! zmq@2.1.0 install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp …
Run Code Online (Sandbox Code Playgroud)

ubuntu zeromq node.js npm ubuntu-12.04

6
推荐指数
1
解决办法
4930
查看次数

为内联 svg 添加不带文本的下划线文本装饰

我有一个 SVG 元素作为图标出现在链接之后:

在此输入图像描述

<a class="external-link" href="http://www.google.com">google.com
    <svg class="external-link-svg">...</svg>
</a>
Run Code Online (Sandbox Code Playgroud)

我希望下划线延伸到 svg 元素下方。从图像中可以看出,我已经完成了这项工作,但我设法做到这一点的唯一方法是在 CSS 中插入空格:

.external-link:after {
    content: "\00a0\00a0\00a0\00a0";
}
Run Code Online (Sandbox Code Playgroud)

这感觉有点像黑客,因为如果我改变图标,比如说更宽或更窄的图标,下划线将不再是正确的长度。

有没有办法在不注入空格的情况下延长下划线?

非常感谢

css svg

6
推荐指数
2
解决办法
7248
查看次数

Web 音频 API 分析器节点 getByteFrequencyData 返回空白数组

我正在尝试从分析器节点访问 FFT 数据,analyser.getByteFrequencyData(array)但它似乎返回了一个空白数组:

var array = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(array);
Run Code Online (Sandbox Code Playgroud)

但是 usinganalyser.getFloatFrequencyData(array)返回一个数据数组:

var array = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatFrequencyData(array);
Run Code Online (Sandbox Code Playgroud)

我使用的信号链如下:

Source-> Analyser-> ScriptProcessor->Context Destination

那么为什么我不能以字节形式获取频率数据呢?

提前致谢。

javascript audio signal-processing html5-audio web-audio-api

5
推荐指数
1
解决办法
4305
查看次数

C++ - 没有合适的默认构造函数可用

我在使用一个非常简单的程序时遇到了麻烦.它会抛出错误:

error C2512: 'Player' : no appropriate default constructor available

IntelliSense: no default constructor exists for class "Player"

我觉得这与在Game.h中将Player类声明为私有变量有关,但我不明白为什么.任何帮助将非常感激.

Game.h

#pragma once
#include "Player.h"

class Game
{
public:
    Game(void);
    void start(void);
    ~Game(void);
private:
    Player player;
};
Run Code Online (Sandbox Code Playgroud)

Game.cpp

#include "Game.h"

Game::Game(void)
{
    Player p(100);

    player = p;
}

void Game::start()
{
    ...
}

Game::~Game(void)
{
}
Run Code Online (Sandbox Code Playgroud)

Player.h

#pragma once
class Player
{
public:
    Player(int);
    ~Player(void);

private:
    int wallet;
};
Run Code Online (Sandbox Code Playgroud)

Player.cpp

#include "Player.h"
#include <iostream>

using namespace std;

Player::Player(int walletAmount)
{
    wallet …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance class

5
推荐指数
4
解决办法
3万
查看次数