mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-12-29 08:16:58 +00:00
d0800fcd39
this is a huge ass commit so cam pls dont merge until u thoroughly check it and know what changed and moved and whatever. got rid of a lot of ludum dare era commented out shit as well. feel free to ask for clarification or add shit back if it's better suited here
170 lines
4.3 KiB
Haxe
170 lines
4.3 KiB
Haxe
package;
|
|
|
|
import flixel.FlxGame;
|
|
import flixel.FlxState;
|
|
import flixel.util.FlxColor;
|
|
import openfl.Assets;
|
|
import openfl.Lib;
|
|
import openfl.display.FPS;
|
|
import openfl.display.Sprite;
|
|
import openfl.events.AsyncErrorEvent;
|
|
import openfl.events.Event;
|
|
import openfl.events.MouseEvent;
|
|
import openfl.events.NetStatusEvent;
|
|
import openfl.media.Video;
|
|
import openfl.net.NetConnection;
|
|
import openfl.net.NetStream;
|
|
|
|
class Main extends Sprite
|
|
{
|
|
var gameWidth:Int = 1280; // Width of the game in pixels (might be less / more in actual pixels depending on your zoom).
|
|
var gameHeight:Int = 720; // Height of the game in pixels (might be less / more in actual pixels depending on your zoom).
|
|
var initialState:Class<FlxState> = InitState; // The FlxState the game starts with.
|
|
var zoom:Float = -1; // If -1, zoom is automatically calculated to fit the window dimensions.
|
|
#if web
|
|
var framerate:Int = 60; // How many frames per second the game should run at.
|
|
#else
|
|
var framerate:Int = 144; // How many frames per second the game should run at.
|
|
|
|
#end
|
|
var skipSplash:Bool = true; // Whether to skip the flixel splash screen that appears in release mode.
|
|
var startFullscreen:Bool = false; // Whether to start the game in fullscreen on desktop targets
|
|
|
|
// You can pretty much ignore everything from here on - your code should go in your states.
|
|
|
|
public static function main():Void
|
|
{
|
|
Lib.current.addChild(new Main());
|
|
}
|
|
|
|
public function new()
|
|
{
|
|
super();
|
|
|
|
#if polymod
|
|
polymod.Polymod.init({
|
|
modRoot: "mods",
|
|
dirs: ['testing123'],
|
|
frameworkParams: {
|
|
assetLibraryPaths: [
|
|
"songs" => "songs", "shared" => "shared", "tutorial" => "tutorial", "week1" => "week1", "week2" => "week2", "week3" => "week3",
|
|
"week4" => "week4", "week5" => "week5", "week6" => "week6", "week7" => "week7", "week8" => "week8"
|
|
]
|
|
},
|
|
framework: OPENFL,
|
|
errorCallback: function(error:polymod.Polymod.PolymodError)
|
|
{
|
|
trace("POLYMOD ERROR! code = "
|
|
+ error.code
|
|
+ " severity = "
|
|
+ error.severity
|
|
+ " origin = "
|
|
+ error.origin
|
|
+ " message = "
|
|
+ error.message);
|
|
}
|
|
});
|
|
#end
|
|
|
|
if (stage != null)
|
|
{
|
|
init();
|
|
}
|
|
else
|
|
{
|
|
addEventListener(Event.ADDED_TO_STAGE, init);
|
|
}
|
|
}
|
|
|
|
private function init(?E:Event):Void
|
|
{
|
|
if (hasEventListener(Event.ADDED_TO_STAGE))
|
|
{
|
|
removeEventListener(Event.ADDED_TO_STAGE, init);
|
|
}
|
|
|
|
setupGame();
|
|
}
|
|
|
|
var video:Video;
|
|
var netStream:NetStream;
|
|
private var overlay:Sprite;
|
|
|
|
public static var fpsCounter:FPS;
|
|
|
|
private function setupGame():Void
|
|
{
|
|
// Lib.current.stage.color = null;
|
|
|
|
var stageWidth:Int = Lib.current.stage.stageWidth;
|
|
var stageHeight:Int = Lib.current.stage.stageHeight;
|
|
|
|
if (zoom == -1)
|
|
{
|
|
var ratioX:Float = stageWidth / gameWidth;
|
|
var ratioY:Float = stageHeight / gameHeight;
|
|
zoom = Math.min(ratioX, ratioY);
|
|
gameWidth = Math.ceil(stageWidth / zoom);
|
|
gameHeight = Math.ceil(stageHeight / zoom);
|
|
}
|
|
|
|
#if !debug
|
|
initialState = TitleState;
|
|
#end
|
|
|
|
addChild(new FlxGame(gameWidth, gameHeight, initialState, zoom, framerate, framerate, skipSplash, startFullscreen));
|
|
|
|
#if !mobile
|
|
fpsCounter = new FPS(10, 3, 0xFFFFFF);
|
|
addChild(fpsCounter);
|
|
#end
|
|
/*
|
|
video = new Video();
|
|
addChild(video);
|
|
|
|
var netConnection = new NetConnection();
|
|
netConnection.connect(null);
|
|
|
|
netStream = new NetStream(netConnection);
|
|
netStream.client = {onMetaData: client_onMetaData};
|
|
netStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, netStream_onAsyncError);
|
|
|
|
#if (js && html5)
|
|
overlay = new Sprite();
|
|
overlay.graphics.beginFill(0, 0.5);
|
|
overlay.graphics.drawRect(0, 0, 560, 320);
|
|
overlay.addEventListener(MouseEvent.MOUSE_DOWN, overlay_onMouseDown);
|
|
overlay.buttonMode = true;
|
|
addChild(overlay);
|
|
|
|
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnection_onNetStatus);
|
|
#else
|
|
netStream.play("assets/preload/music/dredd.mp4");
|
|
#end
|
|
*/
|
|
}
|
|
/*
|
|
private function client_onMetaData(metaData:Dynamic)
|
|
{
|
|
video.attachNetStream(netStream);
|
|
|
|
video.width = video.videoWidth;
|
|
video.height = video.videoHeight;
|
|
}
|
|
|
|
private function netStream_onAsyncError(event:AsyncErrorEvent):Void
|
|
{
|
|
trace("Error loading video");
|
|
}
|
|
|
|
private function netConnection_onNetStatus(event:NetStatusEvent):Void
|
|
{
|
|
}
|
|
|
|
private function overlay_onMouseDown(event:MouseEvent):Void
|
|
{
|
|
netStream.play("assets/preload/music/dredd.mp4");
|
|
}
|
|
*/
|
|
}
|