我正在使用C#(这个问题也适用于像C++这样的类似语言),我试图找出最快,最有效的增量方法.在我的游戏中,它不仅仅是一个或两个增量,而是每秒300个增量.就像屏幕上每个精灵的帧都在递增,我的RPG角色的速度和位置,相机的偏移等等.所以我在想,最有效的方法是什么?例如,y_pos我可以做的每次运动增加5 :
1.
Player.YPos += 5;
Run Code Online (Sandbox Code Playgroud)
2.
Player.YPos = Player.YPos + 5;
Run Code Online (Sandbox Code Playgroud)
3.
for (int i = 0; i < 5; i++)
{
Player.YPos++;
}
Run Code Online (Sandbox Code Playgroud)
哪个是最有效的(也是最快的)?
我听说C++ .NET是最快的,C#是下一个,其次是VB .NET,而Iron-Python和Boo等语言在性能方面排在最后.如果所有.NET语言编译为中间字节代码都相同,为什么性能上有差异?
对于Boo和Python来说,这是可以理解的,因为所有类型都必须在运行时进行评估.但为什么C++和C#等语言之间存在差异?
我想知道是否有任何编译器支持相当数量的新C11标准.寻找像Generic Selection等功能.
有什么建议?
为什么void总是不鼓励在C++中设置入口点的返回类型,后来被标准删除并被现代编译器禁止?为什么它被认为是不好的做法?
现在,据我所知,C#和Java都允许入口点的返回类型为voidie
static void main(String[] args) /* Java */
static void Main(string[] args) /* C# */
Run Code Online (Sandbox Code Playgroud)
C#和Java程序员并不认为这是不好的做法,事实上他们经常使用它.
这是其他语言(只打算是,我怀疑C++会成功在这十年中,至少)C的可能接班人++像d编程语言或瓦拉也允许void main().正如您所看到的,我怀疑C++社区是否将其从标准中删除,因为它过于模糊或不受欢迎.
所以我的问题是,为什么C++社区删除了void main()?这有什么问题?
我们可以像命名空间一样对类名进行别名吗?
例如:
namespace longname{ }
namespace ln = longname;// namespace aliasing
class LONGNAME {};
class LN = LONGNAME; // how to do class name aliasing, if allowed?
Run Code Online (Sandbox Code Playgroud) #include <iostream>
#include <cstdlib>
#include <cstdio>
#include <ctime>
int main(int argc, char* argv[])
{
std::clock_t start;
double duration;
std::cout << "Starting std::cout test." << std::endl;
start = std::clock();
for (int i = 0; i < 1000; i++)
{
std::cout << "Hello, World! (" << i << ")" << std::endl;
}
duration = (std::clock() - start) / (double) CLOCKS_PER_SEC;
std::cout << "Ending std::cout test." << std::endl;
std::cout << "Time taken: " << duration << std::endl;
std::system("pause");
std::cout << "Starting std::printf test." …Run Code Online (Sandbox Code Playgroud) 在C++中使用void没有参数的函数,例如:
class WinMessage
{
public:
BOOL Translate(void);
};
Run Code Online (Sandbox Code Playgroud)
是多余的,你不妨写一下 Translate();.
我,我自己通常都包括它,因为它在支持IDE显示的代码完成时有点帮助void,因为它确保了该函数绝对没有参数.
我的问题是,添加无void参数函数是一个好习惯吗?现代代码应该鼓励它吗?
我在Pygame中写了一个简单的自上而下的RPG,我发现它很慢......虽然我不希望python或pygame匹配用C/C++或事件Byte Compiled等编译语言制作的游戏的FPS像Java一样,但目前的pygame的FPS仍然是15.我尝试渲染16色Bitmaps而不是PNG或24位图,这略微提高了速度,然后在绝望中,我将所有内容切换为黑白单色位图,使FPS达到35.但不是更多.现在根据我读过的大多数游戏开发书籍,为了让用户对游戏图形完全满意,2d游戏的FPS至少应该是40,那么有什么方法可以提高pygame的速度吗?
在我的项目中,我有一个shapes包含我为我的图形程序设计的形状的包,例如Rectangle,Circle.我还有一两个与java.awt类名相同的包.
现在,因为我不想重命名我的代码库中的每个类,为了向我的源文件显示我所说的类,当我声明一个新的Rectangle时,我需要:
1-显式导入矩形类,即导入shapes.Rectangle
要么
2-只导入我需要的java.awt类而不导入java.awt.*,它自动包含awt.Rectangle
现在问题是两种方式导致大量导入,我目前在每个源文件中平均有15-25个导入,这严重地使我的代码混乱和混乱.
代码中的导入太多是件坏事吗?有没有办法解决?
我希望每个角色都是不同的颜色.
例如,
cout << "Hello world" << endl;
Run Code Online (Sandbox Code Playgroud)
我知道这可以做到,我只是不知道它的代码.
我想将背景颜色更改为白色.我该怎么办?