我正在考虑用C#学习OpenGL,我打算使用OpenTK.我想知道OpenTK和"真正的OpenGL"的代码是否相同?我是否必须阅读有关OpenTK的书籍/教程,或者我是否可以阅读有关OpenGL的内容并仍然学会用C#编写代码?
我正在研究一个主要有大循环的程序(数百万次迭代).在循环中有函数调用,但调用的函数取决于用户指定的参数.因此,一个天真的解决方案是在main中的循环内部使用条件语句来检查用户指定的参数(请参阅代码片段).然而,这并不是最好的解决方案,因为我希望我的程序快速(优化非常重要).我也考虑过函数指针和虚函数,但这些对我来说似乎也很慢(函数指针到目前为止一直是我最好的选择,因为函数无论如何都无法内联,因为在运行时确定调用哪个函数).
我认为我的问题最好通过一个例子说明,因为我无法用文字表达:
int func1(params){
//Do stuff
}
int func2(params){
//Do other stuff
}
int func3(params){
//Do different stuff
}
int main(int argc, char** argv){
int some_value;
for(int i = 0; i < 10000000; i++){
if(argv[1] == option_one){
some_value += func1(params);
}
if(argv[1] == option_two){
some_value += func2(params);
}
if(argv[1] == option_three){
some_value += func3(params);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这感觉就像一个非常普遍的问题,所以有一个有效的解决方案吗?
提前致谢!
我正在进行XNA游戏,我遇到了一个问题.每当我按下游戏中的某个键时,按键触发的方法会被多次调用.例如,当用户按下攻击按钮(空间)时,角色在一次按键内攻击10次.我希望按键只触发一次方法.即使用户按下某个键,我也希望只调用一次方法.现在我已经通过在每次按下按钮后写一个thread.sleep来解决它,但这看起来非常不合适.我希望我的问题是可以理解的.提前致谢!
我正在学习C#,我正在尝试制作游戏而且我遇到了问题.我有两个班,我打电话Item
和Weapon
,Weapon
看起来是这样的:
class Weapon : Item
{
int damage;
int durability;
public void asd()
{
Weapon shortSword = new Weapon();
shortSword.dmg = 5;
shortSword.durability = 20;
Weapon woodenBow = new Weapon();
woodenBow.dmg = 3;
woodenBow.durability = 15;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有另一个包含不同方法的类,当玩家走在一个项目上并且它应该随机化该项时调用其中一个.但是我无法Weapon
从其他课程中找到对象.我如何联系他们,或解决这个问题?