我正在尝试在XNA 4.0中生成球形地形,并且正在使用二十面体来实现具有均匀分布顶点的球体。我对Xna很新,我遇到了这个问题,试图创建一个类来处理球体的所有顶点。
这是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace Icosahedron_Test
{
class Icosahedron
{
public Icosahedron(int radius, int refinement, Vector3[] vertices)
: base(radius, refinement, vertices)
{
}
}
}
另外,如果有人知道如何创建二十面体,或者可以指导我一个教程,我会非常感激XD
答案 0 :(得分:3)
在您的代码示例中,您正在定义一个名为Icosahedron的新类。
您提供的代码称为构造函数,这是一种用于实例化新对象的特殊方法。
public Icosahedron(int radius, int refinement, Vector3[] vertices)
: base(radius, refinement, vertices)
写作时
:base(....)
您正在尝试调用您正在定义的当前类的基本调用。
C#支持一种名为Inheritance的机制,它允许通过扩展另一个类来扩展对象的行为。这可以用于添加/覆盖一些父对象的行为和能力。
在C#中,所有对象都是从System.Object派生的,因此,在您的代码中,您尝试使用3个参数调用System.Object的构造函数,但System.Object不存在此构造函数方法。
你需要对C#有一个很好的阅读以掌握基础知识:)
答案 1 :(得分:0)
您的Icosahedron
继承object
。
正如错误消息明确指出的那样,您无法调用base(...)
,因为object
没有这样的构造函数。