2016-12-04 9 views
1

Я создаю игру для своего модуля Scripting и Interactive Web в университете, и это не мой сильный набор.Ограничивающие переменные в Action Script 3.0

В настоящее время у меня есть пиратский корабль с кодировкой, чтобы он двигался влево и вправо, а также ускорялся и замедлялся, однако я не знаю, как ограничить скорость и замедлить значения.

В настоящий момент корабль может двигаться бесконечно быстрее и вперед, и в обратном направлении. Совет о том, как остановить это, будет очень признателен, спасибо!

Вот код:

stage.focus = stage; 
//controlling victory 
stage.addEventListener(KeyboardEvent.KEY_DOWN , victoryController); 
function victoryController(evt:KeyboardEvent){ 
    var aPress=String.fromCharCode(evt.charCode); 
    if (aPress=="a"){victory.rotation-=1;} 
    if (aPress=="d"){victory.rotation+=1;} 
    if (aPress=="w"){victorySpeed+=0.5;} 
    if (aPress=="s"){victorySpeed-=0.5;} 
    if (aPress=="A"){victory.rotation-=1;} 
    if (aPress=="D"){victory.rotation+=1;} 
    if (aPress=="W"){victorySpeed+=0.5;} 
    if (aPress=="S"){victorySpeed-=0.5;} 
} 

ответ

0

Что делать, если на скорости, вы сделали что-то вроде

var MaxVictorySpeed = 100; 

// ... 

if ((aPress=="w") && (victorySpeed < MaxVictorySpeed)){ 
    victorySpeed+=0.5; 
} 

И так далее, перед установкой нового значения, вы можете проверить, если это будет из предполагаемого диапазона.

+0

Работал абсолютным обаянием! Спасибо за поспешный ответ, очень ценю помощь! – SamPortsmouth

+0

Добро пожаловать. :) Обратите внимание, что в вашей игре это может быть не очень важно, но в этом примере «MaxVictorySpeed» может вводить в заблуждение. В зависимости от приращения (теперь 0,5) максимальное значение (теперь 100) и начальное значение (0, я полагаю), фактическое достижимое значение может быть больше тр-макс. В крайнем случае рассмотрим настройку max до 37 и приращение к примеру 9. Значения будут идти как 9, 18, 27, 36, которые по-прежнему меньше 37, поэтому можно было достичь 45. Просто хотелось обратите внимание, что это более точно. :) Вы можете посмотреть уже увеличенное значение в if, чтобы преодолеть это. :) –