rendered paste body 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();
}
}