Hi, I am trying to recreate the old arcade game “Tempest”. I have several objects placed in the lanes of the environment. My script counts how many times a button is pressed, each time the “Move Left” key is pressed; my counter takes away 1, disables the origin object’s renderer and enables the renderer on the duplicate to the left. This gives a ‘lane changing’ effect.
The only problem I have is that once the player has ‘moved’ to the left or right edge, pressing the movement buttons will add extra numbers, keeping the player ‘stuck’ on the side until the opposite button is pressed enough times to move the other way.
So is there any possible way of “restricting” the amount of times that the movement buttons are able to be pressed.
E.g. MIN = -5 (Pressing Left) MAX = 5 (Pressing Right).
#SCRIPT:
var curSteps : int;
var meshOrigin : GameObject;
var meshNeg1 : GameObject;
var meshNeg2 : GameObject;
var meshNeg3 : GameObject;
var meshPos1 : GameObject;
var meshPos2 : GameObject;
var meshPos3 : GameObject;
meshNeg1.renderer.enabled = false;
meshNeg2.renderer.enabled = false;
meshNeg3.renderer.enabled = false;
meshPos1.renderer.enabled = false;
meshPos2.renderer.enabled = false;
meshPos3.renderer.enabled = false;
function Update () {
if (Input.GetKeyDown(KeyCode.A)){
print ("Pressed A");
curSteps -= 1;
}
if (Input.GetKeyDown(KeyCode.D)){
print ("Pressed D");
curSteps += 1;
}
if (curSteps == 0){
curSteps = 0;
meshOrigin.renderer.enabled = true;
meshPos1.renderer.enabled = false;
meshNeg1.renderer.enabled = false;
}
if (curSteps == 1){
curSteps = 1;
meshPos1.renderer.enabled = true;
meshPos2.renderer.enabled = false;
meshOrigin.renderer.enabled = false;
}
if (curSteps == 2){
curSteps = 2;
meshPos2.renderer.enabled = true;
meshPos3.renderer.enabled = false;
meshPos1.renderer.enabled = false;
}
if (curSteps == 3){
curSteps = 3;
meshPos3.renderer.enabled = true;
meshPos2.renderer.enabled = false;
}
if (curSteps == -1){
curSteps = -1;
meshNeg1.renderer.enabled = true;
meshNeg2.renderer.enabled = false;
meshOrigin.renderer.enabled = false;
}
if (curSteps == -2){
curSteps = -2;
meshNeg2.renderer.enabled = true;
meshNeg3.renderer.enabled = false;
meshNeg1.renderer.enabled = false;
}
if (curSteps == -3){
curSteps = -3;
meshNeg3.renderer.enabled = true;
meshNeg2.renderer.enabled = false;
}
}
#DIAGRAM: