Найти тему
ТехноШаман

Pixilang. Урок 3. Условия.

Оглавление

Сегодня научим прямоугольник отскакивать от стен. Для этого нам понадобится код, который будет срабатывать при определённых условиях.

if - если

Для этого используется команда if, в переводе на русский - если.

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

if else - если иначе

Второй вариант этой команды. Если выражение верно (true), то выполнится код , идущий следом и заключенный в фигурные скобки, если выражение неверно (false), то выполнится код в фигурных скобках, идущий после команды else.

-2

А теперь рассмотрим, какие выражения выдают правда/ложь (true/false)

  • a != b a не равно b
  • a == b a равно b , (два символа равно)
  • a > b a больше b
  • a >= b a больше или равно b
  • a < b a меньше b
  • a <= b a меньше или равно b

В качестве того, что сравнивается, могут использоваться переменные, непосредственные численные значения, функции, выдающие результат на выходе, константы.
Пример:

if a == b
{ Код в этом месте выполняется, если a равно b }
else
{ Код в этом месте выполняется, если a не равно b }

На самом деле все эти выражения выдают 1 - для true и 0 - для false.
То есть можно записать так:

if 1 { код здесь всегда будет выполняться }
if 0 { код здесь никогда не выполнится }

Есть ещё две команды, которые помогают объединить несколько сравнений.

  • || Логическая операция ИЛИ (OR)
  • && Логическая операция И (AND)

Пример:

if x == 4 && y == 2
{ Код в этом месте выполняется, если
x равно 4 и y равно 2 }
if x == 4 || y == 2
{ Код в этом месте выполняется, если
x равно 4 или y равно 2 }

То есть в первом случае нужно, что бы оба выражения были верны.
Во втором случае нужно, что бы хотя бы одно выражение было верно.

Ну а теперь пишем код.

-3

В строчках 4 и 5 я добавил две новых переменных Xspeed и Yspeed , которые содержат значение скорости (speed) по оси X и Y.

Теперь в строках 11 и 12 к значению переменных Xcoord и Ycoord с координатами прямоугольника я добавил не 1, как в прошлый раз, а значение переменных Xspeed и Yspeed.

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

Вертикальные границы находятся по X-координатам -130 и 130. Так как я не хочу, что бы мы наехали на границу, я проверяю, не достигли ли мы по оси Х значения -129 и меньше, с левой стороны.

Xcoord <= -129

Так как координата прямоугольника - это левый верхний угол, а ширина прямоугольника 20 пиксель, то с правой стороны я проверяю не стала ли координата равна или больше, чем 109. (129-20)

Xcoord >= 109

Если хоть одно из этих проверок подтвердится, я меняю знак скорости.
Для этого я использую логическую операцию ИЛИ (
OR)

( Xcoord <= -129 ) || ( Xcoord >= 109 )

На 19 строке я проверяю не достигли ли мы верхней и нижней границы.

Сохраняем файл, открываем Pixilang и запускаем полученный скрипт.
Получаем вот такую картину.

-4

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

Ну и напоследок заставим прямоугольник отскакивать от границы окна.

В Pixilang есть такие встроенные глобальные переменные, как

  • WINDOW_XSIZE - ширина пользовательского окна (в пикселях);
  • WINDOW_YSIZE - высота пользовательского окна (в пикселях);

В них заносится размер экрана при запуске приложения. Их значениями я и воспользуюсь для нахождение крайних координат. Напомню, что точка с координатами ( X=0, Y=0 ) находится по центру экрана, а координата бегающего прямоугольника определяется по верхнему левому углу прямоугольника.

-5

Сохраняем файл, открываем Pixilang и запускаем полученный скрипт. Получаем вот такую картину.

-6

На сегодня всё. Рекомендую посетить страничку WarmPlace с описанием от автора языка.

На следующем уроке разберём генерацию случайных чисел и массивы (контейнеры), это позволит запускать по экрану десятки прямоугольников.

-7