Hvordan sætter man clipping? Jeg renderer en sprite med følgende kode og vil gerne clippe så tekst renderet i spriten ikke overskrider spritens bounds.
sprite.Begin(SpriteFlags.AlphaBlend); sprite.Draw(texture, new Vector3(), new Vector3(0, 0, 0), Color.White.ToArgb()); sprite.End();
Ved du ikke hvor store hvert element i dit billede er? Hvis du kigger i din sprite.Draw har den 4 overloads. En af dem er Draw(Texture srcTexture,Rectangle srcRectangle, Vector3 center, Vector3 position, int Color);
Her angiver Rectangle den portion af dit store sprite billede du vil tegne! Hvis fx hvert bogstav i dit billede fylder 100 x 100, skal du bare bare ligge 100 til hver gang du skal til næste bogstav.
Da du nok har et kvadratisk billede skal du lige regne rækker og koloner ud.
I GDI angiver man eks en clipping rectangle som der så ikke kan tegnes udenfor - prøver man på at tegne udenfor denne bliver det bare ignoreret. Let måde at clippe synes jeg.
Jeg forstår ikke helt. For hvis du angiver en rectangle på X gange Y ja så kan der ikke tegnes uden for dette! Om du så har angivet et størrer rectangle end selve texture er et andet problem end clipping!
Jeg synes bare det virker besværligt selv at skulle regne ud hvor bounds er for et givent objekt. Hvis foreksempel jeg har en texture A hvori der skal renderes en texture B, sådan at B kun renderes der hvor a blev renderet og ikke udenfor, så skal jeg selv udregne hvor B's source bounds går alt efter hvor den er pladseret i A. Sikkert fordi jeg er vant til at GDI selv laver den udregninger for mig.
Jeg ved ikke helt hva du mener med at du vil rendere en texure A "hvori" der skal renderes en texture B. Er det 2 textures du vil tegne oven på hinanden? Er den forreste så gennemsigtig? Eller er texture B mindre end A, så den ikke dækker det hele?
Der er masser af ting at bruge det til, eksempelvis hvis jeg vil rendere et vindu hvori der er nogle ting (textures) som ikke må renderes udenfor vindues rammen når der scrolles i vinduet, eller en liste control hvori der kan scrolles, så kun nogle af elementerne i listen er synlige etc. Eller i spil termer, et minimap der skal renderes i hjørnet af skærmen, det skal være rundt (svært at gøre med en rectangle). Jeg kan faktisk ikke komme itanke om nogensinde at have set et user interface der ikke brugte en eller anden form for clipping.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.