Я создал два класса, которые замещают функцию Point
(оба варианты) просто проверить их, это то, как я их создал:Подкласса инициализация члена
Entity.cs:
namespace Xnagame
{
class Player
{
public class float2
{
public float X { get; set; }
public float Y { get; set; }
}
public class int2
{
public int X { get; set; }
public int Y { get; set; }
}
public int2 Position { get; set; }
public int angle { get; set; }
public float speed { get; set; }
public float2 velocity { get; set; }
public Player CreatePlayer()
{
Position = new Player.int2();
Player player = new Player();
return player;
}
}
}
Как вы можете видеть, оба класса Point имеют переменную X
и Y
(я не уверен, что это способ их настройки, если это не рассказать мне), и эти классы используются в позиции и экземпляры скорости, которые создаются в методе CreatePlayer()
.
Game1.cs:
namespace Xnagame
{
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
private Texture2D playerimage;
private Texture2D background;
Player player = Player.CreatePlayer();
Теперь проблема в том, что, когда CreatePlayer()
метод пытается вернуть это «игрок» на местных игроков это дает:
Ссылка на объект требуется для нестатического поля, метода или свойства
Xnagame.Player.CreatePlayer()
ошибка.
Я также пробовал с новым ключевым словом, и он дал мне:
Xnagame.Player.CreatePlayer()
является метод, но используется как тип.
http://msdn.microsoft.com/en-US/library/ms173115%28v=vs.80%29.aspx – BartoszKP