Непонятно, как вы справляетесь с «сложностью 1».Как написано, это ничего не сделает.Если я понимаю, что вы пытаетесь сделать, это значение необходимо сохранить в переменной, и если значение по умолчанию всегда начинается с «1», вы можете сделать что-то вроде:
local затруднение = 1
Кроме того, ваш обработчик changeDiff должен использовать операторы "else" или рассмотреть возможность выхода из вашего обработчика после того, как было установлено значение, чтобы избежать одного оператора "if", устанавливающего истинное условие для другого - в вашем нынешнем виде - вашего кода.будет чередоваться только между первыми двумя вариантами «если».Вы могли бы написать обработчик как:
local difficulty = 1
on changeDiff
if difficulty = 2 then
put 1 into difficulty
set the label of btn "Difficulty" to "normal"
else
if difficulty = 1.5 then
put 2 into difficulty
set the label of btn "Difficulty" to "DEMON"
else
if difficulty = 1 then
put 1.5 into difficulty
set the label of btn "Difficulty" to "hard"
end if
end if
end if
end changeDiff
Вы могли бы рассмотреть возможность использования оператора switch (немного проще для чтения), например:
local difficulty = 1
on changeDiff
switch difficulty
case 2
put 1 into difficulty
set the label of btn "Difficulty" to "normal"
break
case 1.5
put 2 into difficulty
set the label of btn "Difficulty" to "DEMON"
break
case 1
put 1.5 into difficulty
set the label of btn "Difficulty" to "hard"
end switch
end changeDiff
Если вы хотите быть эффективным (меньше строк кода), вы можете использовать одну инструкцию «установить метку» и получить имя метки из набора элементов метки (значения сложности 1, 2, 3):
local difficulty = 1
on changeDiff
add 1 to difficulty
if difficulty > 3 then put 1 into difficulty
set the label of btn "Difficulty" to item difficulty of "Normal,Hard,Demon"
end changeDiff
Надеюсь, это поможет.