About Monkey 2 › Forums › Monkey 2 Programming Help › Is there a way to change the window size/resolution?
This topic contains 8 replies, has 5 voices, and was last updated by
Gwenel
10 months, 1 week ago.
-
AuthorPosts
-
June 12, 2018 at 8:15 pm #14821
I’ve been trying to figure this out, but there doesn’t seem to be an obvious way to do it.
I also tried recreating the window with a new size, but that leaves me with two windows because I don’t know how to destroy the first one.
June 12, 2018 at 11:52 pm #14823The easiest way is to override the window size in the window constructor.
Have a look at the mojo template project – replace the 640,480 with your desired size:
Monkey123456789101112131415161718192021222324252627282930313233Namespace myapp#Import "<std>"#Import "<mojo>"Using std..Using mojo..Class MyWindow Extends WindowMethod New( title:String="Simple mojo app",width:Int=640,height:Int=480,flags:WindowFlags=Null )Super.New( title,width,height,flags )EndMethod OnRender( canvas:Canvas ) OverrideApp.RequestRender()canvas.DrawText( "Hello World!",Width/2,Height/2,.5,.5 )EndEndFunction Main()New AppInstanceNew MyWindowApp.Run()EndJune 13, 2018 at 12:02 am #14824Ah, sorry, I should’ve been more clear… :\
I meant it as in changing the window size during runtime. If I could do that I might have different resolution options that the player can choose from.
June 13, 2018 at 12:40 am #14828The View.Frame property can be used to ‘layout’ views – try adding this to your Window class:
Monkey1234Method Resize( width:Int,height:Int )Frame=New Recti( 0,0,width,height ).Centered( New Recti( 0,0,App.DesktopSize ) )EndI’m reluctant to add this to the Window class as a ‘core’ method as it duplicates functionality that’s already there (ie: Frame). However, perhaps it would make sense to add some stuff like via built-in extension methods? This approach worked out well with Entity class IMO.
And of course if your doing fullscreen there is also BeginFullscreen/EndFullscreen…
June 13, 2018 at 2:23 am #14830Hey that works!
Thanks.
Well, I think maybe at least there could be a sample program that uses it. Maybe Pakz could add it to his collection of examples. Unless he already has it and I overlooked it…
June 13, 2018 at 6:23 am #14832Or, you could add this to mojo/app/windows:
[/crayon]Monkey123456789[crayon-5cba16d4b77ed542823536 inline="true" ] method WindowResize( x:int, y:int, width:int, height:int)SDL_SetWindowPosition( _sdlWindow, x, y )SDL_SetWindowSize( _sdlWindow, width, height )_frame = GetFrame()Frame = _frame_weirdHack = trueEndJune 14, 2018 at 7:33 am #14840add some stuff like via built-in extension methods?
Yes a simpler official resize method would be nice…
June 14, 2018 at 5:27 pm #14843> Yes a simpler official resize method would be nice…
Ok, will do.
June 15, 2018 at 12:04 pm #14848I have a request, would it possible to also create a flag for the titlebar on Android so it could be toggled at runtime?
-
AuthorPosts
You must be logged in to reply to this topic.