Ver Fonte

first working version with basic packets & fat downloads

tgoerner há 9 anos atrás
pai
commit
2922294c92
6 ficheiros alterados com 168 adições e 160 exclusões
  1. 161 160
      1.js
  2. BIN
      background.png
  3. 7 0
      geistesblitz.txt
  4. BIN
      opponent.png
  5. BIN
      opponent2.png
  6. BIN
      player.png

+ 161 - 160
1.js

@@ -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);

BIN
background.png


+ 7 - 0
geistesblitz.txt

@@ -0,0 +1,7 @@
+Spielfeld: bottom-up langstrecke
+Thema: Daten auf ner Leitung, hindernissen ausweichen 
+Richtung: Endless Runner
+
+
+
+Geschwindigkeit der objekte zufällig

BIN
opponent.png


BIN
opponent2.png


BIN
player.png