Browse Source

more progress, scores & visuals

tgoerner 10 năm trước cách đây
mục cha
commit
d228be7efe
6 tập tin đã thay đổi với 150 bổ sung và 22 xóa
  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