我正在制作一个游戏脚本,我遇到了一个错误"类型' GTA.Graphics'没有定义构造函数"这是代码:
GTA.Graphics graphics = new GTA.Graphics();
public void showFPS()
{
string fps = Game.FPS.ToString();
if (Player.Character.isAlive)
{
graphics.DrawText(fps, 0.9f, 0.1f);
}
}
任何帮助将不胜感激。感谢。
@DOOMDUDEMX
我完成了
public void showFPS(GTA.GraphicsEventArgs e)
{
string fps = Game.FPS.ToString();
e.Graphics.DrawText(fps, 0.9f, 0.1f);
}
哪个有效但导致我的代码出现问题导致切换,我得到的错误是"没有过载' showFPS'匹配委托' GTA.KeyPressDelegate'"
以下是切换的代码:BindKey(Keys.F7,new KeyPressDelegate(showFPS));
Gtaforums.com上的LetsPlayOrDy给了我解决方案:
1:当BindKey接受一个函数时,该函数应该没有参数(如:public void showFPS())
2:如果你想画一些东西,你必须使用PerFrameDrawing。
和代码:
BindKey(Keys.F7, new KeyPressDelegate(showFPS));
PerFrameDrawing += tehDrawingMaster;
}
bool drawFPS = false;
public void showFPS()
{
drawFPS = !drawFPS;
}
public void tehDrawingMaster(object sender, GTA.GraphicsEventArgs e)
{
if (drawFPS) e.Graphics.DrawText(Game.FPS.ToString(), 20, 20, System.Drawing.Color.Black)
非常感谢你们。
答案 0 :(得分:0)
您需要了解有关面向对象的更多信息。
GTA.Graphics可能是一个抽象类,这意味着你无法创建它的实例。 您需要做的是创建一个继承自GTA.Graphics的新类(如果在您的情况下可能),并编写类似GTA.Graphics = new InheritedGraphics();
如果GTA.Graphics来自一个库,甚至可能还有其他类已经继承自GTA.Graphics,您可以创建一个实例。
但是,正如我所说,你需要看一下的是面向对象的编程。 您应该能够在关于该主题的任何书籍或文章中轻松找到构造函数的概念。