Forum: Topic

Draw Sprite Pos Fixed asset is fixing the draw_sprite_pos function with a shader and one script. It corrects "affine" drawing method without using D3D mode. Use very simple:

draw_sprite_pos_fixed(sprite, subimg, x1, y1, x2, y2, x3, y3, x4, y4, colour, alpha);

Demo: Download


  • True, fixed work of well-known function.
  • Perspective drawing.
  • Without using 3D.
  • Works fast and easy.
  • Optimized, clean and commented code.
  • Perfect work on all platforms - Windows, Mac, Linux, Android, iOS and other.
  • Technical support for all who purchased.
  • And even more.

You need intermediate knowledge of GML to use.

Please write a review if you like the asset and tell me your suggestions for improvement. If you found an error in my code or my English, please contact me ;)

My other assets! Fixture editor, LUT shader, physics rope, liquid simulation, textured terrain, custom savegame system, day night cycle, breakable physics objects, shaders and more.

End User Licence Agreement (EULA).

Version 1.0.0. Published November 1, 2016

Created with GameMaker: Studio v1.4.1763

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


Matthew P 02 September 2018

Works in GMS2 with minor modification

1) Copy the vector functions in the create event of o_controller to your game object's create event.
2) Change all references of "format_perspective" to "global.format_perspective" via Ctrl + Shift + f.

You may need to change the name of the script this asset adds. If so, change all references to the script to the new name.

Great Asset, thanks KeeVee!


Anonymous 10 March 2018

Does not work

It doesnt work, dont buy it.


Jason C 05 September 2017


Exactly what I needed for my project. A life saver!


Brad L 09 February 2017

Works perfect and easy to understand


Anonymous 14 January 2017


There is on tiny little bug, the var format_perspective should be done only ONCE in the entire game, this is very clean on the ///

But unfortunately it's created locally and wont work on a different OBJ that you uses the script.

Easy fix: Just Crtl+shift+F and replace 'format_perspective' to 'global.format_perspective'

OH, and it dont work on HTML5


Michiru N 09 December 2016


This is exactly for what i'm looking for. I cannot believe that the built-in function give that horrible results.
I made a few changes to make this more simpler, moved the code in the controller creation event to a script called draw_sprite_pos_fixed_init() (that we put in the very first room in the game) and the variable format_perspective changed to global.format_perspective, so please consider it. Thanks!

Package contents

Loading, please wait

What is the issue?

Back to Top