你如何正确地在图书馆打电话?

时间:2014-12-24 09:27:00

标签: c# dll reference xna

我环顾四周......我找不到任何可以帮助我的东西。 这是我正在寻找的结果:

我正在使用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");

1 个答案:

答案 0 :(得分: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!");
    }
}