# mkxp extenions for Dancing Dragon Games / Symphony of War ## Graphics.resize_window(width, height, recenter) width: Integer height: Integer recenter: Boolean, false by default returns: nil Resizes the game window to width x height. If `recenter` is **true**, also center the window on the current screen. ## Bitmap.write_to_png(filename) filename: String returns: self Writes the contents of the bitmap to `filename`, in PNG format. ## Bitmap.v_flip() / .h_flip() returns: nil Flips the bitmap image vertically / horizontally. ## Input.scroll_v() returns: Integer Returns the cumulative amount of scroll events (negative if down, positive if up) inbetween the current and last `Input.update` call. ## Input::MOUSEX1 / ::MOUSEX2 These two constants representing two extra mouse buttons can be passed to the familiar #press?/#trigger?/#repeat? functions. ## MKXP.data_directory() returns: String Provides a PC-user-dependant, game-specific path to a writable directory, intended for save states, configuration and similar. In `mkxp.conf`, both `dataPathOrg` and `dataPathApp` keys need to be set, otherwise it returns a generic directory shared by all mkxp games. It is recommended (though not required) to not put any spaces in the config strings. Real life example: ``` dataPathOrg=dancingdragon dataPathApp=skyborn ``` ## MKXP.mouse_in_window() returns: Boolean Returns true if the mouse cursor is currently within the game window, false otherwise. ## Arbitrary key states Use `MKXP.raw_key_states` to get the current byte array of keystates, then call `#getbyte(scancode)` with `scancode` being one of the constants defined in `SDL_scancode_map.rb`. **0** means the key is released, **1** that it is pressed.