Browse Source

more progress, scores & visuals

tgoerner 9 years ago
parent
commit
d228be7efe
6 changed files with 150 additions and 22 deletions
  1. 150 22
      1.js
  2. BIN
      background.png
  3. BIN
      opponent2.png
  4. BIN
      opponent2b.png
  5. BIN
      opponentb.png
  6. BIN
      player.png

+ 150 - 22
1.js

@@ -2,20 +2,28 @@
 var width = window.innerWidth;
 var height = window.innerHeight;
 var PI=Math.PI;
-var baseSpeed=200;
+var absoluteBaseSpeed=200;
+var baseSpeed=absoluteBaseSpeed;
 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 opponentspeedfactor=0.75;
+var fatdownloadsize=130;
+var score=0;
+var fatscore=0;
+var fatrisk=false;
+var stext;
+var fstext;
+var fdcs=15;
 var game = new Phaser.Game(width, height, Phaser.CANVAS, 'gameContainer', { preload: preload, create: create, update: update, render: render });
 
 function preload() {
     game.load.image('player', 'player.png');
     game.load.image('opponent', 'opponent.png');
     game.load.image('opponent2', 'opponent2.png');
+    game.load.image('opponent2b', 'opponent2b.png');
     game.load.image('background', 'background.png');
 
 }
@@ -24,12 +32,13 @@ var player;
 var pad;
 var opponents=[];
 var fatdownload=[];
+var bg;
 function create() {
 
     game.physics.startSystem(Phaser.Physics.ARCADE);
 
     game.stage.backgroundColor = '#000000';
-
+	
 	//calc 3/4 width;
 	
 	console.log("TQWBase",tqwbase);
@@ -43,8 +52,28 @@ function create() {
 	player.body.maxVelocity.setTo(400, 400);
 	player.body.collideWorldBounds = true;
 	game.input.gamepad.start();
+	initOpponents();
+	
+					//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 });
+	stext = game.add.text(10, 40, "Packets:0",{
+        font: "30px arial",
+        fill: "#ff0044",
+        align: "center"
+    });
+	fstext = game.add.text(10, 80, "Fat downloads:0",{
+        font: "30px arial",
+        fill: "#ff0044",
+        align: "center"
+    });
+}
+
+function initOpponents()
+{
 	for(var oc=0;oc<opponentcount;oc++)
 	{//preseed of opponent cache
+console.log("OC=",oc);
 		var flubberflargh = game.add.sprite(0,-100,'opponent');
 		this.game.physics.enable(flubberflargh, Phaser.Physics.ARCADE);
 		flubberflargh.body.drag.set(0.2);
@@ -53,17 +82,15 @@ function create() {
 	}
 	for(var fc=0;fc<fatdownloadsize;fc++)
 	{//preseed of opponent cache
-		var blubberlutsch = game.add.sprite(0,-100-(10*fc),'opponent2');
+		var b=game.rnd.between(0,2)>1;
+		var blubberlutsch = game.add.sprite(0,-100-(fdcs*fc),(b?'opponent2':'opponent2b'));
 		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() {
 
     //  We can't do this until we know that the gamepad has been connected and is started
@@ -87,19 +114,53 @@ function addButtons() {
 }
 var ocb = 0;
 function update() {
+	
+	var baseSpeed=absoluteBaseSpeed+(((score/100)|0)*50)
+	bg.tilePosition.y += 10;
+	
+	stext.setText("Packets:"+score);
+	fstext.setText("Fat downloads:"+fatscore);
 	if(pad&&pad._rawPad)
 	{
 		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 af=0;
+			if(pad.isDown(Phaser.Gamepad.XBOX360_DPAD_LEFT))
+			{
+				af=1.0;
+			}
+			if(pad.axis(Phaser.Gamepad.XBOX360_STICK_LEFT_X) < -0.1)
+			{
+				af= -pad.axis(Phaser.Gamepad.XBOX360_STICK_LEFT_X)
+			}
+			if(pad.axis(Phaser.Gamepad.XBOX360_STICK_RIGHT_X) < -0.1)
+			{
+				af= -pad.axis(Phaser.Gamepad.XBOX360_STICK_RIGHT_X)
+			}
 			if(player.x>=tqwbase)
 			{
-				vx=-baseSpeed;
+				vx=-baseSpeed*af;
 			}
 		}
 		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 af=0;
+			if(pad.isDown(Phaser.Gamepad.XBOX360_DPAD_RIGHT))
+			{
+				af=1.0;
+			}
+			if(pad.axis(Phaser.Gamepad.XBOX360_STICK_LEFT_X) > 0.1)
+			{
+				af= pad.axis(Phaser.Gamepad.XBOX360_STICK_LEFT_X)
+			}
+			if(pad.axis(Phaser.Gamepad.XBOX360_STICK_RIGHT_X) > 0.1)
+			{
+				af= pad.axis(Phaser.Gamepad.XBOX360_STICK_RIGHT_X)
+			}
+			
+			
 			if(player.x<=(width-tqwbase-32))
 			{
 				vx=baseSpeed;
@@ -120,22 +181,48 @@ function update() {
 	}
 	for(var opcol=0;opcol<opponentcount;opcol++)
 	{
-		game.physics.arcade.collide(player, opponents[opcol], 
+		var opn = opponents[opcol];
+		if(opn.y>-50&&opn.y<(height-opn.height))
+		{
+			opn.body.velocity.y=baseSpeed*opponentspeedfactor;
+		}
+		if(opn.x<tqwbase||opn.x>(width-tqwbase-opn.width))
+		{
+			opn.body.velocity.x=0;
+		}
+		if(opn.y>height)
+		{
+			score++;
+			opn.y=-100;
+		}
+		game.physics.arcade.collide(player, opn, 
 		gameover, 
 		function(){return true}, this);
 	}
 	if(ocb%opponentpause==0)
 	{
-		var nxo = opponents[(ocb/opponentpause)|0]
-		//console.log(nxo.y);
+		var nxoidx = (ocb/opponentpause)|0;
+		console.log(nxoidx);
+		var nxo = opponents[nxoidx]
+		
 		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;
+			console.log(nxo.x);
+			nxo.body.velocity.y=baseSpeed*opponentspeedfactor;
 			nxo.body.velocity.x=0;
-			//var fff = game.rnd.between(0,1000);
+			var fff = game.rnd.between(0,1000);
+			if(fff<50)
+			{
+				nxo.body.velocity.x=fff-50;
+			}
+			if(fff>950)
+			{
+				nxo.body.velocity.x=fff-950;
+			}
 			
 		}
 		
@@ -151,25 +238,49 @@ function update() {
 			var fds = fatdownload[fc];
 			fds.x=fdcolumn
 			fds.y=fds.y+70;
-			fds.body.velocity.y=opponentspeed;
+			fds.body.velocity.y=baseSpeed*opponentspeedfactor;
 		}
 	}
-	else //fatdownload transferierend
+	else 
 	{
-		for(var fcc=0;fcc<opponentcount;fcc++)
+		if(fatdownload[0].y>-50)//fatdownload transferierend
 		{
-			game.physics.arcade.collide(player, fatdownload[fcc], 
-			gameover, 
-			function(){return true}, this);
+			for(var fcc=0;fcc<fatdownloadsize;fcc++)
+			{
+				fds = fatdownload[fcc];
+				fds.body.velocity.y=baseSpeed*opponentspeedfactor;
+				game.physics.arcade.collide(player,fds , 
+				gameover, 
+				function(){return true}, this);
+			}
+		}
+	}
+	if(fatdownload[fatdownloadsize-1].y>height-200 &&!fatrisk&&fatdownload[fatdownloadsize-1].y<height-170)
+	{
+		var fx = fatdownload[fatdownloadsize-1].x
+		if(fx<=(tqwbase+(tqwidth*0.2)|0)&&player.x<fx)
+		{
+			fatrisk=true;
+			fatscore+=9;
+		}
+		else
+		{
+			if(fx>=(width-tqwbase-(tqwidth*0.2)|0)&&player.x>fx)
+			{
+				fatrisk=true;
+				fatscore+=9;
+			}
 		}
 	}
 	if(fatdownload[fatdownloadsize-1].y>height)
 	{
+		fatscore++;	
+		fatrisk=false;
 		for(var fc=0;fc<fatdownloadsize;fc++)
 		{
 			var fds = fatdownload[fc];
 			fds.x=0
-			fds.y=-100-(10*fc);
+			fds.y=-100-(fdcs*fc);
 			fds.body.velocity.y=0;
 		}
 	}
@@ -178,8 +289,25 @@ function update() {
 
 function gameover()
 {
+	score=0;
+	fatscore=0;
+	for(var p=0;p<opponentcount;p++)
+	{
+		var o = opponents[p];
+		o.exists=false;
+		opponents[p]=null;
+	};
+	for(var q=0;q<fatdownloadsize;q++)
+	{
+		var r = fatdownload[q];
+		r.exists=false;
+		fatdownload[q]=null;
+	}
 	console.log("Ätschebätsche");
 	alert("Packet Loss");
+	initOpponents();
+	player.y=height-200;
+	player.body.velocity.y=0;
 }
 function onDown(button, value) {
 	/*

BIN
background.png


BIN
opponent2.png


BIN
opponent2b.png


BIN
opponentb.png


BIN
player.png