Small Basic #7 Вывод значений на экран

Добавление переменных величин в проект

До этого мы использовали переменные. Например, width, height для задания ширины и высоты экрана.
В программах часто используются переменные величины. Ними могут быть:

  • Очки победы
  • Количество жизней
  • Количество патронов
  • Скорость
  • Уровень сложности
  • и т.д.

Try it out

1. Обычно переменные величины устанавливаются при запуске программы. Например, напишите такой код:

Sub programSetup
  ' Начальные значения переменных
  width = 600
  height = 400
  ' Очки игрока вначале = 0
  score = 0
  ' здоровье игрока вначале = 10
  hp = 10
  ' урон от касания к лаве вначале = 1
  damage = 1
  
  ' Настройки окна
  GraphicsWindow.canresize = "false"
  GraphicsWindow.width = width
  GraphicsWindow.height = height
  GraphicsWindow.backgroundcolor = "DarkSlateBlue"
EndSub

programSetup()

2. После этого описываем подпрограммы, в которых эти величины могут изменяться:
Sub decreaseHp
  hp = hp - damage
EndSub

Sub increaseScore
  score = score + 1
EndSub

3. Вызовем их в случае, когда нужно уменьшить здоровье. Например, в случае касания лавы, противника или неправильного ответа:

TextWindow.WriteLine("Какой метод отвечает за изменение фона графического окна? Введите 1 или 2")
TextWindow.WriteLine("1. GraphicsWindow.BrushColor")
TextWindow.WriteLine("2. GraphicsWindow.BackgroundColor")
answer = TextWindow.ReadNumber()
If answer = 1 Then
  TextWindow.WriteLine("Ответ неправильный!")
  decreaseHp()
Else
  TextWindow.WriteLine("Ответ правильный =)")
  increaseScore()
EndIf

4. Для вывода значений на графическое окно можно использовать метод Shapes.AddText(). Например: 
scoreText = Shapes.AddText("Score = " + usrScore)
Для того, чтобы новый текст не перекрывал старый, старый нужно прятать при помощи команды:
Shapes.HideShape(scoreText)

Добавим в программу подпрограмму для вывода количества здоровья на экран:
Sub updateHpText
  Shapes.HideShape(hpText)
  hpText = Shapes.AddText("Hp = " + hp)
  Shapes.Move(hpText, 100,200)
EndSub

Теперь вызовем эту процедуру после каждого изменения hp:
If answer = 1 Then
  TextWindow.WriteLine("Ответ неправильный!")
  decreaseHp()
  updateHpText()

Else

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

5. Напишите код самостоятельно для вывода на экран количества очков по похожему алгоритму.

Задания

Задание 7.1*. Создайте 3 переменные: damage, speed, hp и выведите их на экран. При нажатии на клавишу D увеличивайте damage, S – speed, H – hp. Все изменения должны быть выведены на экран.

Задание 7.2***. Создайте текстовую тест-игру (в текстовом окне), состоящую из 3 вопросов из любой предметной области (например, программирование, география, история и т.п). За каждый правильный ответ добавляйте 2 очка. За каждый неправильный снимайте 1 жизнь. При каждом ответе меняйте фон графического окна на красный/зелёный в случае правильного/неправильного ответа и выводите количество очков и здоровья.


Комментарии