Xtremebergi
Lt. Junior Grade
- Registriert
- Feb. 2008
- Beiträge
- 312
Zum 2. Problem: typeof(int) !!!
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
public void NewCreateNewMap()
{
int[] MapSlope = BasicsMap.CreateMapSlope();
BasicsMap.Map.MapTexture = new Texture(graphicDevice, 1680, 1050, 0, Usage.None, Format.R5G6B5, Pool.Managed);
int[,] numArray = (int[,])BasicsMap.Map.MapTexture.LockRectangle(typeof(int), 0, LockFlags.None, new int[] { 1680,1050 });
for (int x = 0; x < 1680; x++)
{
for (int y = 0; y < 1050; y++)
{
numArray[x, y] = Color.Red.ToArgb();
}
}
BasicsMap.Map.MapTexture.UnlockRectangle(0);
}
private void DrawMap()
{
sprite.Begin(SpriteFlags.AlphaBlend);
sprite.Draw2D(BasicsMap.Map.MapTexture, Rectangle.Empty, new SizeF(1680, 1050), new PointF(0f, 0f), Color.White);
sprite.End();
}
1) Xtremebergi hatte in seinem Beispiel new Texture(...,...,...,1, und Du 0, was macht der Wert? Was für andere LockFlags gibt es denn noch evtl. LockFlags.ReadWrite ??MikeLadurner schrieb:1. Ich denke um alle Pixel zu erhalten mit dem LockRectangle muss ich wohl beim int[,] Index hinten beim LockRectangle auch 1680 und 1050 nehmen oder? Wenn ich das aber laufen lasse erhalte ich einen AccessViolation Error. Warum des? Wie kann ich alle Pixel erhalten?
2. Wenn ich das mit 1680 und z.b.50 mache dann gehts, dann bekomm ich oben einige Pixel. Nun will ich diese Rot einfärben. Mit Color.Red.ToARGB(). Nun werden diese aber Grau gemacht. Liegt das am Sprite.Draw2D(.....Color.White)?
3. Ich habe darunter eine Blaue Zeichnung mit Wolken. Wie kann ich einzelne Pixel der Textur durchsichtig machen? wenn ich Transparent angebe wird es weiss.Blau, wenn ich es gar nicht setze, dann wird es schwarz.
Surface mipmapLevel0 = myTexture.GetSurfaceLevel(0);
int width = mipmapLevel0.Description.Width;
int height = mipmapLevel0.Description.Height;