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() { //ball bounces off walls and paddles if (ball.getX() > 390) { ball.setVelocity(-ball.getVelocityDX(), ball.getVelocityDY()); //update score playerPoints++; //reassign text in playersScore text object to reflect this change playerScore.changeText(Convert.ToString(playerPoints)); } if (ball.getX() < 0) { ball.setVelocity(-ball.getVelocityDX(), ball.getVelocityDY()); //update score computerPoints++; //reassign text in computerScore text object to reflect this change computerScore.changeText(Convert.ToString(computerPoints)); } if (ball.getY() > 390) { ball.setVelocity(ball.getVelocityDX(), -ball.getVelocityDY()); } if (ball.getY() < 0) { ball.setVelocity(ball.getVelocityDX(), -ball.getVelocityDY()); } if (ball.pixelCollidesWith(leftPaddle)) { ball.setVelocity(-ball.getVelocityDX(), ball.getVelocityDY()); } //left player moves using Q and A if (ball.pixelCollidesWith(rightPaddle)) { ball.setVelocity(-ball.getVelocityDX(), ball.getVelocityDY()); } if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.Q)) { leftPaddle.setVelocity(0, -100); } else if (this.isKeyPressed(Microsoft.Xna.Framework.Input.Keys.A)) { leftPaddle.setVelocity(0, 100); } else { leftPaddle.setVelocity(0, 0); } //autonomouse computer paddle on right paddleM = rightPaddle.getY() + rightPaddle.getHeight() / 2; if (ball.getY() < paddleM && ball.getX() > 150) { rightPaddle.setVelocity(0, -170); } else if (ball.getY() > paddleM && ball.getX() > 150) { rightPaddle.setVelocity(0, 170); } else { rightPaddle.setVelocity(0, 0); } }