谷歌充斥着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