I try on a few ways I could think of (like using the "if, else" statement, and create a really long script about when the level should change when the scores hits a certain point -- which is really a time and space wasting effort), before I realized about Arithmetic progression, an additional-math formula I learnt in high school.

I first list down a few levels, and the scores required to reach them. for instance:

0 scores-level 1 (I wanted the player to start at level 1, with 0 scores),

10000 scores - level 2,

20000 scores - level 3,

30000 scores - level 4, etc...

The difference between 2 of those levels is 10000 scores. Using these infos, I started working it in the Arithmetic progression formula:

(from Wikipedia, I've totally forgotten about the formula after quitting math since 2 years ago)

a (with a small n) = is the player scores here...

a (with a small 1) = is the starting scores, which is 0 (refer above)...

n (inside the bracket) = refer to the player's level...

d = the difference between 2 of those levels, which is 10000 (refer above)...

The structure of the formula in script would look like this:

`var scores:int = 0;var level:int = 0;var diff:int = 10000;var aOne:int = 0; //these are required variables set`

//the formulascores = 0 + (level - 1) * diff;

Since I'm gonna change the value of level here instead of the scores, I need to change the formula a bit to: `level = (scores - aOne) / diff + 1;`

Then, applying it to the main script:`var scores:int = 0;var level:int = 0;var diff:int = 10000;var aOne:int = 0;`

function Update () {if ((scores - aOne) / diff + 1 > level) {level ++;}

Say... I've managed to score around 11300 points while I'm in level 1. Using the formula:

(11300 - 0) / 10000 + 1, the result would be 1.13, which is more than 1 (the current level)... Thus, the level will increase itself by 1, and become level 2...

If I were to create some sorts of a RPG/first-person-shooter game, a Geometric progression would be the better choice in writing the level script.

## No comments:

Post a Comment