У меня проблема с источником Rectangle
, и из-за этого моя текстура не отображается на экране. Когда я использую метод Draw с источником как null, текстура работает.Невозможно установить текстуру в конструкторе
Я понятия не имею, что в этом плохого.
Также, если я поместил это в конструктор: source=new Rectangle((int)position.x,(int)position.Y, texture.Width/frameas, texture.Height)
. Я получаю ошибку
«использовать новый ключевое слово, чтобы создать объект»
Там нет ошибки в моей Game1 точно, как я только загрузки текстур, обновления и рисовать там.
public class Player
{
public Texture2D texture;
public Vector2 position;
public int speed, width,frames, jump;
public float scale;
public Vector2 velocity;
public float gravity;
public bool hasJumped;
public Rectangle source;
public Player(int x, int y)
{
speed = 5;
position.X = x;
position.Y = y;
scale = 1.8f;
frames = 4;
source = new Rectangle(x,y, 30,30);
}
public void LoadContent(ContentManager Content)
{
texture = Content.Load<Texture2D>("player");
}
public void Update(GameTime gameTime)
{
position += velocity;
KeyboardState keyState = Keyboard.GetState();
if (keyState.IsKeyDown(Keys.D))
{
velocity.X = 3f;
}
if (keyState.IsKeyDown(Keys.A))
{
velocity.X = -3f;
}
if (keyState.IsKeyDown(Keys.Space) && hasJumped==false)
{
position.Y -= 10f;
velocity.Y = -5f;
hasJumped = true;
}
if (hasJumped == true)
velocity.Y += 0.15f;
else
velocity.Y = 0f;
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, source, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);
}
}
}
Не могли бы вы предоставить еще некоторые детали на ошибку, которую вы описали с 'new' ключевое слово в конструкторе? Также укажите размер текстуры игрока и результирующие прямоугольники источника, которые вы ожидаете (и то, что вы на самом деле получаете) в конструкторе проигрывателя. – user1306322
source = new Rectangle ((int) position.x, (int) position.Y, (int) texture.Width/frameas, (int) texture.Height) –
@JackGajanan, который можно найти в вопросе, и я спросил для ** немного подробнее ** на нем. – user1306322