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
Теперь давайте заставим двигаться биту под нашим управлением с клавиатуры и … Отбивать шарик! Для этого нам следует более подробно уяснить понятие – коллизия. Но для начала добавим в игру красивый фон. Уж какая игра без фона!
(продолжение следует)