Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Monogame XNA transform matrix for a single object?

I have read a few tutorials explaining transform matrices for XNA/Monogame. The problem is that these matrices are applied to

SpriteBatch.Begin(...matrix);

This means that all Draw code will be transformed. How do I apply a transformation matrix to a single drawable object? In my case I want to transform a scrolling background so that it automatically wraps.

SpriteBatch.Draw(.. this has no transform matrix parameter?);
like image 910
Kokodoko Avatar asked Oct 30 '25 08:10

Kokodoko


1 Answers

If you want to use a specific spritebatch begin call for some drawing calls only, you can start a new one as needed.

for example

SpriteBatch.Begin(...matrix);

//Draw stuff with matrix

SpriteBatch.End();

SpriteBatch.Begin();

//do the rest of the drawing

SpriteBatch.End();

this is commonly used to draw a bunch of objects with a "camera" matrix at appropraite position, scale and rotation, then another spritebatch.Begin is called to draw the flat, static UI on top, etc.

like image 102
irreal Avatar answered Nov 01 '25 00:11

irreal



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!