Update memory-manager-concurrent

This commit is contained in:
Cola-Echo
2026-01-21 18:11:33 +08:00
commit f51c4ef6dc
418 changed files with 400794 additions and 0 deletions

99
games/mario/gui/main.js Normal file
View File

@@ -0,0 +1,99 @@
$(window).on("load", function() {
var NATIVE = navigator.isCocoonJS,
MOBILE = "onorientationchange" in window ||
window.navigator.msMaxTouchPoints ||
window.navigator.isCocoonJS;
var canvas = document.getElementById("foreground"),
context = canvas.getContext("2d");
if (MOBILE) {
canvas.height = Math.round(Math.min(canvas.height, canvas.width * Math.min(window.innerHeight, window.innerWidth) / Math.max(window.innerHeight, window.innerWidth) ));
} else {
canvas.height = Math.round(Math.min(canvas.height, window.innerHeight));
adjustViewport(canvas, canvas.width, canvas.height);
}
console.log("canvas.width=" + canvas.width + " canvas.height=" + canvas.height);
_.extend(Backbone, {
NATIVE: NATIVE,
MOBILE: MOBILE,
HEIGHT: canvas.height,
WIDTH: canvas.width
});
Backbone.Controller = Backbone.Model.extend({
initialize: function(attributes, options) {
options || (options = {});
var controller = this;
this.debugPanel = new Backbone.DebugPanel({}, {color: "#fff"});
this.titleScreenGui = new Backbone.TitleScreenGui({
id: "titleScreenGui",
}, {
saved: {
level: 1,
coins: 10,
time: 1000000
}
});
// The game engine
this.engine = new Backbone.Engine({}, {
canvas: canvas,
debugPanel: this.debugPanel
});
// Controls
$(document).on("keypress.Controller", function(e) {
if (e.keyCode == 66 || e.keyCode == 98)
controller.engine.toggle(); // b to break the animation
});
this.listenTo(this.engine, "play", this.play);
this.listenTo(this.engine, "nextLevel", this.nextLevel);
this.showTitleScreen();
},
showTitleScreen: function() {
this.engine.stop();
this.engine.reset();
if (this.debugPanel) this.debugPanel.clear();
// Start everything
this.engine.set("clearOnDraw", true);
this.engine.add([
this.titleScreenGui,
this.debugPanel
]);
this.engine.start();
},
play: function() {
this.engine.stop();
this.engine.reset();
if (this.debugPanel) this.debugPanel.clear();
// TO DO: start a new game. Set the state and add world, input, etc to engine
},
nextLevel: function() {
this.engine.stop();
this.engine.reset();
if (this.debugPanel) this.debugPanel.clear();
// TO DO: continue an existing game. Reset the state and add world, input, etc to engine
}
});
var controller = new Backbone.Controller();
// Expose things as globals - easier to debug
_.extend(window, {
canvas: canvas,
context: context,
controller: controller,
});
});