Change to ur prototype scheme
This commit is contained in:
parent
3b67b08683
commit
22fb3de804
38
breakout.js
38
breakout.js
|
@ -3,7 +3,7 @@ var score = 0;
|
||||||
var highscore = 0;
|
var highscore = 0;
|
||||||
var lives = 3;
|
var lives = 3;
|
||||||
|
|
||||||
var brick = World.spawn(gameobjects['brick']);
|
var brick = World.spawn(prototypes.get_ur('brick'));
|
||||||
var brickbb = brick.char.boundingbox;
|
var brickbb = brick.char.boundingbox;
|
||||||
var bwidth = brickbb.r - brickbb.l;
|
var bwidth = brickbb.r - brickbb.l;
|
||||||
var bheight = brickbb.t-brickbb.b;
|
var bheight = brickbb.t-brickbb.b;
|
||||||
|
@ -17,7 +17,7 @@ var lvlheight = 600;
|
||||||
|
|
||||||
//var frameworld = World
|
//var frameworld = World
|
||||||
|
|
||||||
var f = World.spawn(gameobjects['edge2d']);
|
var f = World.spawn(prototypes.get_ur('edge2d'));
|
||||||
f.edge2d.thickness = 10;
|
f.edge2d.thickness = 10;
|
||||||
f.edge2d.cpoints = Geometry.box(lvlwidth+f.edge2d.thickness*2,lvlheight);
|
f.edge2d.cpoints = Geometry.box(lvlwidth+f.edge2d.thickness*2,lvlheight);
|
||||||
f.draw = function() {
|
f.draw = function() {
|
||||||
|
@ -83,7 +83,7 @@ for (var row = 0; row < rows; row++) {
|
||||||
if (lvl.bricks[row][col] === 0)
|
if (lvl.bricks[row][col] === 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var brick = World.spawn(gameobjects['brick']);
|
var brick = World.spawn(prototypes.get_ur('brick'));
|
||||||
brick.powerup = function() {
|
brick.powerup = function() {
|
||||||
if (Math.random() < 0.1)
|
if (Math.random() < 0.1)
|
||||||
spawn_random_powerup(this.pos);
|
spawn_random_powerup(this.pos);
|
||||||
|
@ -101,23 +101,24 @@ for (var row = 0; row < rows; row++) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var flashtimer = timer.make(function() {
|
var flashtimer = timer.make(function() {
|
||||||
if (gameobjects['brick'].instances.length === 0) {
|
if (prototypes.get_ur('brick').instances.length === 0) {
|
||||||
flashtimer.kill();
|
flashtimer.kill();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var idx = Math.randomint(gameobjects['brick'].instances.length);
|
var idx = Math.randomint(prototypes.get_ur('brick').instances.length);
|
||||||
gameobjects['brick'].instances[idx].flash();
|
prototypes.get_ur('brick').instances[idx].flash();
|
||||||
flashtimer.time = Math.random_range(1,3);
|
flashtimer.time = Math.random_range(1,3);
|
||||||
}, Math.random_range(1,3));
|
}, Math.random_range(1,3));
|
||||||
|
|
||||||
var paddle = World.spawn(gameobjects['paddle']);
|
var paddle = World.spawn(prototypes.get_ur('paddle'));
|
||||||
paddle.extents = lvlwidth/2 - f.edge2d.thickness;
|
paddle.extents = lvlwidth/2 - f.edge2d.thickness;
|
||||||
paddle.pos = [0,-lvlheight/2+paddle.height*4];
|
paddle.pos = [0,-lvlheight/2+paddle.height*4];
|
||||||
paddle.setgrow(3);
|
paddle.setgrow(3);
|
||||||
paddle.lasership();
|
paddle.lasership();
|
||||||
|
Player.players[0].control(paddle);
|
||||||
|
|
||||||
Gamestate.spawnball = function() {
|
Gamestate.spawnball = function() {
|
||||||
var bb = World.spawn(gameobjects['ball']);
|
var bb = World.spawn(prototypes.get_ur('ball'));
|
||||||
bb.pos = bb.pos.add([0,-200]);
|
bb.pos = bb.pos.add([0,-200]);
|
||||||
bb.velocity = [30,200];
|
bb.velocity = [30,200];
|
||||||
bb.draw_layer = 3;
|
bb.draw_layer = 3;
|
||||||
|
@ -144,7 +145,7 @@ powerups.catch = mk_pup(Color.Arkanoid.Powerups.green, function() {
|
||||||
});
|
});
|
||||||
powerups.slow = mk_pup(Color.Arkanoid.Powerups.orange, function() {
|
powerups.slow = mk_pup(Color.Arkanoid.Powerups.orange, function() {
|
||||||
/* Slow all balls */
|
/* Slow all balls */
|
||||||
gameobjects['ball'].instances.forEach(function(x) {
|
prototypes.get_ur('ball').instances.forEach(function(x) {
|
||||||
x.velocity = x.velocity.scale(0.5);
|
x.velocity = x.velocity.scale(0.5);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -152,7 +153,7 @@ powerups.break = mk_pup(Color.Arkanoid.Powerups.purple, function() {
|
||||||
clear_level();
|
clear_level();
|
||||||
}, 0.5);
|
}, 0.5);
|
||||||
powerups.disruption = mk_pup(Color.Arkanoid.Powerups.cyan, function() {
|
powerups.disruption = mk_pup(Color.Arkanoid.Powerups.cyan, function() {
|
||||||
var ball = gameobjects['ball'].instances[0];
|
var ball = prototypes.get_ur('ball').instances[0];
|
||||||
if (!ball) return;
|
if (!ball) return;
|
||||||
|
|
||||||
ball.instandup();
|
ball.instandup();
|
||||||
|
@ -206,8 +207,8 @@ var last_powerup = {};
|
||||||
|
|
||||||
function spawn_random_powerup(pos)
|
function spawn_random_powerup(pos)
|
||||||
{
|
{
|
||||||
if (gameobjects['upgrade_drop'].instances.length !== 0) return;
|
if (prototypes.get_ur('upgrade_drop').instances.length !== 0) return;
|
||||||
var p = World.spawn(gameobjects['upgrade_drop']);
|
var p = World.spawn(prototypes.get_ur('upgrade_drop'));
|
||||||
p.pos = pos;
|
p.pos = pos;
|
||||||
|
|
||||||
var power = select_weighted(powerups.array());
|
var power = select_weighted(powerups.array());
|
||||||
|
@ -221,7 +222,7 @@ function spawn_random_powerup(pos)
|
||||||
}
|
}
|
||||||
|
|
||||||
function spawn_powerup(pos, fn) {
|
function spawn_powerup(pos, fn) {
|
||||||
var p = World.spawn(gameobjects['upgrade_drop']);
|
var p = World.spawn(prototypes.get_ur('upgrade_drop'));
|
||||||
p.pos = pos;
|
p.pos = pos;
|
||||||
p.upgrade = fn;
|
p.upgrade = fn;
|
||||||
return p;
|
return p;
|
||||||
|
@ -234,7 +235,7 @@ function multiball(n) {
|
||||||
|
|
||||||
function lostball()
|
function lostball()
|
||||||
{
|
{
|
||||||
if (gameobjects['ball'].instances.length === 0)
|
if (prototypes.get_ur('ball').instances.length === 0)
|
||||||
lostlife();
|
lostlife();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -254,7 +255,7 @@ function lostlife() {
|
||||||
};
|
};
|
||||||
|
|
||||||
Gamestate.spawnball();
|
Gamestate.spawnball();
|
||||||
var killbox = World.spawn(gameobjects['polygon2d']);
|
var killbox = World.spawn(prototypes.get_ur('polygon2d'));
|
||||||
|
|
||||||
killbox.polygon2d.points = Geometry.box(lvlwidth,30);
|
killbox.polygon2d.points = Geometry.box(lvlwidth,30);
|
||||||
killbox.pos = [0,-lvlheight/2];
|
killbox.pos = [0,-lvlheight/2];
|
||||||
|
@ -309,7 +310,7 @@ var gamepawn =
|
||||||
}
|
}
|
||||||
|
|
||||||
function clear_level() {
|
function clear_level() {
|
||||||
var bricks = gameobjects['brick'].instances.slice();
|
var bricks = prototypes.get_ur('brick').instances.slice();
|
||||||
bricks.forEach(function(x) { x.kill(); });
|
bricks.forEach(function(x) { x.kill(); });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -320,8 +321,8 @@ function gamegui() {
|
||||||
GUI.text_fn(`${score}`),
|
GUI.text_fn(`${score}`),
|
||||||
GUI.text_fn("HIGH SCORE", {color: Color.red}),
|
GUI.text_fn("HIGH SCORE", {color: Color.red}),
|
||||||
GUI.text_fn(`${highscore}`),
|
GUI.text_fn(`${highscore}`),
|
||||||
GUI.text_fn(`BRICKS: ${gameobjects['brick'].instances.length}`),
|
GUI.text_fn(`BRICKS: ${prototypes.get_ur('brick').instances.length}`),
|
||||||
GUI.text_fn(`BALLS IN PLAY: ${gameobjects['ball'].instances.length}`),
|
GUI.text_fn(`BALLS IN PLAY: ${prototypes.get_ur('ball').instances.length}`),
|
||||||
|
|
||||||
GUI.text_fn(`LIVES: ${lives}`),
|
GUI.text_fn(`LIVES: ${lives}`),
|
||||||
GUI.text_fn("YARKANOID", {color: [5,120,240,255]}),
|
GUI.text_fn("YARKANOID", {color: [5,120,240,255]}),
|
||||||
|
@ -343,3 +344,4 @@ let backtomain = function()
|
||||||
Register.gui.unregister(gamegui);
|
Register.gui.unregister(gamegui);
|
||||||
Player.players[0].uncontrol(gamepawn);
|
Player.players[0].uncontrol(gamepawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
4
game.js
4
game.js
|
@ -1,6 +1,2 @@
|
||||||
//var b = prototypes.from_file("ball.js");
|
|
||||||
//var ball1 = b.make();
|
|
||||||
//Log.warn(ball1.from);
|
|
||||||
//var ball2 = ball1.dup({pos:[100,100]});
|
|
||||||
Window.icon("powerup.png");
|
Window.icon("powerup.png");
|
||||||
World.load("startmenu");
|
World.load("startmenu");
|
||||||
|
|
|
@ -105,6 +105,7 @@ Object.assign(self, {
|
||||||
|
|
||||||
self.inputs = {};
|
self.inputs = {};
|
||||||
self.inputs.space = function() {
|
self.inputs.space = function() {
|
||||||
|
Log.warn("PADDLE SPACE");
|
||||||
if (this.sticky && this.stickball) {
|
if (this.sticky && this.stickball) {
|
||||||
this.stickball.velocity = this.stored_vel;
|
this.stickball.velocity = this.stored_vel;
|
||||||
this.stickball = {};
|
this.stickball = {};
|
||||||
|
|
Loading…
Reference in a new issue