10 мар 2013 _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-при перемещении вправо).
Ну,на этом все,всем спасибо за внимание и пока!
Сегодня мы разберем работу с процедурами,выгрузкой и рисованием спрайтов,а также обработку нажатия клавиш клавиатуры.
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-при перемещении вправо).
Ну,на этом все,всем спасибо за внимание и пока!
Для добавления комментариев необходимо авторизоваться
Флибустьеры
Грабь корабли! Побеждай монстров! Создавай уникаль...