public void DrawSprite(RetroGraphicsSprite sprite, Vector2Int center, int index = 0) { var centerIndex = center.y * width + center.x; var sx = (sprite.SingleSize.x * index % sprite.Stride); var sy = (sprite.SingleSize.x * index / sprite.Stride) * sprite.SingleSize.y; //Debug.Log($"{sx},{sy}"); var l = sprite.SingleSize.x * sprite.SingleSize.y; for (int i = 0; i < l; i++) { var x = i % sprite.SingleSize.x + center.x; var y = i / sprite.SingleSize.x + center.y; var ind = sx + (i % sprite.SingleSize.x) + (sy + (i / sprite.SingleSize.x)) * sprite.Stride; if (sprite.Buffer[ind] == 255) { continue; } DrawPixel(x, y, sprite.Buffer[ind]); } }
public TestBall(RetroGraphicsSprite s, RetroScreenRenderer r) { Sprite = s; Renderer = r; center = new Vector2Int(Random.Range(0, 600), Random.Range(0, 400)); }