Я пытаюсь создать свой первый игровой движок (в OpenTK и Im застрял. Я пытаюсь включить анимацию, и я пытаюсь использовать спрайты, потому что они значительно уменьшат размер файла.Анимированная анимация Sprite в OpenTK
Я знаю, что мне нужно использовать цикл рисовать все спрайты в последовательности, но я не имею ни малейшего понятия о том, что нужно сделать, чтобы заставить его работать с spritesheets.
Вот мой текущий рисунок код:
//The Basis fuction for all drawing done in the application
public static void Draw (Texture2D texture, Vector2 position, Vector2 scale, Color color, Vector2 origin, RectangleF? SourceRec = null)
{
Vector2[] vertices = new Vector2[4]
{
new Vector2(0, 0),
new Vector2(1, 0),
new Vector2(1, 1),
new Vector2(0, 1),
};
GL.BindTexture(TextureTarget.Texture2D, texture.ID);
//Beginning to draw on the screen
GL.Begin(PrimitiveType.Quads);
GL.Color3(color);
for (int i = 0; i < 4; i++)
{
GL.TexCoord2((SourceRec.Value.Left + vertices[i].X * SourceRec.Value.Width)/texture.Width, (SourceRec.Value.Left + vertices[i].Y * SourceRec.Value.Height)/texture.Height);
vertices[i].X *= texture.Width;
vertices[i].Y *= texture.Height;
vertices[i] -= origin;
vertices[i] *= scale;
vertices[i] += position;
GL.Vertex2(vertices[i]);
}
GL.End();
}
public static void Begin(int screenWidth, int screenHeight)
{
GL.MatrixMode(MatrixMode.Projection);
GL.LoadIdentity();
GL.Ortho(-screenWidth/2, screenWidth/2, screenHeight/2, -screenHeight/2, 0f, 1f);
}
Заранее благодарен! :)
Спасибо! Это отлично подойдет для меня, и я буду советоваться не с использованием конвейера с фиксированной функцией. Еще раз спасибо!! –
Ницца, рад сэкономить вам время. –