2014-12-24 72 views
0

我環顧了很多..我還沒有找到任何東西來幫助我。 這是我要找的結果:如何正確調用庫?

我正在使用XNA Game Studio 4.0,並且我想創建自己的庫以便在製作遊戲時使用,所以我不必重寫以前的代碼每次我想製作一款新遊戲時都會反覆使用。所以,我想打電話給圖書館作爲參考。我的庫:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using Microsoft.Xna.Framework; 
using Microsoft.Xna.Framework.Audio; 
using Microsoft.Xna.Framework.Content; 
using Microsoft.Xna.Framework.GamerServices; 
using Microsoft.Xna.Framework.Graphics; 
using Microsoft.Xna.Framework.Input; 
using Microsoft.Xna.Framework.Media; 

namespace iRaaptorLibraryXNA 
{ 
    public class XNALibrary 
    { 
     public static void consolePrint(string text) 
     { 
      var timeStamp = System.DateTime.Now.ToString(@"hh:mm:ss tt"); 
      Console.WriteLine("[" + timeStamp + "] CONSOLE: " + text); 
     } 
    } 
} 

我在調試時使用了很多consolePrint函數。 例如,如果我想打印一行,顯示成功,我希望能夠輸入

consolePrint("SUCCESS!") 

而且它打印到控制檯。我不想有重複鍵入:

XNALibraryXNA.consolePrint("SUCCESS!"); 

我想它縮短爲

consolePrint("SUCCESS!"); 

這裏是我的遊戲代碼:

using iRaaptorLibraryXNA; 

namespace xnaFun 
{ 
public class Game1 : Microsoft.Xna.Framework.Game 
    { 

     GraphicsDeviceManager graphics; 
     SpriteBatch spriteBatch; 

     public Game1() 
     { 
      graphics = new GraphicsDeviceManager(this); 
      Content.RootDirectory = "Content"; 
     } 

     protected override void Initialize() 
     { 

      base.Initialize() 
      XNALibrary.consolePrint("Initialized!"); 
     } 

     protected override void LoadContent() 
     { 
      iRaaptorLibraryXNA.consolePrint("Loading content!"); // DOES PRINT TO CONSOLE 
      spriteBatch = new SpriteBatch(GraphicsDevice); 
     } 

等..... 。

我希望我收錄了足夠的信息。 〜iRaaptor

TL; DR我想縮短

XMALibrary.consolePrint("text"); 

consolePrint("text"); 
+2

不輸入1個單詞的原因是什麼? – Mivaweb

+0

我寧願隨時鍵入consolePrint而不是XMALibrary.consolePrint。 +我在遊戲調試代碼塊組織中鍵入了很多consolePrint,並且輸入少了。 – iRaaptor

回答

0

這個類添加到庫中:然後

public class BaseGame : Microsoft.Xna.Framework.Game 
{ 
    protected void consolePrint(string message) 
    { 
     XNALibrary.consolePrint("Initialized!"); 
    } 
} 

你的遊戲類可以從繼承basegame並使用consolePrint方法:

public class MyGame : BaseGame 
{  
    protected override void Initialize() 
    { 
     base.Initialize() 
     consolePrint("Initialized!"); 
    } 
} 
+0

如果可能,請將這些更改應用於我的代碼,以幫助我嗎? – iRaaptor

+0

首先將'BaseGame'類添加到您的庫項目中。然後,將Game1類的基類從'Microsoft.Xna.Framework.Game'更改爲'BaseGame'。它應該如此簡單。 –