DiNGS – программирование игр в домашних условиях. Часть 5.2
АрхивПрограммазм (архив)Ещё про движение. Работающий исходник игры.
Аналогичные действия произведем и над оставшимся нижним и правым краями экрана:
2. Если мяч достигнет нижнего края экрана (координата Y=480) запретить движение вниз (разрешить движение вверх).
3. Если мяч достигнет правого края экрана (координата Х=640) запретить движение вправо (разрешить движение влево).
На языке DiNGS это будет выглядеть как:
// описываем, что делать при определенных // положениях триггеров UP и LEFT If UP=1 Y=Y-1 ENDIF If UP=0 Y=Y+1 ENDIF If LEFT=1 X=X-1 ENDIF If LEFT=0 X=X+1 ENDIF // Описываем условия переключающие триггеры. IF X<=0 THEN LEFT=0 IF X>=640 THEN LEFT=1 IF Y>=480 THEN UP=1 IF Y<=0 THEN UP=0
Хотелось бы добавить, что движение, получаемое простым приращением одного и того же числа, не есть хорошо. Здесь то же неплохо использовать счетчики (о которых ниже) и триггеры. Но это более сложные алгоритмы и для первой вашей игры они вряд ли пригодятся.
Вот работающий исходник игры – на это раз у нас уже что-то движется – да не просто, а по траектории (которым мы тоже отведем место в этом туторе).
LOADSPRITE "ball.bmp", 0
// загрузить картинку мяча в ячейку № 0
LOADSPRITE "bita.bmp", 1
// загрузить картинку биты в ячейку № 1
// задаем первоначальное направление полета – влево вверх
UP=1
LEFT=1
// задаем первоначальные координаты мяча
Ball_X=640/2 //середина экрана
Ball_Y=240 //середина экрана
// НАЧАЛО ИГРЫ
WHILE KEY(1)=0
//начало цикла игры – ее сердце
SPRITE 1, 600,240,0
// вывести спрайт биты
SPRITE 0, Ball_Х,Ball_Y,0
// вывести спрайт мяча (шара)
If UP=1
Ball_Y=Ball_Y-1
ENDIF
If UP=0
Ball_Y= Ball_Y+1
ENDIF
If LEFT=1
Ball_X= Ball_X-1
ENDIF
If LEFT=0
Ball_X= Ball_X+1
ENDIF
// Описываем условие переключающее триггеры.
IF Ball_X<=0 THEN LEFT=0
IF Ball_X>=640 THEN LEFT=1
IF Ball_Y>=480 THEN UP=1
IF Ball_Y<=0 THEN UP=0
SHOWSCREEN
// Показать все на экране монитора
WEND
// переход в начало цикла к оператору WHILE
END
Теперь давайте заставим двигаться биту под нашим управлением с клавиатуры и … Отбивать шарик! Для этого нам следует более подробно уяснить понятие – коллизия. Но для начала добавим в игру красивый фон. Уж какая игра без фона!
(продолжение следует)