Skip to content

Commit

Permalink
FlxGame#new() auto-size, add FlxPoint#scale() (HaxeFlixel#1811)
Browse files Browse the repository at this point in the history
  • Loading branch information
buckle2000 authored and Aurel300 committed Apr 17, 2018
1 parent 1d8117c commit 9d36cc2
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 4 deletions.
14 changes: 11 additions & 3 deletions flixel/FlxGame.hx
Original file line number Diff line number Diff line change
Expand Up @@ -223,16 +223,16 @@ class FlxGame extends Sprite
/**
* Instantiate a new game object.
*
* @param GameSizeX The width of your game in game pixels, not necessarily final display pixels (see Zoom).
* @param GameSizeY The height of your game in game pixels, not necessarily final display pixels (see Zoom).
* @param GameSizeX The width of your game in game pixels, not necessarily final display pixels (see Zoom). If it is not a positive number, HaxeFlixel will auto detect the width according to the current window.
* @param GameSizeY The height of your game in game pixels, not necessarily final display pixels (see Zoom). If it is not a positive number, HaxeFlixel will auto detect the height according to the current window.
* @param InitialState The class name of the state you want to create and switch to first (e.g. MenuState).
* @param Zoom The default level of zoom for the game's cameras (e.g. 2 = all pixels are now drawn at 2x). Default = 1.
* @param UpdateFramerate How frequently the game should update (default is 60 times per second).
* @param DrawFramerate Sets the actual display / draw framerate for the game (default is 60 times per second).
* @param SkipSplash Whether you want to skip the flixel splash screen with `FLX_NO_DEBUG`.
* @param StartFullscreen Whether to start the game in fullscreen mode (desktop targets only), false by default
*/
public function new(GameSizeX:Int = 640, GameSizeY:Int = 480, ?InitialState:Class<FlxState>, Zoom:Float = 1, UpdateFramerate:Int = 60, DrawFramerate:Int = 60, SkipSplash:Bool = false, StartFullscreen:Bool = false)
public function new(GameSizeX:Int = 0, GameSizeY:Int = 0, ?InitialState:Class<FlxState>, Zoom:Float = 1, UpdateFramerate:Int = 60, DrawFramerate:Int = 60, SkipSplash:Bool = false, StartFullscreen:Bool = false)
{
super();

Expand All @@ -243,6 +243,14 @@ class FlxGame extends Sprite
// Super high priority init stuff
_inputContainer = new Sprite();

if (GameSizeX <= 0)
{
GameSizeX = Std.int(Lib.current.stage.stageWidth);
}
if (GameSizeY <= 0)
{
GameSizeY = Std.int(Lib.current.stage.stageHeight);
}
// Basic display and update setup stuff
FlxG.init(this, GameSizeX, GameSizeY, Zoom);

Expand Down
13 changes: 13 additions & 0 deletions flixel/math/FlxPoint.hx
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,19 @@ class FlxPoint implements IFlxPooled
return this;
}

/**
* Scale this point.
*
* @param k - scale coefficient
* @return scaled point
*/
public function scale(k:Float):FlxPoint
{
x *= k;
y *= k;
return this;
}

/**
* Helper function, just copies the values from the specified point.
*
Expand Down
2 changes: 1 addition & 1 deletion flixel/math/FlxVector.hx
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ class FlxVector extends FlxPoint
* @param k - scale coefficient
* @return scaled vector
*/
public inline function scale(k:Float):FlxVector
public override function scale(k:Float):FlxVector
{
x *= k;
y *= k;
Expand Down

0 comments on commit 9d36cc2

Please sign in to comment.