小编Asp*_*ger的帖子

为什么要将两个32位整数组合成64位整数?

最近我看到编译器如何组合两个32位整数,它们是类属性的值并将它们存储为64位整数.我现在的问题是,为什么要这样做?结合整数有什么好处?

例如,如果我们有类的以下属性

class FooBar {
 int x = 1;
 int y = 100;
}
Run Code Online (Sandbox Code Playgroud)

而不是

i32 = 00000001
i32 = 01100100
Run Code Online (Sandbox Code Playgroud)

我们得到:

i64 = 0000000101100100
Run Code Online (Sandbox Code Playgroud)

你为什么要把它们合并?

c c++

15
推荐指数
2
解决办法
1063
查看次数

Javascript Canvas:在旋转玩家时对抗不完全正常工作的敌人

注意:*可以在我的帖子底部找到一个完整的JSFiddle*.

问题:我试图摧毁触摸画布中心蓝线的所有敌人.然而,事实并非如此,我的实施只是"半工作".当一方工作时,另一方不工作.我该如何解决这个问题?


我尝试过:一旦我设置了基本的绘图功能,我就计算了碰撞对象的x和y之间的差异.使用毕达哥拉斯距离来计算两点之间的距离.最后检查距离是否小于或等于两个物体的组合半径.使用arctangent我计算了物体运动的旋转.


我想到的替代解决方案:使用循环创建沿着蓝线的各种不可见的圆或点,充当碰撞受体.问题是:它占用了更多的资源,而且根本不会优雅.


您最感兴趣的Javascript函数将是:

function (player, spawn) {
    return (this.distance(player, spawn) <= player.radius + spawn.radius) && (this.tangent(player, spawn) <= angle - Math.PI * 1);
}
Run Code Online (Sandbox Code Playgroud)

角度是旋转蓝线的角度(它是带有行程的半圆).

this.tangent(player, spawn) <= angle - Math.PI * 1)
Run Code Online (Sandbox Code Playgroud)

这仅适用于 - 和+ - 部分.改变<= to> =与预期相反.我需要找到一种从-1循环到1的方法.

this.tangent(player, spawn) >= angle - Math.PI * 2 && this.tangent(player, spawn) >= angle
Run Code Online (Sandbox Code Playgroud)

适用于 - , - +,+但不适用于+ - (右下).

所以最后我完全混淆了为什么我的逻辑无法工作但我渴望了解如何实现这一目标:


在JSFiddle下面:

http://jsfiddle.net/mzg635p9/

我很乐意回复,因为我喜欢在Javascript中学习新东西:)

编辑(03.11.2015):如果可能只有纯粹的数学解决方案,但也可以发布其他解决方案.为了学习新技术,我们欢迎每一条信息.

javascript canvas collision

14
推荐指数
1
解决办法
465
查看次数

PHP:让其他函数访问我的数据库连接函数中的$ conn变量

让其他函数访问我的数据库连接函数中的$ conn变量

所以在这里,我绝望地试图让事情发挥作用.我知道我试图做的不是OOP也不是100%最佳实践.它不适用于实时网站,我只是在XAMPP上学习一些基本的PHP概念.

我想要做的是使我的数据库连接函数中的$ conn变量可供所有其他需要它的函数访问.我想把它作为参数传递,但是怎么做呢?我不喜欢使用PHP的"全局"或$ GLOBALS.我现在的工作方法是使用mysqli使用程序方法.

例如,我有这样的事情:

function db () {
$conn = mysqli_connect ("localhost", "root", "", "database");
}

function someFunction () {
$result = mysqli_query ($conn, "SELECT * FROM examples)
}
Run Code Online (Sandbox Code Playgroud)

我从来没有找到我的问题的答案...我最近熟悉的大多数解决方案都是基于OOP或使用有些可疑的方法.

-------------------------------------------------- -------------------------------------------------- --------------------------------

解决方案A - 我宁愿避免在包装器中使用全局变量并且不使用全局变量:

global $conn = mysqli_connect ("localhost", "root", "", "database");
global $conn;

function someFunction () {
global $conn;
$result = mysqli_query ($conn, "SELECT * FROM examples)
}
Run Code Online (Sandbox Code Playgroud)

解决方案B - 我还没有为OOP做好准备,但我知道这有效.关键是我想学习不同的东西:

class Database
{
    private static $conn;

    public static function getObject() …
Run Code Online (Sandbox Code Playgroud)

php

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

Web Audio Api:如何添加工作的卷积器?

我想学习/做的事情:如何使用脉冲响应在我的代码沙箱中设置一个简单的工作卷积器(混响).我认为这与设置过滤器类似,但事情似乎有很大不同.

我尝试过:与所有新技术一样,事情变化很快,因此很难知道哪种实现是正确的,哪些是不正确的.我看了无数的WebAudio Api Convolver Tutorials,很多都很老,其他人都在工作,但是太过"臃肿",让人很难理解发生了什么.我试图从mozilla文档中实现一些示例:

我已经看过了:https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode/buffer

我的问题:如何在下面的上下文中正确集成一个卷积器?正如你所看到的那样,我试过但是无法弄明白这一点.

 window.addEventListener('load', init, false);

function init() {
    setupWebAudio();
}

function setupWebAudio() {
    var audio = document.getElementById('music');
    var context = new AudioContext();
    var source = context.createMediaElementSource(audio);
    var filter = context.createBiquadFilter();
    var convolver = context.createConvolver();
    var inpulseRes = "hall.mp3";

    var hallBuffer = inpulseRes;
    soundSource = context.createBufferSource();
    soundSource.buffer = hallBuffer;
    convolver.buffer = hallBuffer;

    filter.type = 'lowpass';
    filter.frequency.value = 400;

var theParent = document.getElementById("test");
    theParent.addEventListener("mousedown", doSomething, false);
    function doSomething(e) {
        if (e.target …
Run Code Online (Sandbox Code Playgroud)

javascript web-audio-api

12
推荐指数
2
解决办法
1661
查看次数

JScrambler服务是否可以安全地保护javascript?

所以我最近偶然发现了jscrambler.com 这个工具实际上允许你保护你的javascript代码,它的魅力.但是,该服务是基于云的,我想知道这是否真的没问题.我实际上是在他们的服务器上发布代码.虽然其他人无法窃取我的代码,但仍然可以从jscrambler背后的人身上偷盗.

也许我担心太多了.使用jscrambler服务是否安全?

javascript

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

仅使用 babel 构建 typescript vue 应用程序?

如何仅使用 babel 转译和构建我的 typescript vue 应用程序?我广泛使用了 vue-cli-service,但达到了我只需要最小设置的程度,不需要 webpack 或任何东西。

我的 .babelrc

{
    "presets": ["babel-preset-typescript-vue"],
    "plugins": ["@babel/plugin-transform-typescript"]
}
Run Code Online (Sandbox Code Playgroud)

我的 package.json 依赖项:

"devDependencies": {
    "@babel/cli": "^7.10.5",
    "@babel/plugin-transform-typescript": "^7.11.0",
    "@babel/preset-env": "^7.11.0",
    "babel-loader": "^8.1.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-typescript-vue": "^1.1.1",
    "typescript": "~3.9.3",
    "vue-template-compiler": "^2.6.11"
},
"dependencies": {
    "vue": "^2.6.12",
    "vue-class-component": "^7.2.3",
    "vue-property-decorator": "^8.4.2",
    "vuex": "^3.5.1"
}
Run Code Online (Sandbox Code Playgroud)

我的入口 main.ts 文件:

{
    "presets": ["babel-preset-typescript-vue"],
    "plugins": ["@babel/plugin-transform-typescript"]
}
Run Code Online (Sandbox Code Playgroud)

我的 App.vue

<script lang="ts">
    import {Component, Vue} from 'vue-property-decorator';

    @Component
    class App extends Vue {}

    export default App;
</script>
    
<template>
    <div …
Run Code Online (Sandbox Code Playgroud)

javascript typescript vue.js babeljs vue-component

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

保护 Google Firebase 免受 DDOS/攻击者的侵害并防止意外账单

我正在考虑使用 firebase 实时数据库,但有一些事情我担心:

  • 高额意外账单
  • 系统错误

我正在考虑做一些事情:

  • 第 1 层:Firebase 前面的 CloudFare CDN。
  • 第 2 层:对写/读操作进行基于时间的速率限制的安全规则。
  • 第 3 层:只有经过良好身份验证的用户才能调用 firebase 端点。
  • 紧急层:我跟踪读写操作的数量。如果这些超过某个阈值,我会禁用我的项目的计费功能。

这足够安全吗?

如何保护我的 Firebase 免受读/写漏洞或 DDoS 攻击?

firebase firebase-security firebase-realtime-database

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

c枚举的重要性(typedef enum)

我最近在为我发布的答案中看到了这个:

    typedef enum
    {
        NO_OP,
        ADDITION,
    }   operator_t;

int main()
{
    operator_t operator = NO_OP;
}
Run Code Online (Sandbox Code Playgroud)

什么是typedef枚举,为什么要使用它?我用Google搜索并发现以下内容:http: //www.programiz.com/c-programming/c-enumeration

现在它对我来说听起来有点太技术性,所以我不认为我理解发生了什么或为什么会使用它.

奖金(可选):operator_t是什么类型的变量?

c

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

屏幕上的中心div已旋转并使用css3缩放

我有以下jsfiddle:

https://jsfiddle.net/quacu0hv/

我无法弄清楚如何使这个div居中.它旋转的事实使得很难将对象实际放在屏幕上.如何用纯css实现这一目标?我想象它是由于原点改变了它的位置(div的左上顶点).

div {
  transform: rotate(-45deg) scale(2) translate(-50%, -50%);
  opacity: 1 !important;
  top: 50%;
  left: 50%;
  width: 200px;
  height: 200px;
  background: black;
  position: absolute;
}
Run Code Online (Sandbox Code Playgroud)

css html5 css3

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

理解类结构和构造函数调用

玩过循环,分支,表格和所有那些不错的操作符后,我几乎开始对语言感到满意,足以创建有用的东西,但有一些我仍然不理解的逻辑.请耐心等待,因为它会有点长.

问题:有人可以解释翻译代码的工作原理吗?我在下面进一步提出具体问题.

首先是我一直在转换的一些简单的c ++代码:

class FirstClass {
  int prop1 = 111;
  int prop2 = 222;
  int prop3 = 333;

  public:
  FirstClass(int param1, int param2) {
    prop1 += param1 + param2;  

  }
};

class SecondClass {
  public:
  SecondClass() {

  }
};

int main() {
  FirstClass firstClass1(10, 5);
  FirstClass firstClass2(30, 15);
  FirstClass firstClass3(2, 4);
  FirstClass firstClass4(2, 4);
}
Run Code Online (Sandbox Code Playgroud)

这转化为:

(module
  (table 0 anyfunc)
  (memory $0 1)
  (export "memory" (memory $0))
  (export "main" (func $main))
  (func $main (result i32)
    (local $0 i32) …
Run Code Online (Sandbox Code Playgroud)

webassembly

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