Hejsan! Jaa, jag har löst gåtan i hur man spegelvänder en surface nu nästan... Jag vet vad man ska använda men det fungerar inte.... Hittade en tråd på GameDev.net angående detta och där föreslogs att du skulle använda en inverterad SRC-rektangel för att få önskad effekt, men diskussionen landade till slut i att prestandan på vissa kort skulle bli för långsam efter en sådan funktion fick lov att emuleras ibland.Spegelvända en surface i directdraw
Finns det något sätt spegelvända en surface horisontellt före/när man ritar den till bufferten?
Till exempel om man har en sprite när en karaktär springer åt höger, så vill man att den ska kunna springa vänster utan att ha dubbla uppsättningar sprites.Sv: Vända en bitmap i directdraw
T.ex:
<code>
DrawEffect hej = new DrawEffects();
hej.EffectOperationMirrorLeftRight = true;
this.ulla.DrawBitmap2(this.Graphics.RenderSurface, hej);
//i en annan klass, där jag ritar bitmapen till backbuffern
public void DrawBitmap2(Surface TargetSurface, DrawEffects DE)
{
objectSizeRect = new Rectangle(new Point(0,0), new Size(100,100));
Rectangle destRect = new Rectangle(new Point((int)this.XPosition, (int)this.YPosition), new Size(objectSizeRect.Width, objectSizeRect.Height));
TargetSurface.Draw(destRect, bitmapSurface, objectSizeRect, DrawFlags.DoNotWait, DE);
}
</code>
ulla är alltså ett object av klassen som DrawBitmap2-metoden ligger i.
Grejjen är den att inget ändras när jag använder Draw Effect på detta sätt, allt är rättvänt vilket det inte ska vara....
Man kanske måste något mer? Någon som har något tips eller kod exempel då detta funkar?Sv: Vända en bitmap i directdraw
Summan blev att skapa speglade sprites och ha de med i sina grafikfiler, kräver mer lagringsminne, men snabbar upp markant!