Jelajahi Sumber

more progress, scores & visuals

tgoerner 9 tahun lalu
induk
melakukan
d228be7efe
6 mengubah file dengan 150 tambahan dan 22 penghapusan
  1. 150 22
      1.js
  2. TEMPAT SAMPAH
      background.png
  3. TEMPAT SAMPAH
      opponent2.png
  4. TEMPAT SAMPAH
      opponent2b.png
  5. TEMPAT SAMPAH
      opponentb.png
  6. TEMPAT SAMPAH
      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) {
 	/*

TEMPAT SAMPAH
background.png


TEMPAT SAMPAH
opponent2.png


TEMPAT SAMPAH
opponent2b.png


TEMPAT SAMPAH
opponentb.png


TEMPAT SAMPAH
player.png