|
@@ -2,209 +2,210 @@
|
|
|
var width = window.innerWidth;
|
|
|
var height = window.innerHeight;
|
|
|
var PI=Math.PI;
|
|
|
+var baseSpeed=200;
|
|
|
console.log(width,height);
|
|
|
-
|
|
|
+var tqwidth = (width*0.75)|0
|
|
|
+var tqwbase = (((width-tqwidth)/2))
|
|
|
+var opponentcount=60;
|
|
|
+var opponentpause=10;
|
|
|
+var opponentspeed=150;
|
|
|
+var fatdownloadsize=200;
|
|
|
var game = new Phaser.Game(width, height, Phaser.CANVAS, 'gameContainer', { preload: preload, create: create, update: update, render: render });
|
|
|
|
|
|
function preload() {
|
|
|
-
|
|
|
- //game.load.tilemap('level1', 'assets/games/starstruck/level1.json', null, Phaser.Tilemap.TILED_JSON);
|
|
|
- game.load.image('tiles-1', 'tiles-1.png');
|
|
|
- game.load.spritesheet('dude', 'dude.png', 32, 48);
|
|
|
- game.load.spritesheet('droid', 'droid.png', 32, 32);
|
|
|
- game.load.image('starSmall', 'star.png');
|
|
|
- game.load.image('starBig', 'star2.png');
|
|
|
- game.load.image('background', 'background2.png');
|
|
|
+ game.load.image('player', 'player.png');
|
|
|
+ game.load.image('opponent', 'opponent.png');
|
|
|
+ game.load.image('opponent2', 'opponent2.png');
|
|
|
+ game.load.image('background', 'background.png');
|
|
|
|
|
|
}
|
|
|
|
|
|
-var map;
|
|
|
-var tileset;
|
|
|
-var layer;
|
|
|
var player;
|
|
|
-var facing = 'left';
|
|
|
-var jumpTimer = 0;
|
|
|
-var cursors;
|
|
|
-var jumpButton;
|
|
|
-var bg;
|
|
|
-
|
|
|
+var pad;
|
|
|
+var opponents=[];
|
|
|
+var fatdownload=[];
|
|
|
function create() {
|
|
|
|
|
|
game.physics.startSystem(Phaser.Physics.ARCADE);
|
|
|
|
|
|
game.stage.backgroundColor = '#000000';
|
|
|
|
|
|
- bg = game.add.tileSprite(0, 0, width, height, 'background');
|
|
|
- bg.fixedToCamera = true;
|
|
|
-
|
|
|
- map = game.add.tilemap(null,16,16);
|
|
|
-
|
|
|
- map.addTilesetImage('tiles-1');
|
|
|
-
|
|
|
- map.setCollisionByExclusion([ 13, 14, 15, 16, 46, 47, 48, 49, 50, 51 ]);
|
|
|
-
|
|
|
- //layer = map.createLayer('Tile Layer 1');
|
|
|
- mapwidth=100;
|
|
|
- mapheight=100;
|
|
|
- seed=9263;
|
|
|
- layer = map.create('level1', mapwidth, mapheight, 16, 16);
|
|
|
- // Un-comment this on to see the collision tiles
|
|
|
- // layer.debug = true;
|
|
|
-
|
|
|
- layer.resizeWorld();
|
|
|
-
|
|
|
- game.physics.arcade.gravity.y = 250;
|
|
|
-
|
|
|
- player = game.add.sprite(32, 32, 'dude');
|
|
|
- game.physics.enable(player, Phaser.Physics.ARCADE);
|
|
|
- generateWorld(layer,mapwidth,mapheight,seed);
|
|
|
- player.body.bounce.y = 0.2;
|
|
|
- player.body.collideWorldBounds = true;
|
|
|
- player.body.setSize(20, 32, 5, 16);
|
|
|
+ //calc 3/4 width;
|
|
|
+
|
|
|
+ console.log("TQWBase",tqwbase);
|
|
|
+ bg = game.add.tileSprite(tqwbase, 0, tqwidth, height, 'background');
|
|
|
+
|
|
|
+ //bg.fixedToCamera = true;
|
|
|
+
|
|
|
+ player = game.add.sprite((width/2)-16,height-200,'player')
|
|
|
+ this.game.physics.enable(player, Phaser.Physics.ARCADE);
|
|
|
+ player.body.drag.set(0.2);
|
|
|
+ player.body.maxVelocity.setTo(400, 400);
|
|
|
+ player.body.collideWorldBounds = true;
|
|
|
+ game.input.gamepad.start();
|
|
|
+ for(var oc=0;oc<opponentcount;oc++)
|
|
|
+ {//preseed of opponent cache
|
|
|
+ var flubberflargh = game.add.sprite(0,-100,'opponent');
|
|
|
+ this.game.physics.enable(flubberflargh, Phaser.Physics.ARCADE);
|
|
|
+ flubberflargh.body.drag.set(0.2);
|
|
|
+ flubberflargh.body.maxVelocity.setTo(400, 400);
|
|
|
+ opponents[oc]=flubberflargh;
|
|
|
+ }
|
|
|
+ for(var fc=0;fc<fatdownloadsize;fc++)
|
|
|
+ {//preseed of opponent cache
|
|
|
+ var blubberlutsch = game.add.sprite(0,-100-(10*fc),'opponent2');
|
|
|
+ this.game.physics.enable(blubberlutsch, Phaser.Physics.ARCADE);
|
|
|
+ blubberlutsch.body.drag.set(0.2);
|
|
|
+ blubberlutsch.body.maxVelocity.setTo(400, 400);
|
|
|
+ fatdownload[fc]=blubberlutsch;
|
|
|
+ }
|
|
|
+
|
|
|
+ //falls pad nicht funktioniert mittels GamepadDebug sample schauen welches pad das aktive ist und entsprechend umcoden
|
|
|
+ pad = game.input.gamepad.pad1;
|
|
|
+ pad.addCallbacks(this, { onConnect: addButtons });
|
|
|
+}
|
|
|
+function addButtons() {
|
|
|
|
|
|
- player.animations.add('left', [0, 1, 2, 3], 10, true);
|
|
|
- player.animations.add('turn', [4], 20, true);
|
|
|
- player.animations.add('right', [5, 6, 7, 8], 10, true);
|
|
|
+ // We can't do this until we know that the gamepad has been connected and is started
|
|
|
|
|
|
- game.camera.follow(player);
|
|
|
+ buttonA = pad.getButton(Phaser.Gamepad.XBOX360_A);
|
|
|
+ buttonB = pad.getButton(Phaser.Gamepad.XBOX360_B);
|
|
|
+ buttonX = pad.getButton(Phaser.Gamepad.XBOX360_X);
|
|
|
+ buttonY = pad.getButton(Phaser.Gamepad.XBOX360_Y);
|
|
|
|
|
|
- cursors = game.input.keyboard.createCursorKeys();
|
|
|
- jumpButton = game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);
|
|
|
+ buttonA.onDown.add(onDown, this);
|
|
|
+ buttonB.onDown.add(onDown, this);
|
|
|
+ buttonX.onDown.add(onDown, this);
|
|
|
+ buttonY.onDown.add(onDown, this);
|
|
|
|
|
|
-}
|
|
|
+ buttonA.onUp.add(onUp, this);
|
|
|
+ buttonB.onUp.add(onUp, this);
|
|
|
+ buttonX.onUp.add(onUp, this);
|
|
|
+ buttonY.onUp.add(onUp, this);
|
|
|
|
|
|
-function generateWorld(layer,width,height,seed)
|
|
|
-{
|
|
|
- //Math.seedrandom(seed);
|
|
|
- var h_base = height/2;
|
|
|
|
|
|
- //var i;var j;
|
|
|
- for(var h=0;h<height;h++)
|
|
|
+}
|
|
|
+var ocb = 0;
|
|
|
+function update() {
|
|
|
+ if(pad&&pad._rawPad)
|
|
|
{
|
|
|
- for(var w=0;w<width;w++)
|
|
|
+ var vx =0;
|
|
|
+ //TODO für später, vielleicht feiner abstufen, deadzone(!!!);
|
|
|
+ if (pad.isDown(Phaser.Gamepad.XBOX360_DPAD_LEFT) || pad.axis(Phaser.Gamepad.XBOX360_STICK_LEFT_X) < -0.1||pad.axis(Phaser.Gamepad.XBOX360_STICK_RIGHT_X) < -0.1)
|
|
|
{
|
|
|
- var wo = w/width;
|
|
|
- var cutoff=((Math.sin(wo*2*PI))*30)+40
|
|
|
- var mixx = (Math.random()*10)-5;
|
|
|
- if(h>cutoff+mixx)
|
|
|
+ if(player.x>=tqwbase)
|
|
|
{
|
|
|
- map.putTile(30, w, h, layer);
|
|
|
+ vx=-baseSpeed;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- var cavescount = 15;
|
|
|
- for(var c=0;c<cavescount;c++)
|
|
|
- {
|
|
|
- //var nope=Math.random()*w;
|
|
|
- //var nope=Math.random()*w;
|
|
|
- //var nope=Math.random()*w;
|
|
|
- //var nope=Math.random()*w;
|
|
|
- //var nope=Math.random()*w;
|
|
|
- //var nope=Math.random()*w;
|
|
|
- //var nope=Math.random()*w;
|
|
|
-
|
|
|
- var x1=Math.random()*w;
|
|
|
- var y1=Math.random()*h;
|
|
|
- var x2=Math.random()*w;
|
|
|
- var y2=Math.random()*h;
|
|
|
- console.log("x1",x1,"|y1",y1,"|x2",x2,"|y2",y2);
|
|
|
- var vec = new Phaser.Point(x1-x2,y1-y2);
|
|
|
- var length = vec.distance(new Phaser.Point(0,0));
|
|
|
- console.log(length);
|
|
|
- var base = new Phaser.Point(x1,y1);
|
|
|
- var vec = new Phaser.Point(x1-x2,y1-y2);
|
|
|
- var bdv = vec.normalize();
|
|
|
- var vec = new Phaser.Point(x1-x2,y1-y2);
|
|
|
- var dv = vec.perp().normalize();
|
|
|
- var vec = new Phaser.Point(x1-x2,y1-y2);
|
|
|
- console.log(dv,bdv);
|
|
|
- for(var i=0;i<length;i++)
|
|
|
+ else if (pad.isDown(Phaser.Gamepad.XBOX360_DPAD_RIGHT) || pad.axis(Phaser.Gamepad.XBOX360_STICK_LEFT_X) > 0.1||pad.axis(Phaser.Gamepad.XBOX360_STICK_RIGHT_X) > 0.1)
|
|
|
{
|
|
|
- var base = new Phaser.Point(x1,y1);
|
|
|
- var ix = i-length/2;
|
|
|
- var ofs = ix*ix*ix+3*ix*ix-3*ix+ix;
|
|
|
- ofs/=500
|
|
|
- //console.log(ofs);
|
|
|
- var point = base.add(bdv.x*i,bdv.y*i).add(dv.x*ofs,dv.y*ofs);
|
|
|
- //console.log(">>",dv.x,dv.y)
|
|
|
- base = new Phaser.Point(x1,y1);
|
|
|
- var point_lne = base.add(bdv.x*i,bdv.y*i);
|
|
|
- //map.putTile(19, point_lne.x|0, point_lne.y|0, layer);
|
|
|
- map.putTile(11, point.x|0, point.y|0, layer);
|
|
|
- //console.log(point.x|0,point.y|0);
|
|
|
- var dist = Math.random()*5+3;
|
|
|
- for(var d=-dist;d<dist;d++)
|
|
|
+ if(player.x<=(width-tqwbase-32))
|
|
|
{
|
|
|
- dx=bdv.x*d;
|
|
|
- dy=bdv.y*d;
|
|
|
- map.putTile(null, point.x+dx|0, point.y+dy|0, layer);
|
|
|
- map.putTile(null, point.x+dx-1|0, point.y+dy-1|0, layer);
|
|
|
- map.putTile(null, point.x+dx+1|0, point.y+dy+1|0, layer);
|
|
|
- map.putTile(null, point.x+dx-2|0, point.y+dy-2|0, layer);
|
|
|
- map.putTile(null, point.x+dx+2|0, point.y+dy+2|0, layer);
|
|
|
- map.putTile(null, point.x+dx-2|0, point.y+dy-1|0, layer);
|
|
|
- map.putTile(null, point.x+dx+2|0, point.y+dy+1|0, layer);
|
|
|
+ vx=baseSpeed;
|
|
|
}
|
|
|
}
|
|
|
+ /*
|
|
|
+ if (pad.isDown(Phaser.Gamepad.XBOX360_DPAD_UP) || pad.axis(Phaser.Gamepad.XBOX360_STICK_LEFT_Y) < -0.1||pad.axis(Phaser.Gamepad.XBOX360_STICK_RIGHT_Y) < -0.1)
|
|
|
+ {
|
|
|
+ vy=-baseSpeed;
|
|
|
+ }
|
|
|
+ else if (pad.isDown(Phaser.Gamepad.XBOX360_DPAD_DOWN) || pad.axis(Phaser.Gamepad.XBOX360_STICK_LEFT_Y) > 0.1||pad.axis(Phaser.Gamepad.XBOX360_STICK_RIGHT_Y) >0.1)
|
|
|
+ {
|
|
|
+ vy=baseSpeed;
|
|
|
+ }
|
|
|
+ */
|
|
|
+ player.body.velocity.x=vx;
|
|
|
+ //player.body.velocity.y=vy;
|
|
|
+ }
|
|
|
+ for(var opcol=0;opcol<opponentcount;opcol++)
|
|
|
+ {
|
|
|
+ game.physics.arcade.collide(player, opponents[opcol],
|
|
|
+ gameover,
|
|
|
+ function(){return true}, this);
|
|
|
+ }
|
|
|
+ if(ocb%opponentpause==0)
|
|
|
+ {
|
|
|
+ var nxo = opponents[(ocb/opponentpause)|0]
|
|
|
+ //console.log(nxo.y);
|
|
|
+ if(nxo.y<-50||nxo.y>height)
|
|
|
+ {
|
|
|
+ //console.log(ocb);
|
|
|
+ nxo.y=-30;
|
|
|
+ nxo.x=game.rnd.between(tqwbase,tqwbase+tqwidth-nxo.width);
|
|
|
+ nxo.body.velocity.y=opponentspeed;
|
|
|
+ nxo.body.velocity.x=0;
|
|
|
+ //var fff = game.rnd.between(0,1000);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
+ //ocb++;
|
|
|
+ }
|
|
|
+ ocb=(ocb+1)%(opponentcount*opponentpause);
|
|
|
+ var fdc = game.rnd.between(0,1000);
|
|
|
+ if(fdc>500&&fatdownload[0].y<-50)
|
|
|
+ {
|
|
|
+ var fdcolumn = game.rnd.between(tqwbase,tqwbase+tqwidth-fatdownload[0].width);
|
|
|
+ for(var fc=0;fc<fatdownloadsize;fc++)
|
|
|
+ {
|
|
|
+ var fds = fatdownload[fc];
|
|
|
+ fds.x=fdcolumn
|
|
|
+ fds.y=fds.y+70;
|
|
|
+ fds.body.velocity.y=opponentspeed;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else //fatdownload transferierend
|
|
|
+ {
|
|
|
+ for(var fcc=0;fcc<opponentcount;fcc++)
|
|
|
+ {
|
|
|
+ game.physics.arcade.collide(player, fatdownload[fcc],
|
|
|
+ gameover,
|
|
|
+ function(){return true}, this);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(fatdownload[fatdownloadsize-1].y>height)
|
|
|
+ {
|
|
|
+ for(var fc=0;fc<fatdownloadsize;fc++)
|
|
|
+ {
|
|
|
+ var fds = fatdownload[fc];
|
|
|
+ fds.x=0
|
|
|
+ fds.y=-100-(10*fc);
|
|
|
+ fds.body.velocity.y=0;
|
|
|
+ }
|
|
|
}
|
|
|
- //
|
|
|
}
|
|
|
|
|
|
-function update() {
|
|
|
-
|
|
|
- game.physics.arcade.collide(player, layer);
|
|
|
|
|
|
- player.body.velocity.x = 0;
|
|
|
-
|
|
|
- if (cursors.left.isDown)
|
|
|
+function gameover()
|
|
|
+{
|
|
|
+ console.log("Ätschebätsche");
|
|
|
+ alert("Packet Loss");
|
|
|
+}
|
|
|
+function onDown(button, value) {
|
|
|
+ /*
|
|
|
+ if (button.buttonCode === Phaser.Gamepad.XBOX360_A)
|
|
|
{
|
|
|
- player.body.velocity.x = -150;
|
|
|
-
|
|
|
- if (facing != 'left')
|
|
|
- {
|
|
|
- player.animations.play('left');
|
|
|
- facing = 'left';
|
|
|
- }
|
|
|
+ //TODO
|
|
|
}
|
|
|
- else if (cursors.right.isDown)
|
|
|
+ else if (button.buttonCode === Phaser.Gamepad.XBOX360_B)
|
|
|
{
|
|
|
- player.body.velocity.x = 150;
|
|
|
+ }*/
|
|
|
|
|
|
- if (facing != 'right')
|
|
|
- {
|
|
|
- player.animations.play('right');
|
|
|
- facing = 'right';
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
+}
|
|
|
+function onUp(button, value) {
|
|
|
+
|
|
|
+ /*
|
|
|
+ if (button.buttonCode === Phaser.Gamepad.XBOX360_A)
|
|
|
{
|
|
|
- if (facing != 'idle')
|
|
|
- {
|
|
|
- player.animations.stop();
|
|
|
-
|
|
|
- if (facing == 'left')
|
|
|
- {
|
|
|
- player.frame = 0;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- player.frame = 5;
|
|
|
- }
|
|
|
-
|
|
|
- facing = 'idle';
|
|
|
- }
|
|
|
+ //TODO
|
|
|
}
|
|
|
-
|
|
|
- if (jumpButton.isDown && player.body.onFloor() && game.time.now > jumpTimer)
|
|
|
+ else if (button.buttonCode === Phaser.Gamepad.XBOX360_B)
|
|
|
{
|
|
|
- player.body.velocity.y = -250;
|
|
|
- jumpTimer = game.time.now + 750;
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
+
|
|
|
function render () {
|
|
|
|
|
|
// game.debug.text(game.time.physicsElapsed, 32, 32);
|