public gameState(vector2 ballPos, vector2 ballVelocity, lastMoveOutcome outcome, vector2 paddlePos) { this.ballPos = ballPos; this.ballVelocity = ballVelocity; this.outcome = outcome; this.paddlePos = paddlePos; }
public gameState update() { lastMoveOutcome outcome = lastMoveOutcome.neutral; if (counter % skipCounter == 0) { d.clear(pos); vector2 newPos = vector2.add(pos, velocity); if (d.screenBuffer.ContainsKey(newPos)) { outcome = bounce(newPos); if (outcome == lastMoveOutcome.neutral) { Program.bounces++; } } else { if (newPos.y >= d.yMax) { randomizeBall(); outcome = lastMoveOutcome.bad; } else { pos = newPos; } } d.trySetChar(pos, 'o'); } counter++; switch (outcome) { case lastMoveOutcome.good: Program.hits++; break; case lastMoveOutcome.neutral: break; case lastMoveOutcome.bad: Program.misses++; break; } return(new gameState(pos, velocity, outcome, pd.posCache)); }