🧙Конкурс сказок!
10 мар 2013 (OFF) _467_DARKSIDER1 :

Азы MIDletPascal. Урок 3.

Итак,всем привет,вот и вышел новый урок :)

Сегодня мы разберем работу с процедурами,выгрузкой и рисованием спрайтов,а также обработку нажатия клавиш клавиатуры.

1).Работа с процедурами.

Процедуры-одна из важных частей структуры программы,они помогают в создании более емкой и сложной программы.

Сама структура процедуры:

Procedure name;////Объявление начала процедуры,где [name]-название процедуры
begin////начинаем процедуру
/////тут распологаются циклы,расчеты и пр./////
end;////конец процедуры(пишем обязательно с точкой с запятой,иначе программа просто не скомпилируется)


Пример применения процедуры:

begin////начало главной программы
name;////объявляем работу процедуры(это можно делать также и в циклах)
end.////конец главной программы

2).Работа с клавиатурой

Здесь тоже, в принципе, всё просто.

Есть две команды,обрабатывающие нажатие клавиш:

GetKeyPressed-отвечает за зажатую клавишу (удобна для создания аркад и прочих подобных игр,не годится при создании таких элементов программы,как меню).

GetKeyClicked-отвечает за единоразовое нажатие клавиш (плюсы и минусы противоположны предыдущей команде).

Вот коды клавиш,используемых для обработки нажатия с клавиатуры:
KE_KEY0-клавиша 0
KE_KEY1-клавиша 1
KE_KEY2-клавиша 2
KE_KEY3-клавиша 3
KE_KEY4-клавиша 4
KE_KEY5-клавиша 5
KE_KEY6-клавиша 6
KE_KEY7-клавиша 7
KE_KEY8-клавиша 8
KE_KEY9-клавиша 9
KE_STAR-звёздочка
KE_POUND-решётка

коды для джойстика можете узнать,почитав F.A.Q. по командам (архив с ним лежит в моих файлах)

3).Работа со спрайтами

Спрайты нужны для более красивого оформления игры.

Для работы со спрайтами требуется знать следующие команды:

img:image;-объявление переменной,которая отвечает за вывод спрайта(пишется в блоке var,где [img]-название переменной).
img:=loadimage('/img.png');-команда загрузки картинки в буфер телефона(лучше не писать в циклах,а прямо в главной программе)
drawimage(img,x,y);-команда,отвечающая за вывод картинки,где img-название переменной картинки,x и y-желаемые координаты по осям x и y соответственно.

А вот и листинг программы-примера,юллистрирующего применение всех сегодняшних команд:


Program Example;

var
x,y:integer;////координаты спрайта
key:integer;////переменная,отвечающая за нажатие клавиши
pers:image;////картинка спрайта

Procedure Main_Program;////Объявляем процедуру
begin
pers:=loadimage('/wall.png');////загружаем спрайт
x:=5;////устанавливаем начальные координаты спрайта по оси X
y:=5;////и по Y соответственно
repeat
setcolor(0,0,0);
fillrect(0,0,getwidth,getheight);

key:=getkeypressed;////приравниваем значение переменной key к значению нажатой клавиши

if (key=KE_KEY2) then////если нажата клавиша 2,то...
y:=y-2;////...уменьшаем значение Y на 2

if (key=KE_KEY6) then////если нажата клавиша 6,то...
x:=x+2;////....увеличиваем значение X на 2

drawimage(pers,x,y);////рисуем спрайт

repaint;
delay(20);
until false;
end;////конец процедуры


/////Главная программа
Begin
Main_Program;////начинаем работу процедуры

End.


P.S.: в качестве Д/З доделайте программу: сделайте по образцу движение спрайта влево и вниз (напоминаю,что координата Y увеличивается при движении вниз,координата X-при перемещении вправо).


Ну,на этом все,всем спасибо за внимание и пока! :)

Комментарии (9)

всё ясно, красивая реклама сайта :нарк
а где тут реклама сайта? Хочу посетить :-)
Домашка готова :D click
Показать комментарий
Скрыть комментарий
Для добавления комментариев необходимо авторизоваться
Флибустьеры
Грабь корабли! Побеждай монстров! Создавай уникаль...
Тема: Светлая | Тёмная
Версия: Mobile | Lite | Touch | Доступно в Google Play