override public function update():void { accumulator += FlxG.elapsed; if (accumulator >= TimeStep) { accumulator = accumulator - TimeStep; FlxG.paused = false; // players.getItemAt(x).name.x = players.getItemAt(x).player.x; // players.getItemAt(x).name.y = players.getItemAt(x).player.y; //Player movement and controls players.getItemAt(x).name.x = players.getItemAt(x).player.x - players.getItemAt(x).name.size/2; players.getItemAt(x).name.y = players.getItemAt(x).player.y + 15; players.getItemAt(x).player.velocity.x = 0; players.getItemAt(x).player.velocity.y = 0; if (FlxG.keys.ENTER) { FlxG.keys.SPACE = false; if (myFire == true) { myFire = false; var msg:Object = new Object(); msg.seq = messageSequenceNumber++; msg.senderID = nc.nearID; msg.fromx = players.getItemAt(x).player.x; msg.fromy = players.getItemAt(x).player.y; msg.directiony = directiony; msg.directionx = directionx; msg.angle = players.getItemAt(x).player.angle; msg.type = "shoot"; held = false; ng.post(msg); projectiles.addItem( { team: myTeam, bullet: newBullet(myTeam, players.getItemAt(x).player.x+2, players.getItemAt(x).player.y+2), angle:players.getItemAt(x).player.angle, added:false, fromx:players.getItemAt(x).player.x+2,fromy:players.getItemAt(x).player.y+2, destinationx:players.getItemAt(x).player.x + directionx, destinationy:players.getItemAt(x).player.y + directiony, counts:0, owner:0} ); } } if (FlxG.keys.A) { directiony = 0; directionx = -100; players.getItemAt(x).player.angle = players.getItemAt(x).player.angle -2; held = true; changedAngle = true; // players.getItemAt(x).player.velocity.x = -players.getItemAt(x).player.maxVelocity.x * 1; } if (FlxG.keys.D) { directiony = 0; directionx = 100; changedAngle = true; players.getItemAt(x).player.angle = players.getItemAt(x).player.angle +2; held = true; //players.getItemAt(x).player.velocity.x = players.getItemAt(x).player.maxVelocity.x * 1; } if (FlxG.keys.S) { directionx = 0; directiony = 100; held = true; var pi = 3.14159265; players.getItemAt(x).player.velocity.x = -Math.cos(players.getItemAt(x).player.angle * pi / 180) * players.getItemAt(x).player.maxVelocity.x; players.getItemAt(x).player.velocity.y = -Math.sin(players.getItemAt(x).player.angle * pi / 180) * players.getItemAt(x).player.maxVelocity.y; //players.getItemAt(x).player.velocity.y = players.getItemAt(x).player.maxVelocity.y * 1; } if (FlxG.keys.W) { directionx = 0; directiony = -100; held = true; var pi = 3.14159265; players.getItemAt(x).player.velocity.x = +Math.cos(players.getItemAt(x).player.angle * pi / 180) * players.getItemAt(x).player.maxVelocity.x; players.getItemAt(x).player.velocity.y = +Math.sin(players.getItemAt(x).player.angle * pi / 180) * players.getItemAt(x).player.maxVelocity.y; //players.getItemAt(x).player.velocity.y = -players.getItemAt(x).player.maxVelocity.y * 1; } if (FlxG.keys == false) { held = false; } //if(FlxG.keys.justPressed("SPACE") && player.isTouching(FlxObject.FLOOR)) // player.velocity.y = -player.maxVelocity.y/2; //Updates all the objects appropriately // super.update(); //Check if player collected a coin or coins this frame FlxG.overlap(players.getItemAt(x).player); //Check to see if the player touched the exit door this frame FlxG.overlap(exit,players.getItemAt(x).player,win); // FlxG.collide(level,players.getItemAt(0).player); //Check for player lose conditions if(players.getItemAt(x).player.y > FlxG.height) { FlxG.score = 1; //sets status.text to "Aww, you died!" FlxG.resetState(); } status.text = "Health: " +players.getItemAt(0).player.health; var i:int = projectiles.length; var x:int = 0; var cleanx = -1; //status.text = "test"; while (x < i) { if (projectiles.getItemAt(x).added == false) { add(projectiles.getItemAt(x).bullet); projectiles.getItemAt(x).added = true; var radAngle : Number = projectiles.getItemAt(x).angle * (Math.PI /180); projectiles.getItemAt(x).bullet.velocity.x = Math.cos(radAngle) * 150; projectiles.getItemAt(x).bullet.velocity.y = Math.sin(radAngle) * 150; projectiles.getItemAt(x).counts = projectiles.getItemAt(x).counts + 1; // FlxG.overlap(projectiles.getItemAt(x).bullet, level , function(e:FlxSprite, p:FlxTilemap):void { //score.text = "WOWWW"; //}); } if (projectiles.getItemAt(x).added == true) { // FlxG.collide(projectiles.getItemAt(x).bullet, level, function(e:FlxSprite, p:FlxTilemap):void { //projectiles.getItemAt(x).clean = true; //cleanx = x; //bouncing? e.velocity = currentPos - collisionPoint //}); var workedx:uint = Math.round((projectiles.getItemAt(x).bullet.x-2) / FlxG.width*40); var workedy:uint = Math.round((projectiles.getItemAt(x).bullet.y - 4) / (240) * 30 ); //score.text = String(level.getTile(workedx, workedy)); if (level.getTile(workedx, workedy) != 0) { //elocity.y *= -1; var velocityx = projectiles[x].velocity.x; projectiles[x].velocity.x = -velocityx; var velocityy = projectiles[x].velocity.x; projectiles[x].velocity.x = -velocityy; //projectiles.getItemAt(x).angle = -projectiles.getItemAt(x).angle / 2-20; //var coreVelocity:Point = sprite.velocity.clone(); //if (Math.abs(coreVelocity.x) < MIN_REBOUND) coreVelocity.x = 0; //ad more: http://www.bukisa.com/articles/214806_creating-a-flash-platform-game-with-flixel-and-flex-bounce-blocks#ixzz1LPPsk78I //remove(projectiles.getItemAt(x).bullet); // projectiles.removeItemAt(x); //score.text = "collided" + workedx + ":" + workedy; countcollide++; score.text = String("collided:" + countcollide); } score.text = String("collided:" + countcollide); //status.text = "added" + projectiles.getItemAt(x).destinationx; // projectiles.getItemAt(x).bullet.x++; //projectiles.getItemAt(x).bullet.y = projectiles.getItemAt(x).destinationy; var ix:int = players.length; var xx:int = 0; //status.text = "test"; while (xx < ix) { // FlxG.overlap(players.getItemAt(xx).player,projectiles.getItemAt(x).bullet,doHealth); if (distance(players.getItemAt(xx).player, projectiles.getItemAt(x).bullet) == true && projectiles.getItemAt(x).owner != players.getItemAt(xx).id ) { if ( projectiles.getItemAt(x).team != players.getItemAt(xx).team) { remove(projectiles.getItemAt(x).bullet); projectiles.removeItemAt(x); doHealth(xx); } } xx++; } } if (projectiles.getItemAt(x).bullet.x > projectiles.getItemAt(x).fromx + 70 || projectiles.getItemAt(x).bullet.y > projectiles.getItemAt(x).fromy + 70 || projectiles.getItemAt(x).bullet.x < projectiles.getItemAt(x).fromx - 70 || projectiles.getItemAt(x).bullet.y < projectiles.getItemAt(x).fromy - 70 ){ //remove(projectiles.getItemAt(x).bullet); //projectiles.getItemAt(x).clean = true; // cleanx = x; //FlxG.collide(projectiles.getItemAt(x).bullet, level, function(e:bullet):void { //G.log("collision!"); // }); } //status.text = projectiles.getItemAt(x).counts; if (projectiles.getItemAt(x).counts > 370) { cleanx = x; projectiles.getItemAt(x).clean = true; } x++; } if (cleanx > -1) { remove(projectiles.getItemAt(cleanx).bullet); projectiles.removeItemAt(cleanx); } var i:int = players.length; var x:int = 0; //status.text = "test"; while (x < i) { var name:FlxText = new FlxText(2, 2, 170); name.shadow = 0xff000000; // players.getItemAt(x).name.text = players.getItemAt(x).realName; // postUpdate(); if (players.getItemAt(x).added == false) { //player = players.getItemAt(x).player; //name.x = players.getItemAt(x).player.x; //name.y = players.getItemAt(x).player.y; // name = players.getItemAt(x).name; name.text = players.getItemAt(x).realName; players.getItemAt(x).name = name; players.getItemAt(x).name.x = players.getItemAt(x).player.x - players.getItemAt(x).name.size/2; players.getItemAt(x).name.y = players.getItemAt(x).player.y + 15; add(players.getItemAt(x).player); add( players.getItemAt(x).name); players.getItemAt(x).added = true; players.getItemAt(x).tox = players.getItemAt(x).player.x; players.getItemAt(x).toy = players.getItemAt(x).player.y; } players.getItemAt(x).count++; if (players.getItemAt(x).added == true) { FlxG.collide(level, players.getItemAt(0).player); } if (players.getItemAt(x).added == true && x > 0) { players.getItemAt(x).name.x = players.getItemAt(x).player.x - players.getItemAt(x).name.size/2; players.getItemAt(x).name.y = players.getItemAt(x).player.y + 15; // players.getItemAt(x).name.x = Number(Lerp(0.035,players.getItemAt(x).player.x, players.getItemAt(x).tox))+10; // players.getItemAt(x).name.y = Number(Lerp(0.035,players.getItemAt(x).player.y, players.getItemAt(x).toy)); players.getItemAt(x).player.x = Number(Lerp(0.035,players.getItemAt(x).player.x, players.getItemAt(x).tox)); players.getItemAt(x).player.y = Number(Lerp(0.035, players.getItemAt(x).player.y, players.getItemAt(x).toy)); var curDate:Number = CurrentDateTimeString(); if (players.getItemAt(x).lastping + 5 < curDate && x != 0) { //status.text = "removed:" +players.getItemAt(x).realName; remove(players.getItemAt(x).name); remove(players.getItemAt(x).player); players.removeItemAt(x); } } x++; } super.update(); } }