谷歌充斥着Unity3D & XNA资源。搜索任何与C#相关的东西是非常困难的,如果结果绝不是基于Unity或XNA的。甚至找到好的教程,我不得不找到一本关于亚马逊的书,然后用-XNA -Unity google来作者,哈哈。如何将此C++代码转换为C#代码?我忘了什么语法?
我的C++代码很好地组织好,每个单独的主类都是它自己的文件。 Game.cpp,作为main(),我的游戏运行并调用Init,Render和Update。Game.cpp是main(),它用于调用Init,Render和Update。
class Game
{
public:
Game();
private:
void Init();
void Update(sf::Time deltaTime);
void Render();
sf::RenderWindow mWindow;
};
int main()
{
Init();
while (mWindow.isOpen())
{
Update(TimePerFrame);
Render();
}
}
和当然,Init.cpp
#include "Game.hpp"
void Game::Init()
{
mWindow.setVerticalSyncEnabled(true);
}
现在,我有SFML的C#绑定和代码::块切换到VS2012。我一直在用C++工作很久,以至于我在使用C#时遇到了一些麻烦。我通过一些教程来学习语法,但还是有些东西我还没有记住。显然,这是一个愚蠢的问题。但是,谷歌并没有太多的帮助,因为C#与Unity &的XNA结果是如何被压倒性的,我只是不记得如何做到这一点。
我想有相同的单独的文件,
Game.cs
Init.cs
Update.cs
Render.cs
但是,我甚至不能让它在一个类中发挥作用。
Game.cs
class Game
{
public void Main()
{
// Create the main window
RenderWindow mWindow = new RenderWindow(new VideoMode(1200, 1200), "SevenBlack");
mWindow.Closed += new EventHandler(OnClose);
Color windowColor = new Color(0, 0, 0);
//Initialize Game
Init();
while (mWindow.IsOpen())
{
Update(TimePerFrame);
}
Render();
}
}
private void Init()
{
mWindow.setVerticalSyncEnabled(true);
}
private void Update(long dt)
{
}
private void Render()
{
mWindow.Clear(windowColor);
mWindow.Display();
}
}
我得到“名 'mWindow' 不在当前情况下存在。
private void Game::Init()
{
mWindow.setVerticalSyncEnabled(true);
}
也不管用,因为这是C#。
为什么会有人低估这一点?我得到了答案...大声笑... – user2948630