public override void gameLogic() { //control left shell if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.W) && Math.Round(leftShell.getVelocityDY()) == 0) { leftShell.setVelocity(leftShell.getVelocityDX(), -191f); } if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.A)) { leftShell.setVelocity(-55, leftShell.getVelocityDY()); } else if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.D)) { leftShell.setVelocity(55, leftShell.getVelocityDY()); } else { leftShell.setVelocity(0, leftShell.getVelocityDY()); } //control right shell if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Up) && Math.Round(rightShell.getVelocityDY()) == 0) { rightShell.setVelocity(rightShell.getVelocityDX(), -191f); } if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Left)) { rightShell.setVelocity(-55, rightShell.getVelocityDY()); } else if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Right)) { rightShell.setVelocity(55, rightShell.getVelocityDY()); } else { rightShell.setVelocity(0, rightShell.getVelocityDY()); } //check ball state if (ball.physicsCollide(sand) && ball.getX() < 200) { //update score rightPoints++; //change score text to reflect this rightScore.changeText(Convert.ToString(rightPoints)); //put ball above winner ball.setPosition(340, 100); //put both shells back at their start position rightShell.setPosition(340, 340); leftShell.setPosition(40, 340); //set ball's velocity to 0 so that it just falls down ball.setVelocity(0, 0); } if (ball.physicsCollide(sand) && ball.getX() > 200) { leftPoints++; leftScore.changeText(Convert.ToString(leftPoints)); ball.setPosition(60, 100); rightShell.setPosition(340, 340); leftShell.setPosition(40, 340); ball.setVelocity(0, 0); } }
public override void gameLogic() { if (gameOver == false) { //time tracker timeElapsed = this.getElapsedTime(); timer.changeText(Convert.ToString(timeElapsed) + " seconds"); } //accelerate the car if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Up) == true) { line1.applyForce(0, 25); line2.applyForce(0, 25); line3.applyForce(0, 25); line4.applyForce(0, 25); kid1.applyForce(0, 25); kid2.applyForce(0, 25); flag.applyForce(0, 25); } //reposition lines when they get off screen if (line1.getY() > 440) { line1.setPosition(145, -40); } else if (line2.getY() > 440) { line2.setPosition(145, -40); } else if (line3.getY() > 440) { line3.setPosition(145, -40); } else if (line4.getY() > 440) { line4.setPosition(145, -40); } if (kid1.getY() > 415) { kid1.setPosition(rX.Next(100, 200), rY.Next(-200, -100)); } if (kid2.getY() > 415) { kid2.setPosition(rX.Next(100, 200), rY.Next(-200, -100)); } //apply brakes if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Down) == true && line1.getVelocityDY() > 0) { line1.applyForce(0, -100); line2.applyForce(0, -100); line3.applyForce(0, -100); line4.applyForce(0, -100); } //move car left and right if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Left) == true) { car.setVelocity(-55, 0); } else if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Right) == true) { car.setVelocity(55, 0); } else { car.setVelocity(0, 0); } //finish line if (car.getY() < flag.getY()) { finalStatus.changeText("Race Completed in " + Convert.ToString(timeElapsed) + " seconds"); gameOver = true; } //hitting pedestrians if (car.physicsCollide(kid1)) { finalStatus.changeText("GAME OVER-Pedestrian Squashed!!!"); } }
public override void gameLogic() { if (stage == 0) { state.changeText("C-Create Session"); state1.changeText("J-Join Session"); if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.C)) { this.net.CreateSession(); //this.net.SignInGamer(); } if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.J)) { //this.net.SignInGamer(); this.net.FindSession(); } netState.changeText(this.net.Message); if (this.net.netState == 1) {//a state of means the player has joined is in play mode stage = 3; } } else if (stage == 3)//game stage { state.changeText(net.Message); //control left shell if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.W) && Math.Round(leftShell.getVelocityDY()) == 0) { leftShell.setVelocity(leftShell.getVelocityDX(), -191f); } if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.A)) { leftShell.setVelocity(-55, leftShell.getVelocityDY()); } else if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.D)) { leftShell.setVelocity(55, leftShell.getVelocityDY()); } else { leftShell.setVelocity(0, leftShell.getVelocityDY()); } //control right shell if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Up) && Math.Round(rightShell.getVelocityDY()) == 0) { rightShell.setVelocity(rightShell.getVelocityDX(), -191f); } if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Left)) { rightShell.setVelocity(-55, rightShell.getVelocityDY()); } else if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Right)) { rightShell.setVelocity(55, rightShell.getVelocityDY()); } else { rightShell.setVelocity(0, rightShell.getVelocityDY()); } //check ball state if (ball.physicsCollide(sand) && ball.getX() < 200) { //update score rightPoints++; //change score text to reflect this rightScore.changeText(Convert.ToString(rightPoints)); //put ball above winner ball.setPosition(340, 100); //put both shells back at their start position rightShell.setPosition(340, 340); leftShell.setPosition(40, 340); //set ball's velocity to 0 so that it just falls down ball.setVelocity(0, 0); } if (ball.physicsCollide(sand) && ball.getX() > 200) { leftPoints++; leftScore.changeText(Convert.ToString(leftPoints)); ball.setPosition(60, 100); rightShell.setPosition(340, 340); leftShell.setPosition(40, 340); ball.setVelocity(0, 0); } //end of stage 3 } }