XNA no tiene ningún método que admita el dibujo circular.
Normalmente cuando tenía que dibujar un círculo, siempre con el mismo color, acababa de hacer una imagen con ese círculo y luego podía mostrarlo como un sprite.
Pero ahora el color del círculo se especifica durante el tiempo de ejecución, ¿alguna idea de cómo lidiar con eso?Cómo dibujar un círculo con un color específico en XNA?
10
A
Respuesta
37
Puede simplemente hacer una imagen de un círculo con un fondo Transparent
y la parte coloreada del círculo como White
. Entonces, cuando se trata de dibujar los círculos en el método Draw()
, seleccionar el tinte como lo que usted quiere que sea:
Texture2D circle = CreateCircle(100);
// Change Color.Red to the colour you want
spriteBatch.Draw(circle, new Vector2(30, 30), Color.Red);
Sólo por diversión, aquí es el método CreateCircle:
public Texture2D CreateCircle(int radius)
{
int outerRadius = radius*2 + 2; // So circle doesn't go out of bounds
Texture2D texture = new Texture2D(GraphicsDevice, outerRadius, outerRadius);
Color[] data = new Color[outerRadius * outerRadius];
// Colour the entire texture transparent first.
for (int i = 0; i < data.Length; i++)
data[i] = Color.TransparentWhite;
// Work out the minimum step necessary using trigonometry + sine approximation.
double angleStep = 1f/radius;
for (double angle = 0; angle < Math.PI*2; angle += angleStep)
{
// Use the parametric definition of a circle: http://en.wikipedia.org/wiki/Circle#Cartesian_coordinates
int x = (int)Math.Round(radius + radius * Math.Cos(angle));
int y = (int)Math.Round(radius + radius * Math.Sin(angle));
data[y * outerRadius + x + 1] = Color.White;
}
texture.SetData(data);
return texture;
}
Cuestiones relacionadas
- 1. Dibujar círculo simple en XNA
- 2. ¿Cómo dibujar un círculo transparente?
- 3. dibujar un círculo lleno
- 4. Cómo dibujar un círculo lleno en Java?
- 5. Cómo dibujar un círculo concéntrico en iphone?
- 6. Cómo dibujar un círculo sólido con cocos2d para iPhone
- 7. Dibuje un círculo con un número específico de píxeles
- 8. Cómo dibujar un círculo con particionado en Android?
- 9. WPF: ¿Cómo dibujar un círculo y arrastrarlo?
- 10. Cómo dibujar una elipse rellena con un cierto color?
- 11. Dibujar círculo en Android
- 12. OpenGL GLSL Shader: dibujar un círculo en un polígono plano
- 13. Cómo dibujar un Círculo de aspecto decente en Java
- 14. Cómo dibujar un círculo comenzando en la parte superior
- 15. Cómo dibujar un círculo en img usando php?
- 16. Cómo crear un círculo con un agujero en un círculo en WPF?
- 17. Python, dibuje un círculo con PIL
- 18. trazar un círculo con pyplot
- 19. ¿Cómo dibujar la ventana de XNA dentro de un panel?
- 20. Dibuja un círculo hueco en SVG
- 21. as3: dibuja un círculo con un agujero con solo actionscript
- 22. Creando un polígono 2D en XNA
- 23. ¿Cómo puedo cambiar un color de fuente específico en git?
- 24. Dibuje un círculo con ggplot2
- 25. Dibuja parte de un círculo
- 26. ¿Cómo dibujar en un JLabel?
- 27. Dibujar texto en superposición de círculo
- 28. Cómo dibujar 2D píxel por píxel en XNA?
- 29. ¿Hay alguna manera de dibujar un CGContextDrawRadialGradient como un óvalo en lugar de un círculo perfecto?
- 30. Retraso en un juego xna con temporizadores
Recuerdo haber leído algo así en los foros de XNA. – Mike