|Topic was automatically imported from the old Question2Answer platform.
|Published before Godot 3 was released.
Short version: Can I get a sprite’s position on the screen in the same way that I can get the mouse position? Particularly a sprite on a ViewportSprite with a shader on it? (If the sprite appears in the top left, it returns 0,0, etc…)
Seems like I’m probably missing something simple, but…
I’ve got a mode 7 shader going on a ViewportSprite which lets me make 2d maps appear all nice and fake 3D (like mario kart!). What I want is to be able to place little markers on my 2D maps and use their positions to create sprites in the fake 3D space that aren’t affected by the actual shader (but still use the position from it).
In order to have objects show up in “3D” positions, I could do way more math than my head wants to understand (I’m trying!), but if I could just figure out how to get the sprite to return it’s visible position on the screen the same way the mouse does, I could let the math that’s already there handle it… (This would also make the scaling way easy)
It’s also kinda tricky, cause the shader only shows a portion of the actual viewport. That’s why I need to read all the sprite coordinates based on what you see after the shader, as opposed to just what the viewport returns.
I’ve only been using Godot a couple weeks, but I am loving it.
I am having a hard time understanding how to use matrices and transforms and the like. If that’s useful here, I’d love some help understanding that stuff, as well.