Resources > Coding
GM7/8 Problem with surfaces and views
Martijn dh:
Is your view 1:1 with the screen? If your view has a different size (for example a view of 240:320 is fitted to your larger monitor screen or visa versa) then you may need to determine the factor between both and then multiple (objLink - _x) by that amount.
Beyond that I'd need some screenshots to better understand your issue.
ZoSo:
Yeah, view is fitted to the screen. I'll try and take a little video when I get home from work.
EDIT: ok here it is
https://i.imgur.com/lRALXFW.mp4
Martijn dh:
Looks very similar to the problem I was thinking of: whenever your view moves then the light moves a constant factor extra on top of the view's movement itself.
I encountered a similar issue when drawing in the GUI draw event. My view of 320x240 was draw on screen as 640x480 pixels and I had to multiply all positions by the factor between that view and screen size. The reason is that a normal draw event will draw everything on a viewsurface of 320x240 (=the view settings) and gamemaker automatically resizes it for you. But if you draw directly to a surface that is screen sized (640x480) it will not. Also, if you draw in the GUI event you are also actually drawing to a screensized surface (640x480) so the same applies.
I solved my problem by calculating and applying the factor between the screen and view in order to adjust my draw function xposition, yposition, widthFactor and heightFactor. In GM:Studio I was able to calculate the factor with something like this:
--- Code: ---var factorW = display_get_gui_width()/view_wview[0];
--- End code ---
ZoSo:
Edit: Solved.
--- Code: ---draw_circle(objLink.x+12/2-view_xview,objLink.y+27/2-view_yview,16,false);
--- End code ---
Thanks for taking the time to help, I really appreciate it!
Keep an eye out for a demo coming up.
Navigation
[0] Message Index
[*] Previous page
Go to full version