小编fde*_*hin的帖子

在游戏中的图形和物理引擎之间共享数据?

我正在编写一个由几个模块组成的游戏引擎。其中两个是图形引擎物理引擎

我想知道在它们之间共享数据是否是一个好的解决方案?

两种方式(共享或不共享)看起来像这样:

不共享数据

GraphicsModel{
    //some common for graphics and physics data like position

    //some only graphic data 
    //like textures and detailed model's vertices that physics doesn't need
};

PhysicsModel{
    //some common for graphics and physics data like position

    //some only physics data 
    //usually my physics data contains A LOT more information than graphics data
}

engine3D->createModel3D(...);
physicsEngine->createModel3D(...);

//connect graphics and physics data 
//e.g. update graphics model's position when physics model's position will change
Run Code Online (Sandbox Code Playgroud)

我看到两个主要问题:

  1. 大量冗余数据(例如物理和图形数据的两个位置) …

c++ graphics 3d-engine game-engine physics-engine

4
推荐指数
1
解决办法
1270
查看次数

为什么数字字符的 Integer.valueOf 不返回其值?

我不得不说这是一个错误发现的,因为我试图将 a 转换String为 an Integer,但我没有意识到它是一种Character类型而不是Integer

但不知何故,尽管JDK 文档中没有提到,但Integer.valueOf仍然可以使用参数运行?Character

System.out.println(Integer.valueOf("2"));  // >>> 2
System.out.println(Integer.valueOf('2'));  // >>> 50
Run Code Online (Sandbox Code Playgroud)

虽然它对于String的参数工作得很好"2",但它没有为Character的参数提供预期的结果'2'。为什么会出现这种情况?

我想了解我是否错过了什么?为什么它返回 50 而不是 2?

谢谢


好的,我检查了 ASCII 表,它返回 50,因为 的索引Character '2'是 50。

java sqldatatypes

3
推荐指数
1
解决办法
2113
查看次数

如何计算两个浮点数的平均值?

在浮点运算中计算两个数字的平均值的最准确方法是什么?让我们考虑一下最常见的双精度 64 位数字。

  1. (a + b) / 2

  2. a / 2 + b / 2

  3. a + (b - a) / 2

这些计算平均值的方法可能会给出不同的结果,如下面的 C++ 代码所示:

double a = 1.2;
double b = 3.6;
double mean1 = (a + b) / 2.0;
double mean2 = a / 2.0 + b / 2.0;
double mean3 = a + (b - a) / 2.0;
cout << fixed << setprecision(20);
cout << "mean1: " << mean1 << endl;
cout << "mean2: " << mean2 …
Run Code Online (Sandbox Code Playgroud)

language-agnostic floating-point ieee-754

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

在c ++中的一行中有多个'if ... else ...'语句

如果我想将这段代码放到一行怎么办?

if (count >= 0 && count <= 199) {
        return 1;
    } else if (count >= 200 && count <= 399) {
        return 2;
    } else if (count >= 400 && count <= 599) {
        return 3;
    } else if (count >= 600 && count <= 799) {
        return 4;
    } else {
        return 5;
    }
Run Code Online (Sandbox Code Playgroud)

我只想知道这几行代码是否有任何捷径.

c++ if-statement

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