XNA Game Studio 4.0 - Класс автоматической генерации ландшафта - Ошибка

программирование С# Ландшафт XNA 4

В одном блоге наткнулся на листинг автоматической генерации ландшафта (а не с карты высот). Решил применить этот листинг в своей работе, но вылетает ошибка:
Ошибка "Microsoft.Xna.Framework.DrawableGameComponent" не содержит конструктор, который принимает аргументы "0" C:\Users\Roman_prog\documents\visual studio 2010\Projects\Test Game\Test Game\Test Game\Class\Terrain.cs
Как устранить ошибку?
Использую:
Visual Studio 2010 Ultimate
XNA Game Studio 4.0
C#

Вот листинг:
(Всё, что в "[ ... ]" - это свёрнутый код. для экономии места в вопросе)
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 GameTest.Scene
{
public partial class Terrain : DrawableGameComponent
{
public int TerrainSize = 512; //Размерность карты - число кратное 2
private float[,] terrain; // Массив вычисленных координат

public float roughnessConstant = 0.98f;
public int randomRange; // Пределы случайной генерации
public float upperRangeAdjust = 0.24f;

private int size;
private int stride;
private Random random;
private VertexPositionNormalTexture[] vertices;
private Effect effect;
private int[] indices;

//При инициализации вызываем метод для генераци координат, индексов и нормалей

public override void Initialize() [ ... ]

//Теперь сам метод генерации координат:

private void GenerateSurface() [ ... ]

//Теперь вычисление нормалей:

private void SetUpVertices() [ ... ]

//И наконец отрисовка:

public override void Draw(GameTime gameTime) [ ... ]
}
}
Ответы:
Вам нужно описать конструктор класса Terrain передав ему те аргументы, которые требуются в конструкторе класса-родителя DrawableGameComponent
Если мне не изменяет память то у DrawableGameComponent конструктор принимает экземпляр класса Game, и если это так, то вам нужно добавить в определение класса Terrain следующий код
public Terrain(Game game) : base(game) { }
скорее всего код для старой версии xna, в 4й версии, если не изменяет память, изменились параметры конструктора DrawableGameComponent. Где то на xnadex.ru была хорошая справка как переходить на новую версию и что в ней изменилось.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.